1 /* ARM NEON intrinsics include file.
2
3 Copyright (C) 2011-2020 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 __Bfloat16x4_t bfloat16x4_t;
77 typedef __Bfloat16x8_t bfloat16x8_t;
78
79 typedef struct bfloat16x4x2_t
80 {
81 bfloat16x4_t val[2];
82 } bfloat16x4x2_t;
83
84 typedef struct bfloat16x8x2_t
85 {
86 bfloat16x8_t val[2];
87 } bfloat16x8x2_t;
88
89 typedef struct bfloat16x4x3_t
90 {
91 bfloat16x4_t val[3];
92 } bfloat16x4x3_t;
93
94 typedef struct bfloat16x8x3_t
95 {
96 bfloat16x8_t val[3];
97 } bfloat16x8x3_t;
98
99 typedef struct bfloat16x4x4_t
100 {
101 bfloat16x4_t val[4];
102 } bfloat16x4x4_t;
103
104 typedef struct bfloat16x8x4_t
105 {
106 bfloat16x8_t val[4];
107 } bfloat16x8x4_t;
108
109 typedef struct int8x8x2_t
110 {
111 int8x8_t val[2];
112 } int8x8x2_t;
113
114 typedef struct int8x16x2_t
115 {
116 int8x16_t val[2];
117 } int8x16x2_t;
118
119 typedef struct int16x4x2_t
120 {
121 int16x4_t val[2];
122 } int16x4x2_t;
123
124 typedef struct int16x8x2_t
125 {
126 int16x8_t val[2];
127 } int16x8x2_t;
128
129 typedef struct int32x2x2_t
130 {
131 int32x2_t val[2];
132 } int32x2x2_t;
133
134 typedef struct int32x4x2_t
135 {
136 int32x4_t val[2];
137 } int32x4x2_t;
138
139 typedef struct int64x1x2_t
140 {
141 int64x1_t val[2];
142 } int64x1x2_t;
143
144 typedef struct int64x2x2_t
145 {
146 int64x2_t val[2];
147 } int64x2x2_t;
148
149 typedef struct uint8x8x2_t
150 {
151 uint8x8_t val[2];
152 } uint8x8x2_t;
153
154 typedef struct uint8x16x2_t
155 {
156 uint8x16_t val[2];
157 } uint8x16x2_t;
158
159 typedef struct uint16x4x2_t
160 {
161 uint16x4_t val[2];
162 } uint16x4x2_t;
163
164 typedef struct uint16x8x2_t
165 {
166 uint16x8_t val[2];
167 } uint16x8x2_t;
168
169 typedef struct uint32x2x2_t
170 {
171 uint32x2_t val[2];
172 } uint32x2x2_t;
173
174 typedef struct uint32x4x2_t
175 {
176 uint32x4_t val[2];
177 } uint32x4x2_t;
178
179 typedef struct uint64x1x2_t
180 {
181 uint64x1_t val[2];
182 } uint64x1x2_t;
183
184 typedef struct uint64x2x2_t
185 {
186 uint64x2_t val[2];
187 } uint64x2x2_t;
188
189 typedef struct float16x4x2_t
190 {
191 float16x4_t val[2];
192 } float16x4x2_t;
193
194 typedef struct float16x8x2_t
195 {
196 float16x8_t val[2];
197 } float16x8x2_t;
198
199 typedef struct float32x2x2_t
200 {
201 float32x2_t val[2];
202 } float32x2x2_t;
203
204 typedef struct float32x4x2_t
205 {
206 float32x4_t val[2];
207 } float32x4x2_t;
208
209 typedef struct float64x2x2_t
210 {
211 float64x2_t val[2];
212 } float64x2x2_t;
213
214 typedef struct float64x1x2_t
215 {
216 float64x1_t val[2];
217 } float64x1x2_t;
218
219 typedef struct poly8x8x2_t
220 {
221 poly8x8_t val[2];
222 } poly8x8x2_t;
223
224 typedef struct poly8x16x2_t
225 {
226 poly8x16_t val[2];
227 } poly8x16x2_t;
228
229 typedef struct poly16x4x2_t
230 {
231 poly16x4_t val[2];
232 } poly16x4x2_t;
233
234 typedef struct poly16x8x2_t
235 {
236 poly16x8_t val[2];
237 } poly16x8x2_t;
238
239 typedef struct poly64x1x2_t
240 {
241 poly64x1_t val[2];
242 } poly64x1x2_t;
243
244 typedef struct poly64x1x3_t
245 {
246 poly64x1_t val[3];
247 } poly64x1x3_t;
248
249 typedef struct poly64x1x4_t
250 {
251 poly64x1_t val[4];
252 } poly64x1x4_t;
253
254 typedef struct poly64x2x2_t
255 {
256 poly64x2_t val[2];
257 } poly64x2x2_t;
258
259 typedef struct poly64x2x3_t
260 {
261 poly64x2_t val[3];
262 } poly64x2x3_t;
263
264 typedef struct poly64x2x4_t
265 {
266 poly64x2_t val[4];
267 } poly64x2x4_t;
268
269 typedef struct int8x8x3_t
270 {
271 int8x8_t val[3];
272 } int8x8x3_t;
273
274 typedef struct int8x16x3_t
275 {
276 int8x16_t val[3];
277 } int8x16x3_t;
278
279 typedef struct int16x4x3_t
280 {
281 int16x4_t val[3];
282 } int16x4x3_t;
283
284 typedef struct int16x8x3_t
285 {
286 int16x8_t val[3];
287 } int16x8x3_t;
288
289 typedef struct int32x2x3_t
290 {
291 int32x2_t val[3];
292 } int32x2x3_t;
293
294 typedef struct int32x4x3_t
295 {
296 int32x4_t val[3];
297 } int32x4x3_t;
298
299 typedef struct int64x1x3_t
300 {
301 int64x1_t val[3];
302 } int64x1x3_t;
303
304 typedef struct int64x2x3_t
305 {
306 int64x2_t val[3];
307 } int64x2x3_t;
308
309 typedef struct uint8x8x3_t
310 {
311 uint8x8_t val[3];
312 } uint8x8x3_t;
313
314 typedef struct uint8x16x3_t
315 {
316 uint8x16_t val[3];
317 } uint8x16x3_t;
318
319 typedef struct uint16x4x3_t
320 {
321 uint16x4_t val[3];
322 } uint16x4x3_t;
323
324 typedef struct uint16x8x3_t
325 {
326 uint16x8_t val[3];
327 } uint16x8x3_t;
328
329 typedef struct uint32x2x3_t
330 {
331 uint32x2_t val[3];
332 } uint32x2x3_t;
333
334 typedef struct uint32x4x3_t
335 {
336 uint32x4_t val[3];
337 } uint32x4x3_t;
338
339 typedef struct uint64x1x3_t
340 {
341 uint64x1_t val[3];
342 } uint64x1x3_t;
343
344 typedef struct uint64x2x3_t
345 {
346 uint64x2_t val[3];
347 } uint64x2x3_t;
348
349 typedef struct float16x4x3_t
350 {
351 float16x4_t val[3];
352 } float16x4x3_t;
353
354 typedef struct float16x8x3_t
355 {
356 float16x8_t val[3];
357 } float16x8x3_t;
358
359 typedef struct float32x2x3_t
360 {
361 float32x2_t val[3];
362 } float32x2x3_t;
363
364 typedef struct float32x4x3_t
365 {
366 float32x4_t val[3];
367 } float32x4x3_t;
368
369 typedef struct float64x2x3_t
370 {
371 float64x2_t val[3];
372 } float64x2x3_t;
373
374 typedef struct float64x1x3_t
375 {
376 float64x1_t val[3];
377 } float64x1x3_t;
378
379 typedef struct poly8x8x3_t
380 {
381 poly8x8_t val[3];
382 } poly8x8x3_t;
383
384 typedef struct poly8x16x3_t
385 {
386 poly8x16_t val[3];
387 } poly8x16x3_t;
388
389 typedef struct poly16x4x3_t
390 {
391 poly16x4_t val[3];
392 } poly16x4x3_t;
393
394 typedef struct poly16x8x3_t
395 {
396 poly16x8_t val[3];
397 } poly16x8x3_t;
398
399 typedef struct int8x8x4_t
400 {
401 int8x8_t val[4];
402 } int8x8x4_t;
403
404 typedef struct int8x16x4_t
405 {
406 int8x16_t val[4];
407 } int8x16x4_t;
408
409 typedef struct int16x4x4_t
410 {
411 int16x4_t val[4];
412 } int16x4x4_t;
413
414 typedef struct int16x8x4_t
415 {
416 int16x8_t val[4];
417 } int16x8x4_t;
418
419 typedef struct int32x2x4_t
420 {
421 int32x2_t val[4];
422 } int32x2x4_t;
423
424 typedef struct int32x4x4_t
425 {
426 int32x4_t val[4];
427 } int32x4x4_t;
428
429 typedef struct int64x1x4_t
430 {
431 int64x1_t val[4];
432 } int64x1x4_t;
433
434 typedef struct int64x2x4_t
435 {
436 int64x2_t val[4];
437 } int64x2x4_t;
438
439 typedef struct uint8x8x4_t
440 {
441 uint8x8_t val[4];
442 } uint8x8x4_t;
443
444 typedef struct uint8x16x4_t
445 {
446 uint8x16_t val[4];
447 } uint8x16x4_t;
448
449 typedef struct uint16x4x4_t
450 {
451 uint16x4_t val[4];
452 } uint16x4x4_t;
453
454 typedef struct uint16x8x4_t
455 {
456 uint16x8_t val[4];
457 } uint16x8x4_t;
458
459 typedef struct uint32x2x4_t
460 {
461 uint32x2_t val[4];
462 } uint32x2x4_t;
463
464 typedef struct uint32x4x4_t
465 {
466 uint32x4_t val[4];
467 } uint32x4x4_t;
468
469 typedef struct uint64x1x4_t
470 {
471 uint64x1_t val[4];
472 } uint64x1x4_t;
473
474 typedef struct uint64x2x4_t
475 {
476 uint64x2_t val[4];
477 } uint64x2x4_t;
478
479 typedef struct float16x4x4_t
480 {
481 float16x4_t val[4];
482 } float16x4x4_t;
483
484 typedef struct float16x8x4_t
485 {
486 float16x8_t val[4];
487 } float16x8x4_t;
488
489 typedef struct float32x2x4_t
490 {
491 float32x2_t val[4];
492 } float32x2x4_t;
493
494 typedef struct float32x4x4_t
495 {
496 float32x4_t val[4];
497 } float32x4x4_t;
498
499 typedef struct float64x2x4_t
500 {
501 float64x2_t val[4];
502 } float64x2x4_t;
503
504 typedef struct float64x1x4_t
505 {
506 float64x1_t val[4];
507 } float64x1x4_t;
508
509 typedef struct poly8x8x4_t
510 {
511 poly8x8_t val[4];
512 } poly8x8x4_t;
513
514 typedef struct poly8x16x4_t
515 {
516 poly8x16_t val[4];
517 } poly8x16x4_t;
518
519 typedef struct poly16x4x4_t
520 {
521 poly16x4_t val[4];
522 } poly16x4x4_t;
523
524 typedef struct poly16x8x4_t
525 {
526 poly16x8_t val[4];
527 } poly16x8x4_t;
528
529 /* __aarch64_vdup_lane internal macros. */
530 #define __aarch64_vdup_lane_any(__size, __q, __a, __b) \
531 vdup##__q##_n_##__size (__aarch64_vget_lane_any (__a, __b))
532
533 #define __aarch64_vdup_lane_f16(__a, __b) \
534 __aarch64_vdup_lane_any (f16, , __a, __b)
535 #define __aarch64_vdup_lane_f32(__a, __b) \
536 __aarch64_vdup_lane_any (f32, , __a, __b)
537 #define __aarch64_vdup_lane_f64(__a, __b) \
538 __aarch64_vdup_lane_any (f64, , __a, __b)
539 #define __aarch64_vdup_lane_p8(__a, __b) \
540 __aarch64_vdup_lane_any (p8, , __a, __b)
541 #define __aarch64_vdup_lane_p16(__a, __b) \
542 __aarch64_vdup_lane_any (p16, , __a, __b)
543 #define __aarch64_vdup_lane_p64(__a, __b) \
544 __aarch64_vdup_lane_any (p64, , __a, __b)
545 #define __aarch64_vdup_lane_s8(__a, __b) \
546 __aarch64_vdup_lane_any (s8, , __a, __b)
547 #define __aarch64_vdup_lane_s16(__a, __b) \
548 __aarch64_vdup_lane_any (s16, , __a, __b)
549 #define __aarch64_vdup_lane_s32(__a, __b) \
550 __aarch64_vdup_lane_any (s32, , __a, __b)
551 #define __aarch64_vdup_lane_s64(__a, __b) \
552 __aarch64_vdup_lane_any (s64, , __a, __b)
553 #define __aarch64_vdup_lane_u8(__a, __b) \
554 __aarch64_vdup_lane_any (u8, , __a, __b)
555 #define __aarch64_vdup_lane_u16(__a, __b) \
556 __aarch64_vdup_lane_any (u16, , __a, __b)
557 #define __aarch64_vdup_lane_u32(__a, __b) \
558 __aarch64_vdup_lane_any (u32, , __a, __b)
559 #define __aarch64_vdup_lane_u64(__a, __b) \
560 __aarch64_vdup_lane_any (u64, , __a, __b)
561
562 /* __aarch64_vdup_laneq internal macros. */
563 #define __aarch64_vdup_laneq_f16(__a, __b) \
564 __aarch64_vdup_lane_any (f16, , __a, __b)
565 #define __aarch64_vdup_laneq_f32(__a, __b) \
566 __aarch64_vdup_lane_any (f32, , __a, __b)
567 #define __aarch64_vdup_laneq_f64(__a, __b) \
568 __aarch64_vdup_lane_any (f64, , __a, __b)
569 #define __aarch64_vdup_laneq_p8(__a, __b) \
570 __aarch64_vdup_lane_any (p8, , __a, __b)
571 #define __aarch64_vdup_laneq_p16(__a, __b) \
572 __aarch64_vdup_lane_any (p16, , __a, __b)
573 #define __aarch64_vdup_laneq_p64(__a, __b) \
574 __aarch64_vdup_lane_any (p64, , __a, __b)
575 #define __aarch64_vdup_laneq_s8(__a, __b) \
576 __aarch64_vdup_lane_any (s8, , __a, __b)
577 #define __aarch64_vdup_laneq_s16(__a, __b) \
578 __aarch64_vdup_lane_any (s16, , __a, __b)
579 #define __aarch64_vdup_laneq_s32(__a, __b) \
580 __aarch64_vdup_lane_any (s32, , __a, __b)
581 #define __aarch64_vdup_laneq_s64(__a, __b) \
582 __aarch64_vdup_lane_any (s64, , __a, __b)
583 #define __aarch64_vdup_laneq_u8(__a, __b) \
584 __aarch64_vdup_lane_any (u8, , __a, __b)
585 #define __aarch64_vdup_laneq_u16(__a, __b) \
586 __aarch64_vdup_lane_any (u16, , __a, __b)
587 #define __aarch64_vdup_laneq_u32(__a, __b) \
588 __aarch64_vdup_lane_any (u32, , __a, __b)
589 #define __aarch64_vdup_laneq_u64(__a, __b) \
590 __aarch64_vdup_lane_any (u64, , __a, __b)
591
592 /* __aarch64_vdupq_lane internal macros. */
593 #define __aarch64_vdupq_lane_f16(__a, __b) \
594 __aarch64_vdup_lane_any (f16, q, __a, __b)
595 #define __aarch64_vdupq_lane_f32(__a, __b) \
596 __aarch64_vdup_lane_any (f32, q, __a, __b)
597 #define __aarch64_vdupq_lane_f64(__a, __b) \
598 __aarch64_vdup_lane_any (f64, q, __a, __b)
599 #define __aarch64_vdupq_lane_p8(__a, __b) \
600 __aarch64_vdup_lane_any (p8, q, __a, __b)
601 #define __aarch64_vdupq_lane_p16(__a, __b) \
602 __aarch64_vdup_lane_any (p16, q, __a, __b)
603 #define __aarch64_vdupq_lane_p64(__a, __b) \
604 __aarch64_vdup_lane_any (p64, q, __a, __b)
605 #define __aarch64_vdupq_lane_s8(__a, __b) \
606 __aarch64_vdup_lane_any (s8, q, __a, __b)
607 #define __aarch64_vdupq_lane_s16(__a, __b) \
608 __aarch64_vdup_lane_any (s16, q, __a, __b)
609 #define __aarch64_vdupq_lane_s32(__a, __b) \
610 __aarch64_vdup_lane_any (s32, q, __a, __b)
611 #define __aarch64_vdupq_lane_s64(__a, __b) \
612 __aarch64_vdup_lane_any (s64, q, __a, __b)
613 #define __aarch64_vdupq_lane_u8(__a, __b) \
614 __aarch64_vdup_lane_any (u8, q, __a, __b)
615 #define __aarch64_vdupq_lane_u16(__a, __b) \
616 __aarch64_vdup_lane_any (u16, q, __a, __b)
617 #define __aarch64_vdupq_lane_u32(__a, __b) \
618 __aarch64_vdup_lane_any (u32, q, __a, __b)
619 #define __aarch64_vdupq_lane_u64(__a, __b) \
620 __aarch64_vdup_lane_any (u64, q, __a, __b)
621
622 /* __aarch64_vdupq_laneq internal macros. */
623 #define __aarch64_vdupq_laneq_f16(__a, __b) \
624 __aarch64_vdup_lane_any (f16, q, __a, __b)
625 #define __aarch64_vdupq_laneq_f32(__a, __b) \
626 __aarch64_vdup_lane_any (f32, q, __a, __b)
627 #define __aarch64_vdupq_laneq_f64(__a, __b) \
628 __aarch64_vdup_lane_any (f64, q, __a, __b)
629 #define __aarch64_vdupq_laneq_p8(__a, __b) \
630 __aarch64_vdup_lane_any (p8, q, __a, __b)
631 #define __aarch64_vdupq_laneq_p16(__a, __b) \
632 __aarch64_vdup_lane_any (p16, q, __a, __b)
633 #define __aarch64_vdupq_laneq_p64(__a, __b) \
634 __aarch64_vdup_lane_any (p64, q, __a, __b)
635 #define __aarch64_vdupq_laneq_s8(__a, __b) \
636 __aarch64_vdup_lane_any (s8, q, __a, __b)
637 #define __aarch64_vdupq_laneq_s16(__a, __b) \
638 __aarch64_vdup_lane_any (s16, q, __a, __b)
639 #define __aarch64_vdupq_laneq_s32(__a, __b) \
640 __aarch64_vdup_lane_any (s32, q, __a, __b)
641 #define __aarch64_vdupq_laneq_s64(__a, __b) \
642 __aarch64_vdup_lane_any (s64, q, __a, __b)
643 #define __aarch64_vdupq_laneq_u8(__a, __b) \
644 __aarch64_vdup_lane_any (u8, q, __a, __b)
645 #define __aarch64_vdupq_laneq_u16(__a, __b) \
646 __aarch64_vdup_lane_any (u16, q, __a, __b)
647 #define __aarch64_vdupq_laneq_u32(__a, __b) \
648 __aarch64_vdup_lane_any (u32, q, __a, __b)
649 #define __aarch64_vdupq_laneq_u64(__a, __b) \
650 __aarch64_vdup_lane_any (u64, q, __a, __b)
651
652 /* Internal macro for lane indices. */
653
654 #define __AARCH64_NUM_LANES(__v) (sizeof (__v) / sizeof (__v[0]))
655 #define __AARCH64_LANE_CHECK(__vec, __idx) \
656 __builtin_aarch64_im_lane_boundsi (sizeof(__vec), sizeof(__vec[0]), __idx)
657
658 /* For big-endian, GCC's vector indices are the opposite way around
659 to the architectural lane indices used by Neon intrinsics. */
660 #ifdef __AARCH64EB__
661 #define __aarch64_lane(__vec, __idx) (__AARCH64_NUM_LANES (__vec) - 1 - __idx)
662 #else
663 #define __aarch64_lane(__vec, __idx) __idx
664 #endif
665
666 /* vget_lane internal macro. */
667 #define __aarch64_vget_lane_any(__vec, __index) \
668 __extension__ \
669 ({ \
670 __AARCH64_LANE_CHECK (__vec, __index); \
671 __vec[__aarch64_lane (__vec, __index)]; \
672 })
673
674 /* vset_lane and vld1_lane internal macro. */
675 #define __aarch64_vset_lane_any(__elem, __vec, __index) \
676 __extension__ \
677 ({ \
678 __AARCH64_LANE_CHECK (__vec, __index); \
679 __vec[__aarch64_lane (__vec, __index)] = __elem; \
680 __vec; \
681 })
682
683 /* vadd */
684 __extension__ extern __inline int8x8_t
685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_s8(int8x8_t __a,int8x8_t __b)686 vadd_s8 (int8x8_t __a, int8x8_t __b)
687 {
688 return __a + __b;
689 }
690
691 __extension__ extern __inline int16x4_t
692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_s16(int16x4_t __a,int16x4_t __b)693 vadd_s16 (int16x4_t __a, int16x4_t __b)
694 {
695 return __a + __b;
696 }
697
698 __extension__ extern __inline int32x2_t
699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_s32(int32x2_t __a,int32x2_t __b)700 vadd_s32 (int32x2_t __a, int32x2_t __b)
701 {
702 return __a + __b;
703 }
704
705 __extension__ extern __inline float32x2_t
706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_f32(float32x2_t __a,float32x2_t __b)707 vadd_f32 (float32x2_t __a, float32x2_t __b)
708 {
709 return __a + __b;
710 }
711
712 __extension__ extern __inline float64x1_t
713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_f64(float64x1_t __a,float64x1_t __b)714 vadd_f64 (float64x1_t __a, float64x1_t __b)
715 {
716 return __a + __b;
717 }
718
719 __extension__ extern __inline uint8x8_t
720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_u8(uint8x8_t __a,uint8x8_t __b)721 vadd_u8 (uint8x8_t __a, uint8x8_t __b)
722 {
723 return __a + __b;
724 }
725
726 __extension__ extern __inline uint16x4_t
727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_u16(uint16x4_t __a,uint16x4_t __b)728 vadd_u16 (uint16x4_t __a, uint16x4_t __b)
729 {
730 return __a + __b;
731 }
732
733 __extension__ extern __inline uint32x2_t
734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_u32(uint32x2_t __a,uint32x2_t __b)735 vadd_u32 (uint32x2_t __a, uint32x2_t __b)
736 {
737 return __a + __b;
738 }
739
740 __extension__ extern __inline int64x1_t
741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_s64(int64x1_t __a,int64x1_t __b)742 vadd_s64 (int64x1_t __a, int64x1_t __b)
743 {
744 return __a + __b;
745 }
746
747 __extension__ extern __inline uint64x1_t
748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_u64(uint64x1_t __a,uint64x1_t __b)749 vadd_u64 (uint64x1_t __a, uint64x1_t __b)
750 {
751 return __a + __b;
752 }
753
754 __extension__ extern __inline int8x16_t
755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_s8(int8x16_t __a,int8x16_t __b)756 vaddq_s8 (int8x16_t __a, int8x16_t __b)
757 {
758 return __a + __b;
759 }
760
761 __extension__ extern __inline int16x8_t
762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_s16(int16x8_t __a,int16x8_t __b)763 vaddq_s16 (int16x8_t __a, int16x8_t __b)
764 {
765 return __a + __b;
766 }
767
768 __extension__ extern __inline int32x4_t
769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_s32(int32x4_t __a,int32x4_t __b)770 vaddq_s32 (int32x4_t __a, int32x4_t __b)
771 {
772 return __a + __b;
773 }
774
775 __extension__ extern __inline int64x2_t
776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_s64(int64x2_t __a,int64x2_t __b)777 vaddq_s64 (int64x2_t __a, int64x2_t __b)
778 {
779 return __a + __b;
780 }
781
782 __extension__ extern __inline float32x4_t
783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_f32(float32x4_t __a,float32x4_t __b)784 vaddq_f32 (float32x4_t __a, float32x4_t __b)
785 {
786 return __a + __b;
787 }
788
789 __extension__ extern __inline float64x2_t
790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_f64(float64x2_t __a,float64x2_t __b)791 vaddq_f64 (float64x2_t __a, float64x2_t __b)
792 {
793 return __a + __b;
794 }
795
796 __extension__ extern __inline uint8x16_t
797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_u8(uint8x16_t __a,uint8x16_t __b)798 vaddq_u8 (uint8x16_t __a, uint8x16_t __b)
799 {
800 return __a + __b;
801 }
802
803 __extension__ extern __inline uint16x8_t
804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_u16(uint16x8_t __a,uint16x8_t __b)805 vaddq_u16 (uint16x8_t __a, uint16x8_t __b)
806 {
807 return __a + __b;
808 }
809
810 __extension__ extern __inline uint32x4_t
811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_u32(uint32x4_t __a,uint32x4_t __b)812 vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
813 {
814 return __a + __b;
815 }
816
817 __extension__ extern __inline uint64x2_t
818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_u64(uint64x2_t __a,uint64x2_t __b)819 vaddq_u64 (uint64x2_t __a, uint64x2_t __b)
820 {
821 return __a + __b;
822 }
823
824 __extension__ extern __inline int16x8_t
825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_s8(int8x8_t __a,int8x8_t __b)826 vaddl_s8 (int8x8_t __a, int8x8_t __b)
827 {
828 return (int16x8_t) __builtin_aarch64_saddlv8qi (__a, __b);
829 }
830
831 __extension__ extern __inline int32x4_t
832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_s16(int16x4_t __a,int16x4_t __b)833 vaddl_s16 (int16x4_t __a, int16x4_t __b)
834 {
835 return (int32x4_t) __builtin_aarch64_saddlv4hi (__a, __b);
836 }
837
838 __extension__ extern __inline int64x2_t
839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_s32(int32x2_t __a,int32x2_t __b)840 vaddl_s32 (int32x2_t __a, int32x2_t __b)
841 {
842 return (int64x2_t) __builtin_aarch64_saddlv2si (__a, __b);
843 }
844
845 __extension__ extern __inline uint16x8_t
846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_u8(uint8x8_t __a,uint8x8_t __b)847 vaddl_u8 (uint8x8_t __a, uint8x8_t __b)
848 {
849 return (uint16x8_t) __builtin_aarch64_uaddlv8qi ((int8x8_t) __a,
850 (int8x8_t) __b);
851 }
852
853 __extension__ extern __inline uint32x4_t
854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_u16(uint16x4_t __a,uint16x4_t __b)855 vaddl_u16 (uint16x4_t __a, uint16x4_t __b)
856 {
857 return (uint32x4_t) __builtin_aarch64_uaddlv4hi ((int16x4_t) __a,
858 (int16x4_t) __b);
859 }
860
861 __extension__ extern __inline uint64x2_t
862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_u32(uint32x2_t __a,uint32x2_t __b)863 vaddl_u32 (uint32x2_t __a, uint32x2_t __b)
864 {
865 return (uint64x2_t) __builtin_aarch64_uaddlv2si ((int32x2_t) __a,
866 (int32x2_t) __b);
867 }
868
869 __extension__ extern __inline int16x8_t
870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_high_s8(int8x16_t __a,int8x16_t __b)871 vaddl_high_s8 (int8x16_t __a, int8x16_t __b)
872 {
873 return (int16x8_t) __builtin_aarch64_saddl2v16qi (__a, __b);
874 }
875
876 __extension__ extern __inline int32x4_t
877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_high_s16(int16x8_t __a,int16x8_t __b)878 vaddl_high_s16 (int16x8_t __a, int16x8_t __b)
879 {
880 return (int32x4_t) __builtin_aarch64_saddl2v8hi (__a, __b);
881 }
882
883 __extension__ extern __inline int64x2_t
884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_high_s32(int32x4_t __a,int32x4_t __b)885 vaddl_high_s32 (int32x4_t __a, int32x4_t __b)
886 {
887 return (int64x2_t) __builtin_aarch64_saddl2v4si (__a, __b);
888 }
889
890 __extension__ extern __inline uint16x8_t
891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_high_u8(uint8x16_t __a,uint8x16_t __b)892 vaddl_high_u8 (uint8x16_t __a, uint8x16_t __b)
893 {
894 return (uint16x8_t) __builtin_aarch64_uaddl2v16qi ((int8x16_t) __a,
895 (int8x16_t) __b);
896 }
897
898 __extension__ extern __inline uint32x4_t
899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_high_u16(uint16x8_t __a,uint16x8_t __b)900 vaddl_high_u16 (uint16x8_t __a, uint16x8_t __b)
901 {
902 return (uint32x4_t) __builtin_aarch64_uaddl2v8hi ((int16x8_t) __a,
903 (int16x8_t) __b);
904 }
905
906 __extension__ extern __inline uint64x2_t
907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddl_high_u32(uint32x4_t __a,uint32x4_t __b)908 vaddl_high_u32 (uint32x4_t __a, uint32x4_t __b)
909 {
910 return (uint64x2_t) __builtin_aarch64_uaddl2v4si ((int32x4_t) __a,
911 (int32x4_t) __b);
912 }
913
914 __extension__ extern __inline int16x8_t
915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_s8(int16x8_t __a,int8x8_t __b)916 vaddw_s8 (int16x8_t __a, int8x8_t __b)
917 {
918 return (int16x8_t) __builtin_aarch64_saddwv8qi (__a, __b);
919 }
920
921 __extension__ extern __inline int32x4_t
922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_s16(int32x4_t __a,int16x4_t __b)923 vaddw_s16 (int32x4_t __a, int16x4_t __b)
924 {
925 return (int32x4_t) __builtin_aarch64_saddwv4hi (__a, __b);
926 }
927
928 __extension__ extern __inline int64x2_t
929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_s32(int64x2_t __a,int32x2_t __b)930 vaddw_s32 (int64x2_t __a, int32x2_t __b)
931 {
932 return (int64x2_t) __builtin_aarch64_saddwv2si (__a, __b);
933 }
934
935 __extension__ extern __inline uint16x8_t
936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_u8(uint16x8_t __a,uint8x8_t __b)937 vaddw_u8 (uint16x8_t __a, uint8x8_t __b)
938 {
939 return (uint16x8_t) __builtin_aarch64_uaddwv8qi ((int16x8_t) __a,
940 (int8x8_t) __b);
941 }
942
943 __extension__ extern __inline uint32x4_t
944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_u16(uint32x4_t __a,uint16x4_t __b)945 vaddw_u16 (uint32x4_t __a, uint16x4_t __b)
946 {
947 return (uint32x4_t) __builtin_aarch64_uaddwv4hi ((int32x4_t) __a,
948 (int16x4_t) __b);
949 }
950
951 __extension__ extern __inline uint64x2_t
952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_u32(uint64x2_t __a,uint32x2_t __b)953 vaddw_u32 (uint64x2_t __a, uint32x2_t __b)
954 {
955 return (uint64x2_t) __builtin_aarch64_uaddwv2si ((int64x2_t) __a,
956 (int32x2_t) __b);
957 }
958
959 __extension__ extern __inline int16x8_t
960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_high_s8(int16x8_t __a,int8x16_t __b)961 vaddw_high_s8 (int16x8_t __a, int8x16_t __b)
962 {
963 return (int16x8_t) __builtin_aarch64_saddw2v16qi (__a, __b);
964 }
965
966 __extension__ extern __inline int32x4_t
967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_high_s16(int32x4_t __a,int16x8_t __b)968 vaddw_high_s16 (int32x4_t __a, int16x8_t __b)
969 {
970 return (int32x4_t) __builtin_aarch64_saddw2v8hi (__a, __b);
971 }
972
973 __extension__ extern __inline int64x2_t
974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_high_s32(int64x2_t __a,int32x4_t __b)975 vaddw_high_s32 (int64x2_t __a, int32x4_t __b)
976 {
977 return (int64x2_t) __builtin_aarch64_saddw2v4si (__a, __b);
978 }
979
980 __extension__ extern __inline uint16x8_t
981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_high_u8(uint16x8_t __a,uint8x16_t __b)982 vaddw_high_u8 (uint16x8_t __a, uint8x16_t __b)
983 {
984 return (uint16x8_t) __builtin_aarch64_uaddw2v16qi ((int16x8_t) __a,
985 (int8x16_t) __b);
986 }
987
988 __extension__ extern __inline uint32x4_t
989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_high_u16(uint32x4_t __a,uint16x8_t __b)990 vaddw_high_u16 (uint32x4_t __a, uint16x8_t __b)
991 {
992 return (uint32x4_t) __builtin_aarch64_uaddw2v8hi ((int32x4_t) __a,
993 (int16x8_t) __b);
994 }
995
996 __extension__ extern __inline uint64x2_t
997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddw_high_u32(uint64x2_t __a,uint32x4_t __b)998 vaddw_high_u32 (uint64x2_t __a, uint32x4_t __b)
999 {
1000 return (uint64x2_t) __builtin_aarch64_uaddw2v4si ((int64x2_t) __a,
1001 (int32x4_t) __b);
1002 }
1003
1004 __extension__ extern __inline int8x8_t
1005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_s8(int8x8_t __a,int8x8_t __b)1006 vhadd_s8 (int8x8_t __a, int8x8_t __b)
1007 {
1008 return (int8x8_t) __builtin_aarch64_shaddv8qi (__a, __b);
1009 }
1010
1011 __extension__ extern __inline int16x4_t
1012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_s16(int16x4_t __a,int16x4_t __b)1013 vhadd_s16 (int16x4_t __a, int16x4_t __b)
1014 {
1015 return (int16x4_t) __builtin_aarch64_shaddv4hi (__a, __b);
1016 }
1017
1018 __extension__ extern __inline int32x2_t
1019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_s32(int32x2_t __a,int32x2_t __b)1020 vhadd_s32 (int32x2_t __a, int32x2_t __b)
1021 {
1022 return (int32x2_t) __builtin_aarch64_shaddv2si (__a, __b);
1023 }
1024
1025 __extension__ extern __inline uint8x8_t
1026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_u8(uint8x8_t __a,uint8x8_t __b)1027 vhadd_u8 (uint8x8_t __a, uint8x8_t __b)
1028 {
1029 return (uint8x8_t) __builtin_aarch64_uhaddv8qi ((int8x8_t) __a,
1030 (int8x8_t) __b);
1031 }
1032
1033 __extension__ extern __inline uint16x4_t
1034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_u16(uint16x4_t __a,uint16x4_t __b)1035 vhadd_u16 (uint16x4_t __a, uint16x4_t __b)
1036 {
1037 return (uint16x4_t) __builtin_aarch64_uhaddv4hi ((int16x4_t) __a,
1038 (int16x4_t) __b);
1039 }
1040
1041 __extension__ extern __inline uint32x2_t
1042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhadd_u32(uint32x2_t __a,uint32x2_t __b)1043 vhadd_u32 (uint32x2_t __a, uint32x2_t __b)
1044 {
1045 return (uint32x2_t) __builtin_aarch64_uhaddv2si ((int32x2_t) __a,
1046 (int32x2_t) __b);
1047 }
1048
1049 __extension__ extern __inline int8x16_t
1050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_s8(int8x16_t __a,int8x16_t __b)1051 vhaddq_s8 (int8x16_t __a, int8x16_t __b)
1052 {
1053 return (int8x16_t) __builtin_aarch64_shaddv16qi (__a, __b);
1054 }
1055
1056 __extension__ extern __inline int16x8_t
1057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_s16(int16x8_t __a,int16x8_t __b)1058 vhaddq_s16 (int16x8_t __a, int16x8_t __b)
1059 {
1060 return (int16x8_t) __builtin_aarch64_shaddv8hi (__a, __b);
1061 }
1062
1063 __extension__ extern __inline int32x4_t
1064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_s32(int32x4_t __a,int32x4_t __b)1065 vhaddq_s32 (int32x4_t __a, int32x4_t __b)
1066 {
1067 return (int32x4_t) __builtin_aarch64_shaddv4si (__a, __b);
1068 }
1069
1070 __extension__ extern __inline uint8x16_t
1071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_u8(uint8x16_t __a,uint8x16_t __b)1072 vhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
1073 {
1074 return (uint8x16_t) __builtin_aarch64_uhaddv16qi ((int8x16_t) __a,
1075 (int8x16_t) __b);
1076 }
1077
1078 __extension__ extern __inline uint16x8_t
1079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_u16(uint16x8_t __a,uint16x8_t __b)1080 vhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
1081 {
1082 return (uint16x8_t) __builtin_aarch64_uhaddv8hi ((int16x8_t) __a,
1083 (int16x8_t) __b);
1084 }
1085
1086 __extension__ extern __inline uint32x4_t
1087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhaddq_u32(uint32x4_t __a,uint32x4_t __b)1088 vhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
1089 {
1090 return (uint32x4_t) __builtin_aarch64_uhaddv4si ((int32x4_t) __a,
1091 (int32x4_t) __b);
1092 }
1093
1094 __extension__ extern __inline int8x8_t
1095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_s8(int8x8_t __a,int8x8_t __b)1096 vrhadd_s8 (int8x8_t __a, int8x8_t __b)
1097 {
1098 return (int8x8_t) __builtin_aarch64_srhaddv8qi (__a, __b);
1099 }
1100
1101 __extension__ extern __inline int16x4_t
1102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_s16(int16x4_t __a,int16x4_t __b)1103 vrhadd_s16 (int16x4_t __a, int16x4_t __b)
1104 {
1105 return (int16x4_t) __builtin_aarch64_srhaddv4hi (__a, __b);
1106 }
1107
1108 __extension__ extern __inline int32x2_t
1109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_s32(int32x2_t __a,int32x2_t __b)1110 vrhadd_s32 (int32x2_t __a, int32x2_t __b)
1111 {
1112 return (int32x2_t) __builtin_aarch64_srhaddv2si (__a, __b);
1113 }
1114
1115 __extension__ extern __inline uint8x8_t
1116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_u8(uint8x8_t __a,uint8x8_t __b)1117 vrhadd_u8 (uint8x8_t __a, uint8x8_t __b)
1118 {
1119 return (uint8x8_t) __builtin_aarch64_urhaddv8qi ((int8x8_t) __a,
1120 (int8x8_t) __b);
1121 }
1122
1123 __extension__ extern __inline uint16x4_t
1124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_u16(uint16x4_t __a,uint16x4_t __b)1125 vrhadd_u16 (uint16x4_t __a, uint16x4_t __b)
1126 {
1127 return (uint16x4_t) __builtin_aarch64_urhaddv4hi ((int16x4_t) __a,
1128 (int16x4_t) __b);
1129 }
1130
1131 __extension__ extern __inline uint32x2_t
1132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhadd_u32(uint32x2_t __a,uint32x2_t __b)1133 vrhadd_u32 (uint32x2_t __a, uint32x2_t __b)
1134 {
1135 return (uint32x2_t) __builtin_aarch64_urhaddv2si ((int32x2_t) __a,
1136 (int32x2_t) __b);
1137 }
1138
1139 __extension__ extern __inline int8x16_t
1140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_s8(int8x16_t __a,int8x16_t __b)1141 vrhaddq_s8 (int8x16_t __a, int8x16_t __b)
1142 {
1143 return (int8x16_t) __builtin_aarch64_srhaddv16qi (__a, __b);
1144 }
1145
1146 __extension__ extern __inline int16x8_t
1147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_s16(int16x8_t __a,int16x8_t __b)1148 vrhaddq_s16 (int16x8_t __a, int16x8_t __b)
1149 {
1150 return (int16x8_t) __builtin_aarch64_srhaddv8hi (__a, __b);
1151 }
1152
1153 __extension__ extern __inline int32x4_t
1154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_s32(int32x4_t __a,int32x4_t __b)1155 vrhaddq_s32 (int32x4_t __a, int32x4_t __b)
1156 {
1157 return (int32x4_t) __builtin_aarch64_srhaddv4si (__a, __b);
1158 }
1159
1160 __extension__ extern __inline uint8x16_t
1161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_u8(uint8x16_t __a,uint8x16_t __b)1162 vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b)
1163 {
1164 return (uint8x16_t) __builtin_aarch64_urhaddv16qi ((int8x16_t) __a,
1165 (int8x16_t) __b);
1166 }
1167
1168 __extension__ extern __inline uint16x8_t
1169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_u16(uint16x8_t __a,uint16x8_t __b)1170 vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b)
1171 {
1172 return (uint16x8_t) __builtin_aarch64_urhaddv8hi ((int16x8_t) __a,
1173 (int16x8_t) __b);
1174 }
1175
1176 __extension__ extern __inline uint32x4_t
1177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrhaddq_u32(uint32x4_t __a,uint32x4_t __b)1178 vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b)
1179 {
1180 return (uint32x4_t) __builtin_aarch64_urhaddv4si ((int32x4_t) __a,
1181 (int32x4_t) __b);
1182 }
1183
1184 __extension__ extern __inline int8x8_t
1185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_s16(int16x8_t __a,int16x8_t __b)1186 vaddhn_s16 (int16x8_t __a, int16x8_t __b)
1187 {
1188 return (int8x8_t) __builtin_aarch64_addhnv8hi (__a, __b);
1189 }
1190
1191 __extension__ extern __inline int16x4_t
1192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_s32(int32x4_t __a,int32x4_t __b)1193 vaddhn_s32 (int32x4_t __a, int32x4_t __b)
1194 {
1195 return (int16x4_t) __builtin_aarch64_addhnv4si (__a, __b);
1196 }
1197
1198 __extension__ extern __inline int32x2_t
1199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_s64(int64x2_t __a,int64x2_t __b)1200 vaddhn_s64 (int64x2_t __a, int64x2_t __b)
1201 {
1202 return (int32x2_t) __builtin_aarch64_addhnv2di (__a, __b);
1203 }
1204
1205 __extension__ extern __inline uint8x8_t
1206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_u16(uint16x8_t __a,uint16x8_t __b)1207 vaddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1208 {
1209 return (uint8x8_t) __builtin_aarch64_addhnv8hi ((int16x8_t) __a,
1210 (int16x8_t) __b);
1211 }
1212
1213 __extension__ extern __inline uint16x4_t
1214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_u32(uint32x4_t __a,uint32x4_t __b)1215 vaddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1216 {
1217 return (uint16x4_t) __builtin_aarch64_addhnv4si ((int32x4_t) __a,
1218 (int32x4_t) __b);
1219 }
1220
1221 __extension__ extern __inline uint32x2_t
1222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_u64(uint64x2_t __a,uint64x2_t __b)1223 vaddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1224 {
1225 return (uint32x2_t) __builtin_aarch64_addhnv2di ((int64x2_t) __a,
1226 (int64x2_t) __b);
1227 }
1228
1229 __extension__ extern __inline int8x8_t
1230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_s16(int16x8_t __a,int16x8_t __b)1231 vraddhn_s16 (int16x8_t __a, int16x8_t __b)
1232 {
1233 return (int8x8_t) __builtin_aarch64_raddhnv8hi (__a, __b);
1234 }
1235
1236 __extension__ extern __inline int16x4_t
1237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_s32(int32x4_t __a,int32x4_t __b)1238 vraddhn_s32 (int32x4_t __a, int32x4_t __b)
1239 {
1240 return (int16x4_t) __builtin_aarch64_raddhnv4si (__a, __b);
1241 }
1242
1243 __extension__ extern __inline int32x2_t
1244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_s64(int64x2_t __a,int64x2_t __b)1245 vraddhn_s64 (int64x2_t __a, int64x2_t __b)
1246 {
1247 return (int32x2_t) __builtin_aarch64_raddhnv2di (__a, __b);
1248 }
1249
1250 __extension__ extern __inline uint8x8_t
1251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_u16(uint16x8_t __a,uint16x8_t __b)1252 vraddhn_u16 (uint16x8_t __a, uint16x8_t __b)
1253 {
1254 return (uint8x8_t) __builtin_aarch64_raddhnv8hi ((int16x8_t) __a,
1255 (int16x8_t) __b);
1256 }
1257
1258 __extension__ extern __inline uint16x4_t
1259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_u32(uint32x4_t __a,uint32x4_t __b)1260 vraddhn_u32 (uint32x4_t __a, uint32x4_t __b)
1261 {
1262 return (uint16x4_t) __builtin_aarch64_raddhnv4si ((int32x4_t) __a,
1263 (int32x4_t) __b);
1264 }
1265
1266 __extension__ extern __inline uint32x2_t
1267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_u64(uint64x2_t __a,uint64x2_t __b)1268 vraddhn_u64 (uint64x2_t __a, uint64x2_t __b)
1269 {
1270 return (uint32x2_t) __builtin_aarch64_raddhnv2di ((int64x2_t) __a,
1271 (int64x2_t) __b);
1272 }
1273
1274 __extension__ extern __inline int8x16_t
1275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_high_s16(int8x8_t __a,int16x8_t __b,int16x8_t __c)1276 vaddhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
1277 {
1278 return (int8x16_t) __builtin_aarch64_addhn2v8hi (__a, __b, __c);
1279 }
1280
1281 __extension__ extern __inline int16x8_t
1282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_high_s32(int16x4_t __a,int32x4_t __b,int32x4_t __c)1283 vaddhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
1284 {
1285 return (int16x8_t) __builtin_aarch64_addhn2v4si (__a, __b, __c);
1286 }
1287
1288 __extension__ extern __inline int32x4_t
1289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_high_s64(int32x2_t __a,int64x2_t __b,int64x2_t __c)1290 vaddhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
1291 {
1292 return (int32x4_t) __builtin_aarch64_addhn2v2di (__a, __b, __c);
1293 }
1294
1295 __extension__ extern __inline uint8x16_t
1296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_high_u16(uint8x8_t __a,uint16x8_t __b,uint16x8_t __c)1297 vaddhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
1298 {
1299 return (uint8x16_t) __builtin_aarch64_addhn2v8hi ((int8x8_t) __a,
1300 (int16x8_t) __b,
1301 (int16x8_t) __c);
1302 }
1303
1304 __extension__ extern __inline uint16x8_t
1305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_high_u32(uint16x4_t __a,uint32x4_t __b,uint32x4_t __c)1306 vaddhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
1307 {
1308 return (uint16x8_t) __builtin_aarch64_addhn2v4si ((int16x4_t) __a,
1309 (int32x4_t) __b,
1310 (int32x4_t) __c);
1311 }
1312
1313 __extension__ extern __inline uint32x4_t
1314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddhn_high_u64(uint32x2_t __a,uint64x2_t __b,uint64x2_t __c)1315 vaddhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
1316 {
1317 return (uint32x4_t) __builtin_aarch64_addhn2v2di ((int32x2_t) __a,
1318 (int64x2_t) __b,
1319 (int64x2_t) __c);
1320 }
1321
1322 __extension__ extern __inline int8x16_t
1323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_high_s16(int8x8_t __a,int16x8_t __b,int16x8_t __c)1324 vraddhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
1325 {
1326 return (int8x16_t) __builtin_aarch64_raddhn2v8hi (__a, __b, __c);
1327 }
1328
1329 __extension__ extern __inline int16x8_t
1330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_high_s32(int16x4_t __a,int32x4_t __b,int32x4_t __c)1331 vraddhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
1332 {
1333 return (int16x8_t) __builtin_aarch64_raddhn2v4si (__a, __b, __c);
1334 }
1335
1336 __extension__ extern __inline int32x4_t
1337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_high_s64(int32x2_t __a,int64x2_t __b,int64x2_t __c)1338 vraddhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
1339 {
1340 return (int32x4_t) __builtin_aarch64_raddhn2v2di (__a, __b, __c);
1341 }
1342
1343 __extension__ extern __inline uint8x16_t
1344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_high_u16(uint8x8_t __a,uint16x8_t __b,uint16x8_t __c)1345 vraddhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
1346 {
1347 return (uint8x16_t) __builtin_aarch64_raddhn2v8hi ((int8x8_t) __a,
1348 (int16x8_t) __b,
1349 (int16x8_t) __c);
1350 }
1351
1352 __extension__ extern __inline uint16x8_t
1353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_high_u32(uint16x4_t __a,uint32x4_t __b,uint32x4_t __c)1354 vraddhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
1355 {
1356 return (uint16x8_t) __builtin_aarch64_raddhn2v4si ((int16x4_t) __a,
1357 (int32x4_t) __b,
1358 (int32x4_t) __c);
1359 }
1360
1361 __extension__ extern __inline uint32x4_t
1362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vraddhn_high_u64(uint32x2_t __a,uint64x2_t __b,uint64x2_t __c)1363 vraddhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
1364 {
1365 return (uint32x4_t) __builtin_aarch64_raddhn2v2di ((int32x2_t) __a,
1366 (int64x2_t) __b,
1367 (int64x2_t) __c);
1368 }
1369
1370 __extension__ extern __inline float32x2_t
1371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdiv_f32(float32x2_t __a,float32x2_t __b)1372 vdiv_f32 (float32x2_t __a, float32x2_t __b)
1373 {
1374 return __a / __b;
1375 }
1376
1377 __extension__ extern __inline float64x1_t
1378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdiv_f64(float64x1_t __a,float64x1_t __b)1379 vdiv_f64 (float64x1_t __a, float64x1_t __b)
1380 {
1381 return __a / __b;
1382 }
1383
1384 __extension__ extern __inline float32x4_t
1385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdivq_f32(float32x4_t __a,float32x4_t __b)1386 vdivq_f32 (float32x4_t __a, float32x4_t __b)
1387 {
1388 return __a / __b;
1389 }
1390
1391 __extension__ extern __inline float64x2_t
1392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdivq_f64(float64x2_t __a,float64x2_t __b)1393 vdivq_f64 (float64x2_t __a, float64x2_t __b)
1394 {
1395 return __a / __b;
1396 }
1397
1398 __extension__ extern __inline int8x8_t
1399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_s8(int8x8_t __a,int8x8_t __b)1400 vmul_s8 (int8x8_t __a, int8x8_t __b)
1401 {
1402 return __a * __b;
1403 }
1404
1405 __extension__ extern __inline int16x4_t
1406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_s16(int16x4_t __a,int16x4_t __b)1407 vmul_s16 (int16x4_t __a, int16x4_t __b)
1408 {
1409 return __a * __b;
1410 }
1411
1412 __extension__ extern __inline int32x2_t
1413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_s32(int32x2_t __a,int32x2_t __b)1414 vmul_s32 (int32x2_t __a, int32x2_t __b)
1415 {
1416 return __a * __b;
1417 }
1418
1419 __extension__ extern __inline float32x2_t
1420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_f32(float32x2_t __a,float32x2_t __b)1421 vmul_f32 (float32x2_t __a, float32x2_t __b)
1422 {
1423 return __a * __b;
1424 }
1425
1426 __extension__ extern __inline float64x1_t
1427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_f64(float64x1_t __a,float64x1_t __b)1428 vmul_f64 (float64x1_t __a, float64x1_t __b)
1429 {
1430 return __a * __b;
1431 }
1432
1433 __extension__ extern __inline uint8x8_t
1434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_u8(uint8x8_t __a,uint8x8_t __b)1435 vmul_u8 (uint8x8_t __a, uint8x8_t __b)
1436 {
1437 return __a * __b;
1438 }
1439
1440 __extension__ extern __inline uint16x4_t
1441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_u16(uint16x4_t __a,uint16x4_t __b)1442 vmul_u16 (uint16x4_t __a, uint16x4_t __b)
1443 {
1444 return __a * __b;
1445 }
1446
1447 __extension__ extern __inline uint32x2_t
1448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_u32(uint32x2_t __a,uint32x2_t __b)1449 vmul_u32 (uint32x2_t __a, uint32x2_t __b)
1450 {
1451 return __a * __b;
1452 }
1453
1454 __extension__ extern __inline poly8x8_t
1455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_p8(poly8x8_t __a,poly8x8_t __b)1456 vmul_p8 (poly8x8_t __a, poly8x8_t __b)
1457 {
1458 return (poly8x8_t) __builtin_aarch64_pmulv8qi ((int8x8_t) __a,
1459 (int8x8_t) __b);
1460 }
1461
1462 __extension__ extern __inline int8x16_t
1463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_s8(int8x16_t __a,int8x16_t __b)1464 vmulq_s8 (int8x16_t __a, int8x16_t __b)
1465 {
1466 return __a * __b;
1467 }
1468
1469 __extension__ extern __inline int16x8_t
1470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_s16(int16x8_t __a,int16x8_t __b)1471 vmulq_s16 (int16x8_t __a, int16x8_t __b)
1472 {
1473 return __a * __b;
1474 }
1475
1476 __extension__ extern __inline int32x4_t
1477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_s32(int32x4_t __a,int32x4_t __b)1478 vmulq_s32 (int32x4_t __a, int32x4_t __b)
1479 {
1480 return __a * __b;
1481 }
1482
1483 __extension__ extern __inline float32x4_t
1484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_f32(float32x4_t __a,float32x4_t __b)1485 vmulq_f32 (float32x4_t __a, float32x4_t __b)
1486 {
1487 return __a * __b;
1488 }
1489
1490 __extension__ extern __inline float64x2_t
1491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_f64(float64x2_t __a,float64x2_t __b)1492 vmulq_f64 (float64x2_t __a, float64x2_t __b)
1493 {
1494 return __a * __b;
1495 }
1496
1497 __extension__ extern __inline uint8x16_t
1498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_u8(uint8x16_t __a,uint8x16_t __b)1499 vmulq_u8 (uint8x16_t __a, uint8x16_t __b)
1500 {
1501 return __a * __b;
1502 }
1503
1504 __extension__ extern __inline uint16x8_t
1505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_u16(uint16x8_t __a,uint16x8_t __b)1506 vmulq_u16 (uint16x8_t __a, uint16x8_t __b)
1507 {
1508 return __a * __b;
1509 }
1510
1511 __extension__ extern __inline uint32x4_t
1512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_u32(uint32x4_t __a,uint32x4_t __b)1513 vmulq_u32 (uint32x4_t __a, uint32x4_t __b)
1514 {
1515 return __a * __b;
1516 }
1517
1518 __extension__ extern __inline poly8x16_t
1519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_p8(poly8x16_t __a,poly8x16_t __b)1520 vmulq_p8 (poly8x16_t __a, poly8x16_t __b)
1521 {
1522 return (poly8x16_t) __builtin_aarch64_pmulv16qi ((int8x16_t) __a,
1523 (int8x16_t) __b);
1524 }
1525
1526 __extension__ extern __inline int8x8_t
1527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_s8(int8x8_t __a,int8x8_t __b)1528 vand_s8 (int8x8_t __a, int8x8_t __b)
1529 {
1530 return __a & __b;
1531 }
1532
1533 __extension__ extern __inline int16x4_t
1534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_s16(int16x4_t __a,int16x4_t __b)1535 vand_s16 (int16x4_t __a, int16x4_t __b)
1536 {
1537 return __a & __b;
1538 }
1539
1540 __extension__ extern __inline int32x2_t
1541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_s32(int32x2_t __a,int32x2_t __b)1542 vand_s32 (int32x2_t __a, int32x2_t __b)
1543 {
1544 return __a & __b;
1545 }
1546
1547 __extension__ extern __inline uint8x8_t
1548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_u8(uint8x8_t __a,uint8x8_t __b)1549 vand_u8 (uint8x8_t __a, uint8x8_t __b)
1550 {
1551 return __a & __b;
1552 }
1553
1554 __extension__ extern __inline uint16x4_t
1555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_u16(uint16x4_t __a,uint16x4_t __b)1556 vand_u16 (uint16x4_t __a, uint16x4_t __b)
1557 {
1558 return __a & __b;
1559 }
1560
1561 __extension__ extern __inline uint32x2_t
1562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_u32(uint32x2_t __a,uint32x2_t __b)1563 vand_u32 (uint32x2_t __a, uint32x2_t __b)
1564 {
1565 return __a & __b;
1566 }
1567
1568 __extension__ extern __inline int64x1_t
1569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_s64(int64x1_t __a,int64x1_t __b)1570 vand_s64 (int64x1_t __a, int64x1_t __b)
1571 {
1572 return __a & __b;
1573 }
1574
1575 __extension__ extern __inline uint64x1_t
1576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vand_u64(uint64x1_t __a,uint64x1_t __b)1577 vand_u64 (uint64x1_t __a, uint64x1_t __b)
1578 {
1579 return __a & __b;
1580 }
1581
1582 __extension__ extern __inline int8x16_t
1583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_s8(int8x16_t __a,int8x16_t __b)1584 vandq_s8 (int8x16_t __a, int8x16_t __b)
1585 {
1586 return __a & __b;
1587 }
1588
1589 __extension__ extern __inline int16x8_t
1590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_s16(int16x8_t __a,int16x8_t __b)1591 vandq_s16 (int16x8_t __a, int16x8_t __b)
1592 {
1593 return __a & __b;
1594 }
1595
1596 __extension__ extern __inline int32x4_t
1597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_s32(int32x4_t __a,int32x4_t __b)1598 vandq_s32 (int32x4_t __a, int32x4_t __b)
1599 {
1600 return __a & __b;
1601 }
1602
1603 __extension__ extern __inline int64x2_t
1604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_s64(int64x2_t __a,int64x2_t __b)1605 vandq_s64 (int64x2_t __a, int64x2_t __b)
1606 {
1607 return __a & __b;
1608 }
1609
1610 __extension__ extern __inline uint8x16_t
1611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_u8(uint8x16_t __a,uint8x16_t __b)1612 vandq_u8 (uint8x16_t __a, uint8x16_t __b)
1613 {
1614 return __a & __b;
1615 }
1616
1617 __extension__ extern __inline uint16x8_t
1618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_u16(uint16x8_t __a,uint16x8_t __b)1619 vandq_u16 (uint16x8_t __a, uint16x8_t __b)
1620 {
1621 return __a & __b;
1622 }
1623
1624 __extension__ extern __inline uint32x4_t
1625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_u32(uint32x4_t __a,uint32x4_t __b)1626 vandq_u32 (uint32x4_t __a, uint32x4_t __b)
1627 {
1628 return __a & __b;
1629 }
1630
1631 __extension__ extern __inline uint64x2_t
1632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vandq_u64(uint64x2_t __a,uint64x2_t __b)1633 vandq_u64 (uint64x2_t __a, uint64x2_t __b)
1634 {
1635 return __a & __b;
1636 }
1637
1638 __extension__ extern __inline int8x8_t
1639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_s8(int8x8_t __a,int8x8_t __b)1640 vorr_s8 (int8x8_t __a, int8x8_t __b)
1641 {
1642 return __a | __b;
1643 }
1644
1645 __extension__ extern __inline int16x4_t
1646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_s16(int16x4_t __a,int16x4_t __b)1647 vorr_s16 (int16x4_t __a, int16x4_t __b)
1648 {
1649 return __a | __b;
1650 }
1651
1652 __extension__ extern __inline int32x2_t
1653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_s32(int32x2_t __a,int32x2_t __b)1654 vorr_s32 (int32x2_t __a, int32x2_t __b)
1655 {
1656 return __a | __b;
1657 }
1658
1659 __extension__ extern __inline uint8x8_t
1660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_u8(uint8x8_t __a,uint8x8_t __b)1661 vorr_u8 (uint8x8_t __a, uint8x8_t __b)
1662 {
1663 return __a | __b;
1664 }
1665
1666 __extension__ extern __inline uint16x4_t
1667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_u16(uint16x4_t __a,uint16x4_t __b)1668 vorr_u16 (uint16x4_t __a, uint16x4_t __b)
1669 {
1670 return __a | __b;
1671 }
1672
1673 __extension__ extern __inline uint32x2_t
1674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_u32(uint32x2_t __a,uint32x2_t __b)1675 vorr_u32 (uint32x2_t __a, uint32x2_t __b)
1676 {
1677 return __a | __b;
1678 }
1679
1680 __extension__ extern __inline int64x1_t
1681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_s64(int64x1_t __a,int64x1_t __b)1682 vorr_s64 (int64x1_t __a, int64x1_t __b)
1683 {
1684 return __a | __b;
1685 }
1686
1687 __extension__ extern __inline uint64x1_t
1688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorr_u64(uint64x1_t __a,uint64x1_t __b)1689 vorr_u64 (uint64x1_t __a, uint64x1_t __b)
1690 {
1691 return __a | __b;
1692 }
1693
1694 __extension__ extern __inline int8x16_t
1695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_s8(int8x16_t __a,int8x16_t __b)1696 vorrq_s8 (int8x16_t __a, int8x16_t __b)
1697 {
1698 return __a | __b;
1699 }
1700
1701 __extension__ extern __inline int16x8_t
1702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_s16(int16x8_t __a,int16x8_t __b)1703 vorrq_s16 (int16x8_t __a, int16x8_t __b)
1704 {
1705 return __a | __b;
1706 }
1707
1708 __extension__ extern __inline int32x4_t
1709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_s32(int32x4_t __a,int32x4_t __b)1710 vorrq_s32 (int32x4_t __a, int32x4_t __b)
1711 {
1712 return __a | __b;
1713 }
1714
1715 __extension__ extern __inline int64x2_t
1716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_s64(int64x2_t __a,int64x2_t __b)1717 vorrq_s64 (int64x2_t __a, int64x2_t __b)
1718 {
1719 return __a | __b;
1720 }
1721
1722 __extension__ extern __inline uint8x16_t
1723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_u8(uint8x16_t __a,uint8x16_t __b)1724 vorrq_u8 (uint8x16_t __a, uint8x16_t __b)
1725 {
1726 return __a | __b;
1727 }
1728
1729 __extension__ extern __inline uint16x8_t
1730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_u16(uint16x8_t __a,uint16x8_t __b)1731 vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
1732 {
1733 return __a | __b;
1734 }
1735
1736 __extension__ extern __inline uint32x4_t
1737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_u32(uint32x4_t __a,uint32x4_t __b)1738 vorrq_u32 (uint32x4_t __a, uint32x4_t __b)
1739 {
1740 return __a | __b;
1741 }
1742
1743 __extension__ extern __inline uint64x2_t
1744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorrq_u64(uint64x2_t __a,uint64x2_t __b)1745 vorrq_u64 (uint64x2_t __a, uint64x2_t __b)
1746 {
1747 return __a | __b;
1748 }
1749
1750 __extension__ extern __inline int8x8_t
1751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_s8(int8x8_t __a,int8x8_t __b)1752 veor_s8 (int8x8_t __a, int8x8_t __b)
1753 {
1754 return __a ^ __b;
1755 }
1756
1757 __extension__ extern __inline int16x4_t
1758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_s16(int16x4_t __a,int16x4_t __b)1759 veor_s16 (int16x4_t __a, int16x4_t __b)
1760 {
1761 return __a ^ __b;
1762 }
1763
1764 __extension__ extern __inline int32x2_t
1765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_s32(int32x2_t __a,int32x2_t __b)1766 veor_s32 (int32x2_t __a, int32x2_t __b)
1767 {
1768 return __a ^ __b;
1769 }
1770
1771 __extension__ extern __inline uint8x8_t
1772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_u8(uint8x8_t __a,uint8x8_t __b)1773 veor_u8 (uint8x8_t __a, uint8x8_t __b)
1774 {
1775 return __a ^ __b;
1776 }
1777
1778 __extension__ extern __inline uint16x4_t
1779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_u16(uint16x4_t __a,uint16x4_t __b)1780 veor_u16 (uint16x4_t __a, uint16x4_t __b)
1781 {
1782 return __a ^ __b;
1783 }
1784
1785 __extension__ extern __inline uint32x2_t
1786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_u32(uint32x2_t __a,uint32x2_t __b)1787 veor_u32 (uint32x2_t __a, uint32x2_t __b)
1788 {
1789 return __a ^ __b;
1790 }
1791
1792 __extension__ extern __inline int64x1_t
1793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_s64(int64x1_t __a,int64x1_t __b)1794 veor_s64 (int64x1_t __a, int64x1_t __b)
1795 {
1796 return __a ^ __b;
1797 }
1798
1799 __extension__ extern __inline uint64x1_t
1800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor_u64(uint64x1_t __a,uint64x1_t __b)1801 veor_u64 (uint64x1_t __a, uint64x1_t __b)
1802 {
1803 return __a ^ __b;
1804 }
1805
1806 __extension__ extern __inline int8x16_t
1807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_s8(int8x16_t __a,int8x16_t __b)1808 veorq_s8 (int8x16_t __a, int8x16_t __b)
1809 {
1810 return __a ^ __b;
1811 }
1812
1813 __extension__ extern __inline int16x8_t
1814 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_s16(int16x8_t __a,int16x8_t __b)1815 veorq_s16 (int16x8_t __a, int16x8_t __b)
1816 {
1817 return __a ^ __b;
1818 }
1819
1820 __extension__ extern __inline int32x4_t
1821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_s32(int32x4_t __a,int32x4_t __b)1822 veorq_s32 (int32x4_t __a, int32x4_t __b)
1823 {
1824 return __a ^ __b;
1825 }
1826
1827 __extension__ extern __inline int64x2_t
1828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_s64(int64x2_t __a,int64x2_t __b)1829 veorq_s64 (int64x2_t __a, int64x2_t __b)
1830 {
1831 return __a ^ __b;
1832 }
1833
1834 __extension__ extern __inline uint8x16_t
1835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_u8(uint8x16_t __a,uint8x16_t __b)1836 veorq_u8 (uint8x16_t __a, uint8x16_t __b)
1837 {
1838 return __a ^ __b;
1839 }
1840
1841 __extension__ extern __inline uint16x8_t
1842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_u16(uint16x8_t __a,uint16x8_t __b)1843 veorq_u16 (uint16x8_t __a, uint16x8_t __b)
1844 {
1845 return __a ^ __b;
1846 }
1847
1848 __extension__ extern __inline uint32x4_t
1849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_u32(uint32x4_t __a,uint32x4_t __b)1850 veorq_u32 (uint32x4_t __a, uint32x4_t __b)
1851 {
1852 return __a ^ __b;
1853 }
1854
1855 __extension__ extern __inline uint64x2_t
1856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veorq_u64(uint64x2_t __a,uint64x2_t __b)1857 veorq_u64 (uint64x2_t __a, uint64x2_t __b)
1858 {
1859 return __a ^ __b;
1860 }
1861
1862 __extension__ extern __inline int8x8_t
1863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_s8(int8x8_t __a,int8x8_t __b)1864 vbic_s8 (int8x8_t __a, int8x8_t __b)
1865 {
1866 return __a & ~__b;
1867 }
1868
1869 __extension__ extern __inline int16x4_t
1870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_s16(int16x4_t __a,int16x4_t __b)1871 vbic_s16 (int16x4_t __a, int16x4_t __b)
1872 {
1873 return __a & ~__b;
1874 }
1875
1876 __extension__ extern __inline int32x2_t
1877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_s32(int32x2_t __a,int32x2_t __b)1878 vbic_s32 (int32x2_t __a, int32x2_t __b)
1879 {
1880 return __a & ~__b;
1881 }
1882
1883 __extension__ extern __inline uint8x8_t
1884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_u8(uint8x8_t __a,uint8x8_t __b)1885 vbic_u8 (uint8x8_t __a, uint8x8_t __b)
1886 {
1887 return __a & ~__b;
1888 }
1889
1890 __extension__ extern __inline uint16x4_t
1891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_u16(uint16x4_t __a,uint16x4_t __b)1892 vbic_u16 (uint16x4_t __a, uint16x4_t __b)
1893 {
1894 return __a & ~__b;
1895 }
1896
1897 __extension__ extern __inline uint32x2_t
1898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_u32(uint32x2_t __a,uint32x2_t __b)1899 vbic_u32 (uint32x2_t __a, uint32x2_t __b)
1900 {
1901 return __a & ~__b;
1902 }
1903
1904 __extension__ extern __inline int64x1_t
1905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_s64(int64x1_t __a,int64x1_t __b)1906 vbic_s64 (int64x1_t __a, int64x1_t __b)
1907 {
1908 return __a & ~__b;
1909 }
1910
1911 __extension__ extern __inline uint64x1_t
1912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbic_u64(uint64x1_t __a,uint64x1_t __b)1913 vbic_u64 (uint64x1_t __a, uint64x1_t __b)
1914 {
1915 return __a & ~__b;
1916 }
1917
1918 __extension__ extern __inline int8x16_t
1919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_s8(int8x16_t __a,int8x16_t __b)1920 vbicq_s8 (int8x16_t __a, int8x16_t __b)
1921 {
1922 return __a & ~__b;
1923 }
1924
1925 __extension__ extern __inline int16x8_t
1926 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_s16(int16x8_t __a,int16x8_t __b)1927 vbicq_s16 (int16x8_t __a, int16x8_t __b)
1928 {
1929 return __a & ~__b;
1930 }
1931
1932 __extension__ extern __inline int32x4_t
1933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_s32(int32x4_t __a,int32x4_t __b)1934 vbicq_s32 (int32x4_t __a, int32x4_t __b)
1935 {
1936 return __a & ~__b;
1937 }
1938
1939 __extension__ extern __inline int64x2_t
1940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_s64(int64x2_t __a,int64x2_t __b)1941 vbicq_s64 (int64x2_t __a, int64x2_t __b)
1942 {
1943 return __a & ~__b;
1944 }
1945
1946 __extension__ extern __inline uint8x16_t
1947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_u8(uint8x16_t __a,uint8x16_t __b)1948 vbicq_u8 (uint8x16_t __a, uint8x16_t __b)
1949 {
1950 return __a & ~__b;
1951 }
1952
1953 __extension__ extern __inline uint16x8_t
1954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_u16(uint16x8_t __a,uint16x8_t __b)1955 vbicq_u16 (uint16x8_t __a, uint16x8_t __b)
1956 {
1957 return __a & ~__b;
1958 }
1959
1960 __extension__ extern __inline uint32x4_t
1961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_u32(uint32x4_t __a,uint32x4_t __b)1962 vbicq_u32 (uint32x4_t __a, uint32x4_t __b)
1963 {
1964 return __a & ~__b;
1965 }
1966
1967 __extension__ extern __inline uint64x2_t
1968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbicq_u64(uint64x2_t __a,uint64x2_t __b)1969 vbicq_u64 (uint64x2_t __a, uint64x2_t __b)
1970 {
1971 return __a & ~__b;
1972 }
1973
1974 __extension__ extern __inline int8x8_t
1975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_s8(int8x8_t __a,int8x8_t __b)1976 vorn_s8 (int8x8_t __a, int8x8_t __b)
1977 {
1978 return __a | ~__b;
1979 }
1980
1981 __extension__ extern __inline int16x4_t
1982 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_s16(int16x4_t __a,int16x4_t __b)1983 vorn_s16 (int16x4_t __a, int16x4_t __b)
1984 {
1985 return __a | ~__b;
1986 }
1987
1988 __extension__ extern __inline int32x2_t
1989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_s32(int32x2_t __a,int32x2_t __b)1990 vorn_s32 (int32x2_t __a, int32x2_t __b)
1991 {
1992 return __a | ~__b;
1993 }
1994
1995 __extension__ extern __inline uint8x8_t
1996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_u8(uint8x8_t __a,uint8x8_t __b)1997 vorn_u8 (uint8x8_t __a, uint8x8_t __b)
1998 {
1999 return __a | ~__b;
2000 }
2001
2002 __extension__ extern __inline uint16x4_t
2003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_u16(uint16x4_t __a,uint16x4_t __b)2004 vorn_u16 (uint16x4_t __a, uint16x4_t __b)
2005 {
2006 return __a | ~__b;
2007 }
2008
2009 __extension__ extern __inline uint32x2_t
2010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_u32(uint32x2_t __a,uint32x2_t __b)2011 vorn_u32 (uint32x2_t __a, uint32x2_t __b)
2012 {
2013 return __a | ~__b;
2014 }
2015
2016 __extension__ extern __inline int64x1_t
2017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_s64(int64x1_t __a,int64x1_t __b)2018 vorn_s64 (int64x1_t __a, int64x1_t __b)
2019 {
2020 return __a | ~__b;
2021 }
2022
2023 __extension__ extern __inline uint64x1_t
2024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vorn_u64(uint64x1_t __a,uint64x1_t __b)2025 vorn_u64 (uint64x1_t __a, uint64x1_t __b)
2026 {
2027 return __a | ~__b;
2028 }
2029
2030 __extension__ extern __inline int8x16_t
2031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_s8(int8x16_t __a,int8x16_t __b)2032 vornq_s8 (int8x16_t __a, int8x16_t __b)
2033 {
2034 return __a | ~__b;
2035 }
2036
2037 __extension__ extern __inline int16x8_t
2038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_s16(int16x8_t __a,int16x8_t __b)2039 vornq_s16 (int16x8_t __a, int16x8_t __b)
2040 {
2041 return __a | ~__b;
2042 }
2043
2044 __extension__ extern __inline int32x4_t
2045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_s32(int32x4_t __a,int32x4_t __b)2046 vornq_s32 (int32x4_t __a, int32x4_t __b)
2047 {
2048 return __a | ~__b;
2049 }
2050
2051 __extension__ extern __inline int64x2_t
2052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_s64(int64x2_t __a,int64x2_t __b)2053 vornq_s64 (int64x2_t __a, int64x2_t __b)
2054 {
2055 return __a | ~__b;
2056 }
2057
2058 __extension__ extern __inline uint8x16_t
2059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_u8(uint8x16_t __a,uint8x16_t __b)2060 vornq_u8 (uint8x16_t __a, uint8x16_t __b)
2061 {
2062 return __a | ~__b;
2063 }
2064
2065 __extension__ extern __inline uint16x8_t
2066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_u16(uint16x8_t __a,uint16x8_t __b)2067 vornq_u16 (uint16x8_t __a, uint16x8_t __b)
2068 {
2069 return __a | ~__b;
2070 }
2071
2072 __extension__ extern __inline uint32x4_t
2073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_u32(uint32x4_t __a,uint32x4_t __b)2074 vornq_u32 (uint32x4_t __a, uint32x4_t __b)
2075 {
2076 return __a | ~__b;
2077 }
2078
2079 __extension__ extern __inline uint64x2_t
2080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vornq_u64(uint64x2_t __a,uint64x2_t __b)2081 vornq_u64 (uint64x2_t __a, uint64x2_t __b)
2082 {
2083 return __a | ~__b;
2084 }
2085
2086 __extension__ extern __inline int8x8_t
2087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_s8(int8x8_t __a,int8x8_t __b)2088 vsub_s8 (int8x8_t __a, int8x8_t __b)
2089 {
2090 return __a - __b;
2091 }
2092
2093 __extension__ extern __inline int16x4_t
2094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_s16(int16x4_t __a,int16x4_t __b)2095 vsub_s16 (int16x4_t __a, int16x4_t __b)
2096 {
2097 return __a - __b;
2098 }
2099
2100 __extension__ extern __inline int32x2_t
2101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_s32(int32x2_t __a,int32x2_t __b)2102 vsub_s32 (int32x2_t __a, int32x2_t __b)
2103 {
2104 return __a - __b;
2105 }
2106
2107 __extension__ extern __inline float32x2_t
2108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_f32(float32x2_t __a,float32x2_t __b)2109 vsub_f32 (float32x2_t __a, float32x2_t __b)
2110 {
2111 return __a - __b;
2112 }
2113
2114 __extension__ extern __inline float64x1_t
2115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_f64(float64x1_t __a,float64x1_t __b)2116 vsub_f64 (float64x1_t __a, float64x1_t __b)
2117 {
2118 return __a - __b;
2119 }
2120
2121 __extension__ extern __inline uint8x8_t
2122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_u8(uint8x8_t __a,uint8x8_t __b)2123 vsub_u8 (uint8x8_t __a, uint8x8_t __b)
2124 {
2125 return __a - __b;
2126 }
2127
2128 __extension__ extern __inline uint16x4_t
2129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_u16(uint16x4_t __a,uint16x4_t __b)2130 vsub_u16 (uint16x4_t __a, uint16x4_t __b)
2131 {
2132 return __a - __b;
2133 }
2134
2135 __extension__ extern __inline uint32x2_t
2136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_u32(uint32x2_t __a,uint32x2_t __b)2137 vsub_u32 (uint32x2_t __a, uint32x2_t __b)
2138 {
2139 return __a - __b;
2140 }
2141
2142 __extension__ extern __inline int64x1_t
2143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_s64(int64x1_t __a,int64x1_t __b)2144 vsub_s64 (int64x1_t __a, int64x1_t __b)
2145 {
2146 return __a - __b;
2147 }
2148
2149 __extension__ extern __inline uint64x1_t
2150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_u64(uint64x1_t __a,uint64x1_t __b)2151 vsub_u64 (uint64x1_t __a, uint64x1_t __b)
2152 {
2153 return __a - __b;
2154 }
2155
2156 __extension__ extern __inline int8x16_t
2157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_s8(int8x16_t __a,int8x16_t __b)2158 vsubq_s8 (int8x16_t __a, int8x16_t __b)
2159 {
2160 return __a - __b;
2161 }
2162
2163 __extension__ extern __inline int16x8_t
2164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_s16(int16x8_t __a,int16x8_t __b)2165 vsubq_s16 (int16x8_t __a, int16x8_t __b)
2166 {
2167 return __a - __b;
2168 }
2169
2170 __extension__ extern __inline int32x4_t
2171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_s32(int32x4_t __a,int32x4_t __b)2172 vsubq_s32 (int32x4_t __a, int32x4_t __b)
2173 {
2174 return __a - __b;
2175 }
2176
2177 __extension__ extern __inline int64x2_t
2178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_s64(int64x2_t __a,int64x2_t __b)2179 vsubq_s64 (int64x2_t __a, int64x2_t __b)
2180 {
2181 return __a - __b;
2182 }
2183
2184 __extension__ extern __inline float32x4_t
2185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_f32(float32x4_t __a,float32x4_t __b)2186 vsubq_f32 (float32x4_t __a, float32x4_t __b)
2187 {
2188 return __a - __b;
2189 }
2190
2191 __extension__ extern __inline float64x2_t
2192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_f64(float64x2_t __a,float64x2_t __b)2193 vsubq_f64 (float64x2_t __a, float64x2_t __b)
2194 {
2195 return __a - __b;
2196 }
2197
2198 __extension__ extern __inline uint8x16_t
2199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_u8(uint8x16_t __a,uint8x16_t __b)2200 vsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2201 {
2202 return __a - __b;
2203 }
2204
2205 __extension__ extern __inline uint16x8_t
2206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_u16(uint16x8_t __a,uint16x8_t __b)2207 vsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2208 {
2209 return __a - __b;
2210 }
2211
2212 __extension__ extern __inline uint32x4_t
2213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_u32(uint32x4_t __a,uint32x4_t __b)2214 vsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2215 {
2216 return __a - __b;
2217 }
2218
2219 __extension__ extern __inline uint64x2_t
2220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_u64(uint64x2_t __a,uint64x2_t __b)2221 vsubq_u64 (uint64x2_t __a, uint64x2_t __b)
2222 {
2223 return __a - __b;
2224 }
2225
2226 __extension__ extern __inline int16x8_t
2227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_s8(int8x8_t __a,int8x8_t __b)2228 vsubl_s8 (int8x8_t __a, int8x8_t __b)
2229 {
2230 return (int16x8_t) __builtin_aarch64_ssublv8qi (__a, __b);
2231 }
2232
2233 __extension__ extern __inline int32x4_t
2234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_s16(int16x4_t __a,int16x4_t __b)2235 vsubl_s16 (int16x4_t __a, int16x4_t __b)
2236 {
2237 return (int32x4_t) __builtin_aarch64_ssublv4hi (__a, __b);
2238 }
2239
2240 __extension__ extern __inline int64x2_t
2241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_s32(int32x2_t __a,int32x2_t __b)2242 vsubl_s32 (int32x2_t __a, int32x2_t __b)
2243 {
2244 return (int64x2_t) __builtin_aarch64_ssublv2si (__a, __b);
2245 }
2246
2247 __extension__ extern __inline uint16x8_t
2248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_u8(uint8x8_t __a,uint8x8_t __b)2249 vsubl_u8 (uint8x8_t __a, uint8x8_t __b)
2250 {
2251 return (uint16x8_t) __builtin_aarch64_usublv8qi ((int8x8_t) __a,
2252 (int8x8_t) __b);
2253 }
2254
2255 __extension__ extern __inline uint32x4_t
2256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_u16(uint16x4_t __a,uint16x4_t __b)2257 vsubl_u16 (uint16x4_t __a, uint16x4_t __b)
2258 {
2259 return (uint32x4_t) __builtin_aarch64_usublv4hi ((int16x4_t) __a,
2260 (int16x4_t) __b);
2261 }
2262
2263 __extension__ extern __inline uint64x2_t
2264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_u32(uint32x2_t __a,uint32x2_t __b)2265 vsubl_u32 (uint32x2_t __a, uint32x2_t __b)
2266 {
2267 return (uint64x2_t) __builtin_aarch64_usublv2si ((int32x2_t) __a,
2268 (int32x2_t) __b);
2269 }
2270
2271 __extension__ extern __inline int16x8_t
2272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_high_s8(int8x16_t __a,int8x16_t __b)2273 vsubl_high_s8 (int8x16_t __a, int8x16_t __b)
2274 {
2275 return (int16x8_t) __builtin_aarch64_ssubl2v16qi (__a, __b);
2276 }
2277
2278 __extension__ extern __inline int32x4_t
2279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_high_s16(int16x8_t __a,int16x8_t __b)2280 vsubl_high_s16 (int16x8_t __a, int16x8_t __b)
2281 {
2282 return (int32x4_t) __builtin_aarch64_ssubl2v8hi (__a, __b);
2283 }
2284
2285 __extension__ extern __inline int64x2_t
2286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_high_s32(int32x4_t __a,int32x4_t __b)2287 vsubl_high_s32 (int32x4_t __a, int32x4_t __b)
2288 {
2289 return (int64x2_t) __builtin_aarch64_ssubl2v4si (__a, __b);
2290 }
2291
2292 __extension__ extern __inline uint16x8_t
2293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_high_u8(uint8x16_t __a,uint8x16_t __b)2294 vsubl_high_u8 (uint8x16_t __a, uint8x16_t __b)
2295 {
2296 return (uint16x8_t) __builtin_aarch64_usubl2v16qi ((int8x16_t) __a,
2297 (int8x16_t) __b);
2298 }
2299
2300 __extension__ extern __inline uint32x4_t
2301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_high_u16(uint16x8_t __a,uint16x8_t __b)2302 vsubl_high_u16 (uint16x8_t __a, uint16x8_t __b)
2303 {
2304 return (uint32x4_t) __builtin_aarch64_usubl2v8hi ((int16x8_t) __a,
2305 (int16x8_t) __b);
2306 }
2307
2308 __extension__ extern __inline uint64x2_t
2309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubl_high_u32(uint32x4_t __a,uint32x4_t __b)2310 vsubl_high_u32 (uint32x4_t __a, uint32x4_t __b)
2311 {
2312 return (uint64x2_t) __builtin_aarch64_usubl2v4si ((int32x4_t) __a,
2313 (int32x4_t) __b);
2314 }
2315
2316 __extension__ extern __inline int16x8_t
2317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_s8(int16x8_t __a,int8x8_t __b)2318 vsubw_s8 (int16x8_t __a, int8x8_t __b)
2319 {
2320 return (int16x8_t) __builtin_aarch64_ssubwv8qi (__a, __b);
2321 }
2322
2323 __extension__ extern __inline int32x4_t
2324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_s16(int32x4_t __a,int16x4_t __b)2325 vsubw_s16 (int32x4_t __a, int16x4_t __b)
2326 {
2327 return (int32x4_t) __builtin_aarch64_ssubwv4hi (__a, __b);
2328 }
2329
2330 __extension__ extern __inline int64x2_t
2331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_s32(int64x2_t __a,int32x2_t __b)2332 vsubw_s32 (int64x2_t __a, int32x2_t __b)
2333 {
2334 return (int64x2_t) __builtin_aarch64_ssubwv2si (__a, __b);
2335 }
2336
2337 __extension__ extern __inline uint16x8_t
2338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_u8(uint16x8_t __a,uint8x8_t __b)2339 vsubw_u8 (uint16x8_t __a, uint8x8_t __b)
2340 {
2341 return (uint16x8_t) __builtin_aarch64_usubwv8qi ((int16x8_t) __a,
2342 (int8x8_t) __b);
2343 }
2344
2345 __extension__ extern __inline uint32x4_t
2346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_u16(uint32x4_t __a,uint16x4_t __b)2347 vsubw_u16 (uint32x4_t __a, uint16x4_t __b)
2348 {
2349 return (uint32x4_t) __builtin_aarch64_usubwv4hi ((int32x4_t) __a,
2350 (int16x4_t) __b);
2351 }
2352
2353 __extension__ extern __inline uint64x2_t
2354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_u32(uint64x2_t __a,uint32x2_t __b)2355 vsubw_u32 (uint64x2_t __a, uint32x2_t __b)
2356 {
2357 return (uint64x2_t) __builtin_aarch64_usubwv2si ((int64x2_t) __a,
2358 (int32x2_t) __b);
2359 }
2360
2361 __extension__ extern __inline int16x8_t
2362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_high_s8(int16x8_t __a,int8x16_t __b)2363 vsubw_high_s8 (int16x8_t __a, int8x16_t __b)
2364 {
2365 return (int16x8_t) __builtin_aarch64_ssubw2v16qi (__a, __b);
2366 }
2367
2368 __extension__ extern __inline int32x4_t
2369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_high_s16(int32x4_t __a,int16x8_t __b)2370 vsubw_high_s16 (int32x4_t __a, int16x8_t __b)
2371 {
2372 return (int32x4_t) __builtin_aarch64_ssubw2v8hi (__a, __b);
2373 }
2374
2375 __extension__ extern __inline int64x2_t
2376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_high_s32(int64x2_t __a,int32x4_t __b)2377 vsubw_high_s32 (int64x2_t __a, int32x4_t __b)
2378 {
2379 return (int64x2_t) __builtin_aarch64_ssubw2v4si (__a, __b);
2380 }
2381
2382 __extension__ extern __inline uint16x8_t
2383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_high_u8(uint16x8_t __a,uint8x16_t __b)2384 vsubw_high_u8 (uint16x8_t __a, uint8x16_t __b)
2385 {
2386 return (uint16x8_t) __builtin_aarch64_usubw2v16qi ((int16x8_t) __a,
2387 (int8x16_t) __b);
2388 }
2389
2390 __extension__ extern __inline uint32x4_t
2391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_high_u16(uint32x4_t __a,uint16x8_t __b)2392 vsubw_high_u16 (uint32x4_t __a, uint16x8_t __b)
2393 {
2394 return (uint32x4_t) __builtin_aarch64_usubw2v8hi ((int32x4_t) __a,
2395 (int16x8_t) __b);
2396 }
2397
2398 __extension__ extern __inline uint64x2_t
2399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubw_high_u32(uint64x2_t __a,uint32x4_t __b)2400 vsubw_high_u32 (uint64x2_t __a, uint32x4_t __b)
2401 {
2402 return (uint64x2_t) __builtin_aarch64_usubw2v4si ((int64x2_t) __a,
2403 (int32x4_t) __b);
2404 }
2405
2406 __extension__ extern __inline int8x8_t
2407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_s8(int8x8_t __a,int8x8_t __b)2408 vqadd_s8 (int8x8_t __a, int8x8_t __b)
2409 {
2410 return (int8x8_t) __builtin_aarch64_sqaddv8qi (__a, __b);
2411 }
2412
2413 __extension__ extern __inline int16x4_t
2414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_s16(int16x4_t __a,int16x4_t __b)2415 vqadd_s16 (int16x4_t __a, int16x4_t __b)
2416 {
2417 return (int16x4_t) __builtin_aarch64_sqaddv4hi (__a, __b);
2418 }
2419
2420 __extension__ extern __inline int32x2_t
2421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_s32(int32x2_t __a,int32x2_t __b)2422 vqadd_s32 (int32x2_t __a, int32x2_t __b)
2423 {
2424 return (int32x2_t) __builtin_aarch64_sqaddv2si (__a, __b);
2425 }
2426
2427 __extension__ extern __inline int64x1_t
2428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_s64(int64x1_t __a,int64x1_t __b)2429 vqadd_s64 (int64x1_t __a, int64x1_t __b)
2430 {
2431 return (int64x1_t) {__builtin_aarch64_sqadddi (__a[0], __b[0])};
2432 }
2433
2434 __extension__ extern __inline uint8x8_t
2435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_u8(uint8x8_t __a,uint8x8_t __b)2436 vqadd_u8 (uint8x8_t __a, uint8x8_t __b)
2437 {
2438 return __builtin_aarch64_uqaddv8qi_uuu (__a, __b);
2439 }
2440
2441 __extension__ extern __inline int8x8_t
2442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_s8(int8x8_t __a,int8x8_t __b)2443 vhsub_s8 (int8x8_t __a, int8x8_t __b)
2444 {
2445 return (int8x8_t)__builtin_aarch64_shsubv8qi (__a, __b);
2446 }
2447
2448 __extension__ extern __inline int16x4_t
2449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_s16(int16x4_t __a,int16x4_t __b)2450 vhsub_s16 (int16x4_t __a, int16x4_t __b)
2451 {
2452 return (int16x4_t) __builtin_aarch64_shsubv4hi (__a, __b);
2453 }
2454
2455 __extension__ extern __inline int32x2_t
2456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_s32(int32x2_t __a,int32x2_t __b)2457 vhsub_s32 (int32x2_t __a, int32x2_t __b)
2458 {
2459 return (int32x2_t) __builtin_aarch64_shsubv2si (__a, __b);
2460 }
2461
2462 __extension__ extern __inline uint8x8_t
2463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_u8(uint8x8_t __a,uint8x8_t __b)2464 vhsub_u8 (uint8x8_t __a, uint8x8_t __b)
2465 {
2466 return (uint8x8_t) __builtin_aarch64_uhsubv8qi ((int8x8_t) __a,
2467 (int8x8_t) __b);
2468 }
2469
2470 __extension__ extern __inline uint16x4_t
2471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_u16(uint16x4_t __a,uint16x4_t __b)2472 vhsub_u16 (uint16x4_t __a, uint16x4_t __b)
2473 {
2474 return (uint16x4_t) __builtin_aarch64_uhsubv4hi ((int16x4_t) __a,
2475 (int16x4_t) __b);
2476 }
2477
2478 __extension__ extern __inline uint32x2_t
2479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsub_u32(uint32x2_t __a,uint32x2_t __b)2480 vhsub_u32 (uint32x2_t __a, uint32x2_t __b)
2481 {
2482 return (uint32x2_t) __builtin_aarch64_uhsubv2si ((int32x2_t) __a,
2483 (int32x2_t) __b);
2484 }
2485
2486 __extension__ extern __inline int8x16_t
2487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_s8(int8x16_t __a,int8x16_t __b)2488 vhsubq_s8 (int8x16_t __a, int8x16_t __b)
2489 {
2490 return (int8x16_t) __builtin_aarch64_shsubv16qi (__a, __b);
2491 }
2492
2493 __extension__ extern __inline int16x8_t
2494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_s16(int16x8_t __a,int16x8_t __b)2495 vhsubq_s16 (int16x8_t __a, int16x8_t __b)
2496 {
2497 return (int16x8_t) __builtin_aarch64_shsubv8hi (__a, __b);
2498 }
2499
2500 __extension__ extern __inline int32x4_t
2501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_s32(int32x4_t __a,int32x4_t __b)2502 vhsubq_s32 (int32x4_t __a, int32x4_t __b)
2503 {
2504 return (int32x4_t) __builtin_aarch64_shsubv4si (__a, __b);
2505 }
2506
2507 __extension__ extern __inline uint8x16_t
2508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_u8(uint8x16_t __a,uint8x16_t __b)2509 vhsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2510 {
2511 return (uint8x16_t) __builtin_aarch64_uhsubv16qi ((int8x16_t) __a,
2512 (int8x16_t) __b);
2513 }
2514
2515 __extension__ extern __inline uint16x8_t
2516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_u16(uint16x8_t __a,uint16x8_t __b)2517 vhsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2518 {
2519 return (uint16x8_t) __builtin_aarch64_uhsubv8hi ((int16x8_t) __a,
2520 (int16x8_t) __b);
2521 }
2522
2523 __extension__ extern __inline uint32x4_t
2524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vhsubq_u32(uint32x4_t __a,uint32x4_t __b)2525 vhsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2526 {
2527 return (uint32x4_t) __builtin_aarch64_uhsubv4si ((int32x4_t) __a,
2528 (int32x4_t) __b);
2529 }
2530
2531 __extension__ extern __inline int8x8_t
2532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_s16(int16x8_t __a,int16x8_t __b)2533 vsubhn_s16 (int16x8_t __a, int16x8_t __b)
2534 {
2535 return (int8x8_t) __builtin_aarch64_subhnv8hi (__a, __b);
2536 }
2537
2538 __extension__ extern __inline int16x4_t
2539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_s32(int32x4_t __a,int32x4_t __b)2540 vsubhn_s32 (int32x4_t __a, int32x4_t __b)
2541 {
2542 return (int16x4_t) __builtin_aarch64_subhnv4si (__a, __b);
2543 }
2544
2545 __extension__ extern __inline int32x2_t
2546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_s64(int64x2_t __a,int64x2_t __b)2547 vsubhn_s64 (int64x2_t __a, int64x2_t __b)
2548 {
2549 return (int32x2_t) __builtin_aarch64_subhnv2di (__a, __b);
2550 }
2551
2552 __extension__ extern __inline uint8x8_t
2553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_u16(uint16x8_t __a,uint16x8_t __b)2554 vsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2555 {
2556 return (uint8x8_t) __builtin_aarch64_subhnv8hi ((int16x8_t) __a,
2557 (int16x8_t) __b);
2558 }
2559
2560 __extension__ extern __inline uint16x4_t
2561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_u32(uint32x4_t __a,uint32x4_t __b)2562 vsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2563 {
2564 return (uint16x4_t) __builtin_aarch64_subhnv4si ((int32x4_t) __a,
2565 (int32x4_t) __b);
2566 }
2567
2568 __extension__ extern __inline uint32x2_t
2569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_u64(uint64x2_t __a,uint64x2_t __b)2570 vsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2571 {
2572 return (uint32x2_t) __builtin_aarch64_subhnv2di ((int64x2_t) __a,
2573 (int64x2_t) __b);
2574 }
2575
2576 __extension__ extern __inline int8x8_t
2577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_s16(int16x8_t __a,int16x8_t __b)2578 vrsubhn_s16 (int16x8_t __a, int16x8_t __b)
2579 {
2580 return (int8x8_t) __builtin_aarch64_rsubhnv8hi (__a, __b);
2581 }
2582
2583 __extension__ extern __inline int16x4_t
2584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_s32(int32x4_t __a,int32x4_t __b)2585 vrsubhn_s32 (int32x4_t __a, int32x4_t __b)
2586 {
2587 return (int16x4_t) __builtin_aarch64_rsubhnv4si (__a, __b);
2588 }
2589
2590 __extension__ extern __inline int32x2_t
2591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_s64(int64x2_t __a,int64x2_t __b)2592 vrsubhn_s64 (int64x2_t __a, int64x2_t __b)
2593 {
2594 return (int32x2_t) __builtin_aarch64_rsubhnv2di (__a, __b);
2595 }
2596
2597 __extension__ extern __inline uint8x8_t
2598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_u16(uint16x8_t __a,uint16x8_t __b)2599 vrsubhn_u16 (uint16x8_t __a, uint16x8_t __b)
2600 {
2601 return (uint8x8_t) __builtin_aarch64_rsubhnv8hi ((int16x8_t) __a,
2602 (int16x8_t) __b);
2603 }
2604
2605 __extension__ extern __inline uint16x4_t
2606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_u32(uint32x4_t __a,uint32x4_t __b)2607 vrsubhn_u32 (uint32x4_t __a, uint32x4_t __b)
2608 {
2609 return (uint16x4_t) __builtin_aarch64_rsubhnv4si ((int32x4_t) __a,
2610 (int32x4_t) __b);
2611 }
2612
2613 __extension__ extern __inline uint32x2_t
2614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_u64(uint64x2_t __a,uint64x2_t __b)2615 vrsubhn_u64 (uint64x2_t __a, uint64x2_t __b)
2616 {
2617 return (uint32x2_t) __builtin_aarch64_rsubhnv2di ((int64x2_t) __a,
2618 (int64x2_t) __b);
2619 }
2620
2621 __extension__ extern __inline int8x16_t
2622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_high_s16(int8x8_t __a,int16x8_t __b,int16x8_t __c)2623 vrsubhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
2624 {
2625 return (int8x16_t) __builtin_aarch64_rsubhn2v8hi (__a, __b, __c);
2626 }
2627
2628 __extension__ extern __inline int16x8_t
2629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_high_s32(int16x4_t __a,int32x4_t __b,int32x4_t __c)2630 vrsubhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
2631 {
2632 return (int16x8_t) __builtin_aarch64_rsubhn2v4si (__a, __b, __c);
2633 }
2634
2635 __extension__ extern __inline int32x4_t
2636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_high_s64(int32x2_t __a,int64x2_t __b,int64x2_t __c)2637 vrsubhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
2638 {
2639 return (int32x4_t) __builtin_aarch64_rsubhn2v2di (__a, __b, __c);
2640 }
2641
2642 __extension__ extern __inline uint8x16_t
2643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_high_u16(uint8x8_t __a,uint16x8_t __b,uint16x8_t __c)2644 vrsubhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
2645 {
2646 return (uint8x16_t) __builtin_aarch64_rsubhn2v8hi ((int8x8_t) __a,
2647 (int16x8_t) __b,
2648 (int16x8_t) __c);
2649 }
2650
2651 __extension__ extern __inline uint16x8_t
2652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_high_u32(uint16x4_t __a,uint32x4_t __b,uint32x4_t __c)2653 vrsubhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
2654 {
2655 return (uint16x8_t) __builtin_aarch64_rsubhn2v4si ((int16x4_t) __a,
2656 (int32x4_t) __b,
2657 (int32x4_t) __c);
2658 }
2659
2660 __extension__ extern __inline uint32x4_t
2661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsubhn_high_u64(uint32x2_t __a,uint64x2_t __b,uint64x2_t __c)2662 vrsubhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
2663 {
2664 return (uint32x4_t) __builtin_aarch64_rsubhn2v2di ((int32x2_t) __a,
2665 (int64x2_t) __b,
2666 (int64x2_t) __c);
2667 }
2668
2669 __extension__ extern __inline int8x16_t
2670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_high_s16(int8x8_t __a,int16x8_t __b,int16x8_t __c)2671 vsubhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c)
2672 {
2673 return (int8x16_t) __builtin_aarch64_subhn2v8hi (__a, __b, __c);
2674 }
2675
2676 __extension__ extern __inline int16x8_t
2677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_high_s32(int16x4_t __a,int32x4_t __b,int32x4_t __c)2678 vsubhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c)
2679 {
2680 return (int16x8_t) __builtin_aarch64_subhn2v4si (__a, __b, __c);;
2681 }
2682
2683 __extension__ extern __inline int32x4_t
2684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_high_s64(int32x2_t __a,int64x2_t __b,int64x2_t __c)2685 vsubhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c)
2686 {
2687 return (int32x4_t) __builtin_aarch64_subhn2v2di (__a, __b, __c);
2688 }
2689
2690 __extension__ extern __inline uint8x16_t
2691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_high_u16(uint8x8_t __a,uint16x8_t __b,uint16x8_t __c)2692 vsubhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c)
2693 {
2694 return (uint8x16_t) __builtin_aarch64_subhn2v8hi ((int8x8_t) __a,
2695 (int16x8_t) __b,
2696 (int16x8_t) __c);
2697 }
2698
2699 __extension__ extern __inline uint16x8_t
2700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_high_u32(uint16x4_t __a,uint32x4_t __b,uint32x4_t __c)2701 vsubhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c)
2702 {
2703 return (uint16x8_t) __builtin_aarch64_subhn2v4si ((int16x4_t) __a,
2704 (int32x4_t) __b,
2705 (int32x4_t) __c);
2706 }
2707
2708 __extension__ extern __inline uint32x4_t
2709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubhn_high_u64(uint32x2_t __a,uint64x2_t __b,uint64x2_t __c)2710 vsubhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c)
2711 {
2712 return (uint32x4_t) __builtin_aarch64_subhn2v2di ((int32x2_t) __a,
2713 (int64x2_t) __b,
2714 (int64x2_t) __c);
2715 }
2716
2717 __extension__ extern __inline uint16x4_t
2718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_u16(uint16x4_t __a,uint16x4_t __b)2719 vqadd_u16 (uint16x4_t __a, uint16x4_t __b)
2720 {
2721 return __builtin_aarch64_uqaddv4hi_uuu (__a, __b);
2722 }
2723
2724 __extension__ extern __inline uint32x2_t
2725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_u32(uint32x2_t __a,uint32x2_t __b)2726 vqadd_u32 (uint32x2_t __a, uint32x2_t __b)
2727 {
2728 return __builtin_aarch64_uqaddv2si_uuu (__a, __b);
2729 }
2730
2731 __extension__ extern __inline uint64x1_t
2732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadd_u64(uint64x1_t __a,uint64x1_t __b)2733 vqadd_u64 (uint64x1_t __a, uint64x1_t __b)
2734 {
2735 return (uint64x1_t) {__builtin_aarch64_uqadddi_uuu (__a[0], __b[0])};
2736 }
2737
2738 __extension__ extern __inline int8x16_t
2739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_s8(int8x16_t __a,int8x16_t __b)2740 vqaddq_s8 (int8x16_t __a, int8x16_t __b)
2741 {
2742 return (int8x16_t) __builtin_aarch64_sqaddv16qi (__a, __b);
2743 }
2744
2745 __extension__ extern __inline int16x8_t
2746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_s16(int16x8_t __a,int16x8_t __b)2747 vqaddq_s16 (int16x8_t __a, int16x8_t __b)
2748 {
2749 return (int16x8_t) __builtin_aarch64_sqaddv8hi (__a, __b);
2750 }
2751
2752 __extension__ extern __inline int32x4_t
2753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_s32(int32x4_t __a,int32x4_t __b)2754 vqaddq_s32 (int32x4_t __a, int32x4_t __b)
2755 {
2756 return (int32x4_t) __builtin_aarch64_sqaddv4si (__a, __b);
2757 }
2758
2759 __extension__ extern __inline int64x2_t
2760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_s64(int64x2_t __a,int64x2_t __b)2761 vqaddq_s64 (int64x2_t __a, int64x2_t __b)
2762 {
2763 return (int64x2_t) __builtin_aarch64_sqaddv2di (__a, __b);
2764 }
2765
2766 __extension__ extern __inline uint8x16_t
2767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_u8(uint8x16_t __a,uint8x16_t __b)2768 vqaddq_u8 (uint8x16_t __a, uint8x16_t __b)
2769 {
2770 return __builtin_aarch64_uqaddv16qi_uuu (__a, __b);
2771 }
2772
2773 __extension__ extern __inline uint16x8_t
2774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_u16(uint16x8_t __a,uint16x8_t __b)2775 vqaddq_u16 (uint16x8_t __a, uint16x8_t __b)
2776 {
2777 return __builtin_aarch64_uqaddv8hi_uuu (__a, __b);
2778 }
2779
2780 __extension__ extern __inline uint32x4_t
2781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_u32(uint32x4_t __a,uint32x4_t __b)2782 vqaddq_u32 (uint32x4_t __a, uint32x4_t __b)
2783 {
2784 return __builtin_aarch64_uqaddv4si_uuu (__a, __b);
2785 }
2786
2787 __extension__ extern __inline uint64x2_t
2788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddq_u64(uint64x2_t __a,uint64x2_t __b)2789 vqaddq_u64 (uint64x2_t __a, uint64x2_t __b)
2790 {
2791 return __builtin_aarch64_uqaddv2di_uuu (__a, __b);
2792 }
2793
2794 __extension__ extern __inline int8x8_t
2795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_s8(int8x8_t __a,int8x8_t __b)2796 vqsub_s8 (int8x8_t __a, int8x8_t __b)
2797 {
2798 return (int8x8_t) __builtin_aarch64_sqsubv8qi (__a, __b);
2799 }
2800
2801 __extension__ extern __inline int16x4_t
2802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_s16(int16x4_t __a,int16x4_t __b)2803 vqsub_s16 (int16x4_t __a, int16x4_t __b)
2804 {
2805 return (int16x4_t) __builtin_aarch64_sqsubv4hi (__a, __b);
2806 }
2807
2808 __extension__ extern __inline int32x2_t
2809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_s32(int32x2_t __a,int32x2_t __b)2810 vqsub_s32 (int32x2_t __a, int32x2_t __b)
2811 {
2812 return (int32x2_t) __builtin_aarch64_sqsubv2si (__a, __b);
2813 }
2814
2815 __extension__ extern __inline int64x1_t
2816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_s64(int64x1_t __a,int64x1_t __b)2817 vqsub_s64 (int64x1_t __a, int64x1_t __b)
2818 {
2819 return (int64x1_t) {__builtin_aarch64_sqsubdi (__a[0], __b[0])};
2820 }
2821
2822 __extension__ extern __inline uint8x8_t
2823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_u8(uint8x8_t __a,uint8x8_t __b)2824 vqsub_u8 (uint8x8_t __a, uint8x8_t __b)
2825 {
2826 return __builtin_aarch64_uqsubv8qi_uuu (__a, __b);
2827 }
2828
2829 __extension__ extern __inline uint16x4_t
2830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_u16(uint16x4_t __a,uint16x4_t __b)2831 vqsub_u16 (uint16x4_t __a, uint16x4_t __b)
2832 {
2833 return __builtin_aarch64_uqsubv4hi_uuu (__a, __b);
2834 }
2835
2836 __extension__ extern __inline uint32x2_t
2837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_u32(uint32x2_t __a,uint32x2_t __b)2838 vqsub_u32 (uint32x2_t __a, uint32x2_t __b)
2839 {
2840 return __builtin_aarch64_uqsubv2si_uuu (__a, __b);
2841 }
2842
2843 __extension__ extern __inline uint64x1_t
2844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsub_u64(uint64x1_t __a,uint64x1_t __b)2845 vqsub_u64 (uint64x1_t __a, uint64x1_t __b)
2846 {
2847 return (uint64x1_t) {__builtin_aarch64_uqsubdi_uuu (__a[0], __b[0])};
2848 }
2849
2850 __extension__ extern __inline int8x16_t
2851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_s8(int8x16_t __a,int8x16_t __b)2852 vqsubq_s8 (int8x16_t __a, int8x16_t __b)
2853 {
2854 return (int8x16_t) __builtin_aarch64_sqsubv16qi (__a, __b);
2855 }
2856
2857 __extension__ extern __inline int16x8_t
2858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_s16(int16x8_t __a,int16x8_t __b)2859 vqsubq_s16 (int16x8_t __a, int16x8_t __b)
2860 {
2861 return (int16x8_t) __builtin_aarch64_sqsubv8hi (__a, __b);
2862 }
2863
2864 __extension__ extern __inline int32x4_t
2865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_s32(int32x4_t __a,int32x4_t __b)2866 vqsubq_s32 (int32x4_t __a, int32x4_t __b)
2867 {
2868 return (int32x4_t) __builtin_aarch64_sqsubv4si (__a, __b);
2869 }
2870
2871 __extension__ extern __inline int64x2_t
2872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_s64(int64x2_t __a,int64x2_t __b)2873 vqsubq_s64 (int64x2_t __a, int64x2_t __b)
2874 {
2875 return (int64x2_t) __builtin_aarch64_sqsubv2di (__a, __b);
2876 }
2877
2878 __extension__ extern __inline uint8x16_t
2879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_u8(uint8x16_t __a,uint8x16_t __b)2880 vqsubq_u8 (uint8x16_t __a, uint8x16_t __b)
2881 {
2882 return __builtin_aarch64_uqsubv16qi_uuu (__a, __b);
2883 }
2884
2885 __extension__ extern __inline uint16x8_t
2886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_u16(uint16x8_t __a,uint16x8_t __b)2887 vqsubq_u16 (uint16x8_t __a, uint16x8_t __b)
2888 {
2889 return __builtin_aarch64_uqsubv8hi_uuu (__a, __b);
2890 }
2891
2892 __extension__ extern __inline uint32x4_t
2893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_u32(uint32x4_t __a,uint32x4_t __b)2894 vqsubq_u32 (uint32x4_t __a, uint32x4_t __b)
2895 {
2896 return __builtin_aarch64_uqsubv4si_uuu (__a, __b);
2897 }
2898
2899 __extension__ extern __inline uint64x2_t
2900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubq_u64(uint64x2_t __a,uint64x2_t __b)2901 vqsubq_u64 (uint64x2_t __a, uint64x2_t __b)
2902 {
2903 return __builtin_aarch64_uqsubv2di_uuu (__a, __b);
2904 }
2905
2906 __extension__ extern __inline int8x8_t
2907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqneg_s8(int8x8_t __a)2908 vqneg_s8 (int8x8_t __a)
2909 {
2910 return (int8x8_t) __builtin_aarch64_sqnegv8qi (__a);
2911 }
2912
2913 __extension__ extern __inline int16x4_t
2914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqneg_s16(int16x4_t __a)2915 vqneg_s16 (int16x4_t __a)
2916 {
2917 return (int16x4_t) __builtin_aarch64_sqnegv4hi (__a);
2918 }
2919
2920 __extension__ extern __inline int32x2_t
2921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqneg_s32(int32x2_t __a)2922 vqneg_s32 (int32x2_t __a)
2923 {
2924 return (int32x2_t) __builtin_aarch64_sqnegv2si (__a);
2925 }
2926
2927 __extension__ extern __inline int64x1_t
2928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqneg_s64(int64x1_t __a)2929 vqneg_s64 (int64x1_t __a)
2930 {
2931 return (int64x1_t) {__builtin_aarch64_sqnegdi (__a[0])};
2932 }
2933
2934 __extension__ extern __inline int8x16_t
2935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegq_s8(int8x16_t __a)2936 vqnegq_s8 (int8x16_t __a)
2937 {
2938 return (int8x16_t) __builtin_aarch64_sqnegv16qi (__a);
2939 }
2940
2941 __extension__ extern __inline int16x8_t
2942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegq_s16(int16x8_t __a)2943 vqnegq_s16 (int16x8_t __a)
2944 {
2945 return (int16x8_t) __builtin_aarch64_sqnegv8hi (__a);
2946 }
2947
2948 __extension__ extern __inline int32x4_t
2949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegq_s32(int32x4_t __a)2950 vqnegq_s32 (int32x4_t __a)
2951 {
2952 return (int32x4_t) __builtin_aarch64_sqnegv4si (__a);
2953 }
2954
2955 __extension__ extern __inline int8x8_t
2956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabs_s8(int8x8_t __a)2957 vqabs_s8 (int8x8_t __a)
2958 {
2959 return (int8x8_t) __builtin_aarch64_sqabsv8qi (__a);
2960 }
2961
2962 __extension__ extern __inline int16x4_t
2963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabs_s16(int16x4_t __a)2964 vqabs_s16 (int16x4_t __a)
2965 {
2966 return (int16x4_t) __builtin_aarch64_sqabsv4hi (__a);
2967 }
2968
2969 __extension__ extern __inline int32x2_t
2970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabs_s32(int32x2_t __a)2971 vqabs_s32 (int32x2_t __a)
2972 {
2973 return (int32x2_t) __builtin_aarch64_sqabsv2si (__a);
2974 }
2975
2976 __extension__ extern __inline int64x1_t
2977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabs_s64(int64x1_t __a)2978 vqabs_s64 (int64x1_t __a)
2979 {
2980 return (int64x1_t) {__builtin_aarch64_sqabsdi (__a[0])};
2981 }
2982
2983 __extension__ extern __inline int8x16_t
2984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsq_s8(int8x16_t __a)2985 vqabsq_s8 (int8x16_t __a)
2986 {
2987 return (int8x16_t) __builtin_aarch64_sqabsv16qi (__a);
2988 }
2989
2990 __extension__ extern __inline int16x8_t
2991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsq_s16(int16x8_t __a)2992 vqabsq_s16 (int16x8_t __a)
2993 {
2994 return (int16x8_t) __builtin_aarch64_sqabsv8hi (__a);
2995 }
2996
2997 __extension__ extern __inline int32x4_t
2998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsq_s32(int32x4_t __a)2999 vqabsq_s32 (int32x4_t __a)
3000 {
3001 return (int32x4_t) __builtin_aarch64_sqabsv4si (__a);
3002 }
3003
3004 __extension__ extern __inline int16x4_t
3005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_s16(int16x4_t __a,int16x4_t __b)3006 vqdmulh_s16 (int16x4_t __a, int16x4_t __b)
3007 {
3008 return (int16x4_t) __builtin_aarch64_sqdmulhv4hi (__a, __b);
3009 }
3010
3011 __extension__ extern __inline int32x2_t
3012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_s32(int32x2_t __a,int32x2_t __b)3013 vqdmulh_s32 (int32x2_t __a, int32x2_t __b)
3014 {
3015 return (int32x2_t) __builtin_aarch64_sqdmulhv2si (__a, __b);
3016 }
3017
3018 __extension__ extern __inline int16x8_t
3019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_s16(int16x8_t __a,int16x8_t __b)3020 vqdmulhq_s16 (int16x8_t __a, int16x8_t __b)
3021 {
3022 return (int16x8_t) __builtin_aarch64_sqdmulhv8hi (__a, __b);
3023 }
3024
3025 __extension__ extern __inline int32x4_t
3026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_s32(int32x4_t __a,int32x4_t __b)3027 vqdmulhq_s32 (int32x4_t __a, int32x4_t __b)
3028 {
3029 return (int32x4_t) __builtin_aarch64_sqdmulhv4si (__a, __b);
3030 }
3031
3032 __extension__ extern __inline int16x4_t
3033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_s16(int16x4_t __a,int16x4_t __b)3034 vqrdmulh_s16 (int16x4_t __a, int16x4_t __b)
3035 {
3036 return (int16x4_t) __builtin_aarch64_sqrdmulhv4hi (__a, __b);
3037 }
3038
3039 __extension__ extern __inline int32x2_t
3040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_s32(int32x2_t __a,int32x2_t __b)3041 vqrdmulh_s32 (int32x2_t __a, int32x2_t __b)
3042 {
3043 return (int32x2_t) __builtin_aarch64_sqrdmulhv2si (__a, __b);
3044 }
3045
3046 __extension__ extern __inline int16x8_t
3047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_s16(int16x8_t __a,int16x8_t __b)3048 vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b)
3049 {
3050 return (int16x8_t) __builtin_aarch64_sqrdmulhv8hi (__a, __b);
3051 }
3052
3053 __extension__ extern __inline int32x4_t
3054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_s32(int32x4_t __a,int32x4_t __b)3055 vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b)
3056 {
3057 return (int32x4_t) __builtin_aarch64_sqrdmulhv4si (__a, __b);
3058 }
3059
3060 __extension__ extern __inline int8x8_t
3061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_s8(uint64_t __a)3062 vcreate_s8 (uint64_t __a)
3063 {
3064 return (int8x8_t) __a;
3065 }
3066
3067 __extension__ extern __inline int16x4_t
3068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_s16(uint64_t __a)3069 vcreate_s16 (uint64_t __a)
3070 {
3071 return (int16x4_t) __a;
3072 }
3073
3074 __extension__ extern __inline int32x2_t
3075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_s32(uint64_t __a)3076 vcreate_s32 (uint64_t __a)
3077 {
3078 return (int32x2_t) __a;
3079 }
3080
3081 __extension__ extern __inline int64x1_t
3082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_s64(uint64_t __a)3083 vcreate_s64 (uint64_t __a)
3084 {
3085 return (int64x1_t) {__a};
3086 }
3087
3088 __extension__ extern __inline float16x4_t
3089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_f16(uint64_t __a)3090 vcreate_f16 (uint64_t __a)
3091 {
3092 return (float16x4_t) __a;
3093 }
3094
3095 __extension__ extern __inline float32x2_t
3096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_f32(uint64_t __a)3097 vcreate_f32 (uint64_t __a)
3098 {
3099 return (float32x2_t) __a;
3100 }
3101
3102 __extension__ extern __inline uint8x8_t
3103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_u8(uint64_t __a)3104 vcreate_u8 (uint64_t __a)
3105 {
3106 return (uint8x8_t) __a;
3107 }
3108
3109 __extension__ extern __inline uint16x4_t
3110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_u16(uint64_t __a)3111 vcreate_u16 (uint64_t __a)
3112 {
3113 return (uint16x4_t) __a;
3114 }
3115
3116 __extension__ extern __inline uint32x2_t
3117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_u32(uint64_t __a)3118 vcreate_u32 (uint64_t __a)
3119 {
3120 return (uint32x2_t) __a;
3121 }
3122
3123 __extension__ extern __inline uint64x1_t
3124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_u64(uint64_t __a)3125 vcreate_u64 (uint64_t __a)
3126 {
3127 return (uint64x1_t) {__a};
3128 }
3129
3130 __extension__ extern __inline float64x1_t
3131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_f64(uint64_t __a)3132 vcreate_f64 (uint64_t __a)
3133 {
3134 return (float64x1_t) __a;
3135 }
3136
3137 __extension__ extern __inline poly8x8_t
3138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_p8(uint64_t __a)3139 vcreate_p8 (uint64_t __a)
3140 {
3141 return (poly8x8_t) __a;
3142 }
3143
3144 __extension__ extern __inline poly16x4_t
3145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_p16(uint64_t __a)3146 vcreate_p16 (uint64_t __a)
3147 {
3148 return (poly16x4_t) __a;
3149 }
3150
3151 __extension__ extern __inline poly64x1_t
3152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_p64(uint64_t __a)3153 vcreate_p64 (uint64_t __a)
3154 {
3155 return (poly64x1_t) __a;
3156 }
3157
3158 /* vget_lane */
3159
3160 __extension__ extern __inline float16_t
3161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_f16(float16x4_t __a,const int __b)3162 vget_lane_f16 (float16x4_t __a, const int __b)
3163 {
3164 return __aarch64_vget_lane_any (__a, __b);
3165 }
3166
3167 __extension__ extern __inline float32_t
3168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_f32(float32x2_t __a,const int __b)3169 vget_lane_f32 (float32x2_t __a, const int __b)
3170 {
3171 return __aarch64_vget_lane_any (__a, __b);
3172 }
3173
3174 __extension__ extern __inline float64_t
3175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_f64(float64x1_t __a,const int __b)3176 vget_lane_f64 (float64x1_t __a, const int __b)
3177 {
3178 return __aarch64_vget_lane_any (__a, __b);
3179 }
3180
3181 __extension__ extern __inline poly8_t
3182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_p8(poly8x8_t __a,const int __b)3183 vget_lane_p8 (poly8x8_t __a, const int __b)
3184 {
3185 return __aarch64_vget_lane_any (__a, __b);
3186 }
3187
3188 __extension__ extern __inline poly16_t
3189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_p16(poly16x4_t __a,const int __b)3190 vget_lane_p16 (poly16x4_t __a, const int __b)
3191 {
3192 return __aarch64_vget_lane_any (__a, __b);
3193 }
3194
3195 __extension__ extern __inline poly64_t
3196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_p64(poly64x1_t __a,const int __b)3197 vget_lane_p64 (poly64x1_t __a, const int __b)
3198 {
3199 return __aarch64_vget_lane_any (__a, __b);
3200 }
3201
3202 __extension__ extern __inline int8_t
3203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_s8(int8x8_t __a,const int __b)3204 vget_lane_s8 (int8x8_t __a, const int __b)
3205 {
3206 return __aarch64_vget_lane_any (__a, __b);
3207 }
3208
3209 __extension__ extern __inline int16_t
3210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_s16(int16x4_t __a,const int __b)3211 vget_lane_s16 (int16x4_t __a, const int __b)
3212 {
3213 return __aarch64_vget_lane_any (__a, __b);
3214 }
3215
3216 __extension__ extern __inline int32_t
3217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_s32(int32x2_t __a,const int __b)3218 vget_lane_s32 (int32x2_t __a, const int __b)
3219 {
3220 return __aarch64_vget_lane_any (__a, __b);
3221 }
3222
3223 __extension__ extern __inline int64_t
3224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_s64(int64x1_t __a,const int __b)3225 vget_lane_s64 (int64x1_t __a, const int __b)
3226 {
3227 return __aarch64_vget_lane_any (__a, __b);
3228 }
3229
3230 __extension__ extern __inline uint8_t
3231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_u8(uint8x8_t __a,const int __b)3232 vget_lane_u8 (uint8x8_t __a, const int __b)
3233 {
3234 return __aarch64_vget_lane_any (__a, __b);
3235 }
3236
3237 __extension__ extern __inline uint16_t
3238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_u16(uint16x4_t __a,const int __b)3239 vget_lane_u16 (uint16x4_t __a, const int __b)
3240 {
3241 return __aarch64_vget_lane_any (__a, __b);
3242 }
3243
3244 __extension__ extern __inline uint32_t
3245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_u32(uint32x2_t __a,const int __b)3246 vget_lane_u32 (uint32x2_t __a, const int __b)
3247 {
3248 return __aarch64_vget_lane_any (__a, __b);
3249 }
3250
3251 __extension__ extern __inline uint64_t
3252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_u64(uint64x1_t __a,const int __b)3253 vget_lane_u64 (uint64x1_t __a, const int __b)
3254 {
3255 return __aarch64_vget_lane_any (__a, __b);
3256 }
3257
3258 /* vgetq_lane */
3259
3260 __extension__ extern __inline float16_t
3261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_f16(float16x8_t __a,const int __b)3262 vgetq_lane_f16 (float16x8_t __a, const int __b)
3263 {
3264 return __aarch64_vget_lane_any (__a, __b);
3265 }
3266
3267 __extension__ extern __inline float32_t
3268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_f32(float32x4_t __a,const int __b)3269 vgetq_lane_f32 (float32x4_t __a, const int __b)
3270 {
3271 return __aarch64_vget_lane_any (__a, __b);
3272 }
3273
3274 __extension__ extern __inline float64_t
3275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_f64(float64x2_t __a,const int __b)3276 vgetq_lane_f64 (float64x2_t __a, const int __b)
3277 {
3278 return __aarch64_vget_lane_any (__a, __b);
3279 }
3280
3281 __extension__ extern __inline poly8_t
3282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_p8(poly8x16_t __a,const int __b)3283 vgetq_lane_p8 (poly8x16_t __a, const int __b)
3284 {
3285 return __aarch64_vget_lane_any (__a, __b);
3286 }
3287
3288 __extension__ extern __inline poly16_t
3289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_p16(poly16x8_t __a,const int __b)3290 vgetq_lane_p16 (poly16x8_t __a, const int __b)
3291 {
3292 return __aarch64_vget_lane_any (__a, __b);
3293 }
3294
3295 __extension__ extern __inline poly64_t
3296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_p64(poly64x2_t __a,const int __b)3297 vgetq_lane_p64 (poly64x2_t __a, const int __b)
3298 {
3299 return __aarch64_vget_lane_any (__a, __b);
3300 }
3301
3302 __extension__ extern __inline int8_t
3303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_s8(int8x16_t __a,const int __b)3304 vgetq_lane_s8 (int8x16_t __a, const int __b)
3305 {
3306 return __aarch64_vget_lane_any (__a, __b);
3307 }
3308
3309 __extension__ extern __inline int16_t
3310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_s16(int16x8_t __a,const int __b)3311 vgetq_lane_s16 (int16x8_t __a, const int __b)
3312 {
3313 return __aarch64_vget_lane_any (__a, __b);
3314 }
3315
3316 __extension__ extern __inline int32_t
3317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_s32(int32x4_t __a,const int __b)3318 vgetq_lane_s32 (int32x4_t __a, const int __b)
3319 {
3320 return __aarch64_vget_lane_any (__a, __b);
3321 }
3322
3323 __extension__ extern __inline int64_t
3324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_s64(int64x2_t __a,const int __b)3325 vgetq_lane_s64 (int64x2_t __a, const int __b)
3326 {
3327 return __aarch64_vget_lane_any (__a, __b);
3328 }
3329
3330 __extension__ extern __inline uint8_t
3331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_u8(uint8x16_t __a,const int __b)3332 vgetq_lane_u8 (uint8x16_t __a, const int __b)
3333 {
3334 return __aarch64_vget_lane_any (__a, __b);
3335 }
3336
3337 __extension__ extern __inline uint16_t
3338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_u16(uint16x8_t __a,const int __b)3339 vgetq_lane_u16 (uint16x8_t __a, const int __b)
3340 {
3341 return __aarch64_vget_lane_any (__a, __b);
3342 }
3343
3344 __extension__ extern __inline uint32_t
3345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_u32(uint32x4_t __a,const int __b)3346 vgetq_lane_u32 (uint32x4_t __a, const int __b)
3347 {
3348 return __aarch64_vget_lane_any (__a, __b);
3349 }
3350
3351 __extension__ extern __inline uint64_t
3352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_u64(uint64x2_t __a,const int __b)3353 vgetq_lane_u64 (uint64x2_t __a, const int __b)
3354 {
3355 return __aarch64_vget_lane_any (__a, __b);
3356 }
3357
3358 /* vreinterpret */
3359
3360 __extension__ extern __inline poly8x8_t
3361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_f16(float16x4_t __a)3362 vreinterpret_p8_f16 (float16x4_t __a)
3363 {
3364 return (poly8x8_t) __a;
3365 }
3366
3367 __extension__ extern __inline poly8x8_t
3368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_f64(float64x1_t __a)3369 vreinterpret_p8_f64 (float64x1_t __a)
3370 {
3371 return (poly8x8_t) __a;
3372 }
3373
3374 __extension__ extern __inline poly8x8_t
3375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_s8(int8x8_t __a)3376 vreinterpret_p8_s8 (int8x8_t __a)
3377 {
3378 return (poly8x8_t) __a;
3379 }
3380
3381 __extension__ extern __inline poly8x8_t
3382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_s16(int16x4_t __a)3383 vreinterpret_p8_s16 (int16x4_t __a)
3384 {
3385 return (poly8x8_t) __a;
3386 }
3387
3388 __extension__ extern __inline poly8x8_t
3389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_s32(int32x2_t __a)3390 vreinterpret_p8_s32 (int32x2_t __a)
3391 {
3392 return (poly8x8_t) __a;
3393 }
3394
3395 __extension__ extern __inline poly8x8_t
3396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_s64(int64x1_t __a)3397 vreinterpret_p8_s64 (int64x1_t __a)
3398 {
3399 return (poly8x8_t) __a;
3400 }
3401
3402 __extension__ extern __inline poly8x8_t
3403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_f32(float32x2_t __a)3404 vreinterpret_p8_f32 (float32x2_t __a)
3405 {
3406 return (poly8x8_t) __a;
3407 }
3408
3409 __extension__ extern __inline poly8x8_t
3410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_u8(uint8x8_t __a)3411 vreinterpret_p8_u8 (uint8x8_t __a)
3412 {
3413 return (poly8x8_t) __a;
3414 }
3415
3416 __extension__ extern __inline poly8x8_t
3417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_u16(uint16x4_t __a)3418 vreinterpret_p8_u16 (uint16x4_t __a)
3419 {
3420 return (poly8x8_t) __a;
3421 }
3422
3423 __extension__ extern __inline poly8x8_t
3424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_u32(uint32x2_t __a)3425 vreinterpret_p8_u32 (uint32x2_t __a)
3426 {
3427 return (poly8x8_t) __a;
3428 }
3429
3430 __extension__ extern __inline poly8x8_t
3431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_u64(uint64x1_t __a)3432 vreinterpret_p8_u64 (uint64x1_t __a)
3433 {
3434 return (poly8x8_t) __a;
3435 }
3436
3437 __extension__ extern __inline poly8x8_t
3438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_p16(poly16x4_t __a)3439 vreinterpret_p8_p16 (poly16x4_t __a)
3440 {
3441 return (poly8x8_t) __a;
3442 }
3443
3444 __extension__ extern __inline poly8x8_t
3445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_p64(poly64x1_t __a)3446 vreinterpret_p8_p64 (poly64x1_t __a)
3447 {
3448 return (poly8x8_t) __a;
3449 }
3450
3451 __extension__ extern __inline poly8x16_t
3452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_f64(float64x2_t __a)3453 vreinterpretq_p8_f64 (float64x2_t __a)
3454 {
3455 return (poly8x16_t) __a;
3456 }
3457
3458 __extension__ extern __inline poly8x16_t
3459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_s8(int8x16_t __a)3460 vreinterpretq_p8_s8 (int8x16_t __a)
3461 {
3462 return (poly8x16_t) __a;
3463 }
3464
3465 __extension__ extern __inline poly8x16_t
3466 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_s16(int16x8_t __a)3467 vreinterpretq_p8_s16 (int16x8_t __a)
3468 {
3469 return (poly8x16_t) __a;
3470 }
3471
3472 __extension__ extern __inline poly8x16_t
3473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_s32(int32x4_t __a)3474 vreinterpretq_p8_s32 (int32x4_t __a)
3475 {
3476 return (poly8x16_t) __a;
3477 }
3478
3479 __extension__ extern __inline poly8x16_t
3480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_s64(int64x2_t __a)3481 vreinterpretq_p8_s64 (int64x2_t __a)
3482 {
3483 return (poly8x16_t) __a;
3484 }
3485
3486 __extension__ extern __inline poly8x16_t
3487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_f16(float16x8_t __a)3488 vreinterpretq_p8_f16 (float16x8_t __a)
3489 {
3490 return (poly8x16_t) __a;
3491 }
3492
3493 __extension__ extern __inline poly8x16_t
3494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_f32(float32x4_t __a)3495 vreinterpretq_p8_f32 (float32x4_t __a)
3496 {
3497 return (poly8x16_t) __a;
3498 }
3499
3500 __extension__ extern __inline poly8x16_t
3501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_u8(uint8x16_t __a)3502 vreinterpretq_p8_u8 (uint8x16_t __a)
3503 {
3504 return (poly8x16_t) __a;
3505 }
3506
3507 __extension__ extern __inline poly8x16_t
3508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_u16(uint16x8_t __a)3509 vreinterpretq_p8_u16 (uint16x8_t __a)
3510 {
3511 return (poly8x16_t) __a;
3512 }
3513
3514 __extension__ extern __inline poly8x16_t
3515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_u32(uint32x4_t __a)3516 vreinterpretq_p8_u32 (uint32x4_t __a)
3517 {
3518 return (poly8x16_t) __a;
3519 }
3520
3521 __extension__ extern __inline poly8x16_t
3522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_u64(uint64x2_t __a)3523 vreinterpretq_p8_u64 (uint64x2_t __a)
3524 {
3525 return (poly8x16_t) __a;
3526 }
3527
3528 __extension__ extern __inline poly8x16_t
3529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_p16(poly16x8_t __a)3530 vreinterpretq_p8_p16 (poly16x8_t __a)
3531 {
3532 return (poly8x16_t) __a;
3533 }
3534
3535 __extension__ extern __inline poly8x16_t
3536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_p64(poly64x2_t __a)3537 vreinterpretq_p8_p64 (poly64x2_t __a)
3538 {
3539 return (poly8x16_t) __a;
3540 }
3541
3542 __extension__ extern __inline poly8x16_t
3543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_p128(poly128_t __a)3544 vreinterpretq_p8_p128 (poly128_t __a)
3545 {
3546 return (poly8x16_t)__a;
3547 }
3548
3549 __extension__ extern __inline poly16x4_t
3550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_f16(float16x4_t __a)3551 vreinterpret_p16_f16 (float16x4_t __a)
3552 {
3553 return (poly16x4_t) __a;
3554 }
3555
3556 __extension__ extern __inline poly16x4_t
3557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_f64(float64x1_t __a)3558 vreinterpret_p16_f64 (float64x1_t __a)
3559 {
3560 return (poly16x4_t) __a;
3561 }
3562
3563 __extension__ extern __inline poly16x4_t
3564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_s8(int8x8_t __a)3565 vreinterpret_p16_s8 (int8x8_t __a)
3566 {
3567 return (poly16x4_t) __a;
3568 }
3569
3570 __extension__ extern __inline poly16x4_t
3571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_s16(int16x4_t __a)3572 vreinterpret_p16_s16 (int16x4_t __a)
3573 {
3574 return (poly16x4_t) __a;
3575 }
3576
3577 __extension__ extern __inline poly16x4_t
3578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_s32(int32x2_t __a)3579 vreinterpret_p16_s32 (int32x2_t __a)
3580 {
3581 return (poly16x4_t) __a;
3582 }
3583
3584 __extension__ extern __inline poly16x4_t
3585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_s64(int64x1_t __a)3586 vreinterpret_p16_s64 (int64x1_t __a)
3587 {
3588 return (poly16x4_t) __a;
3589 }
3590
3591 __extension__ extern __inline poly16x4_t
3592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_f32(float32x2_t __a)3593 vreinterpret_p16_f32 (float32x2_t __a)
3594 {
3595 return (poly16x4_t) __a;
3596 }
3597
3598 __extension__ extern __inline poly16x4_t
3599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_u8(uint8x8_t __a)3600 vreinterpret_p16_u8 (uint8x8_t __a)
3601 {
3602 return (poly16x4_t) __a;
3603 }
3604
3605 __extension__ extern __inline poly16x4_t
3606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_u16(uint16x4_t __a)3607 vreinterpret_p16_u16 (uint16x4_t __a)
3608 {
3609 return (poly16x4_t) __a;
3610 }
3611
3612 __extension__ extern __inline poly16x4_t
3613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_u32(uint32x2_t __a)3614 vreinterpret_p16_u32 (uint32x2_t __a)
3615 {
3616 return (poly16x4_t) __a;
3617 }
3618
3619 __extension__ extern __inline poly16x4_t
3620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_u64(uint64x1_t __a)3621 vreinterpret_p16_u64 (uint64x1_t __a)
3622 {
3623 return (poly16x4_t) __a;
3624 }
3625
3626 __extension__ extern __inline poly16x4_t
3627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_p8(poly8x8_t __a)3628 vreinterpret_p16_p8 (poly8x8_t __a)
3629 {
3630 return (poly16x4_t) __a;
3631 }
3632
3633 __extension__ extern __inline poly16x4_t
3634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_p64(poly64x1_t __a)3635 vreinterpret_p16_p64 (poly64x1_t __a)
3636 {
3637 return (poly16x4_t) __a;
3638 }
3639
3640 __extension__ extern __inline poly16x8_t
3641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_f64(float64x2_t __a)3642 vreinterpretq_p16_f64 (float64x2_t __a)
3643 {
3644 return (poly16x8_t) __a;
3645 }
3646
3647 __extension__ extern __inline poly16x8_t
3648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_s8(int8x16_t __a)3649 vreinterpretq_p16_s8 (int8x16_t __a)
3650 {
3651 return (poly16x8_t) __a;
3652 }
3653
3654 __extension__ extern __inline poly16x8_t
3655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_s16(int16x8_t __a)3656 vreinterpretq_p16_s16 (int16x8_t __a)
3657 {
3658 return (poly16x8_t) __a;
3659 }
3660
3661 __extension__ extern __inline poly16x8_t
3662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_s32(int32x4_t __a)3663 vreinterpretq_p16_s32 (int32x4_t __a)
3664 {
3665 return (poly16x8_t) __a;
3666 }
3667
3668 __extension__ extern __inline poly16x8_t
3669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_s64(int64x2_t __a)3670 vreinterpretq_p16_s64 (int64x2_t __a)
3671 {
3672 return (poly16x8_t) __a;
3673 }
3674
3675 __extension__ extern __inline poly16x8_t
3676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_f16(float16x8_t __a)3677 vreinterpretq_p16_f16 (float16x8_t __a)
3678 {
3679 return (poly16x8_t) __a;
3680 }
3681
3682 __extension__ extern __inline poly16x8_t
3683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_f32(float32x4_t __a)3684 vreinterpretq_p16_f32 (float32x4_t __a)
3685 {
3686 return (poly16x8_t) __a;
3687 }
3688
3689 __extension__ extern __inline poly16x8_t
3690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_u8(uint8x16_t __a)3691 vreinterpretq_p16_u8 (uint8x16_t __a)
3692 {
3693 return (poly16x8_t) __a;
3694 }
3695
3696 __extension__ extern __inline poly16x8_t
3697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_u16(uint16x8_t __a)3698 vreinterpretq_p16_u16 (uint16x8_t __a)
3699 {
3700 return (poly16x8_t) __a;
3701 }
3702
3703 __extension__ extern __inline poly16x8_t
3704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_u32(uint32x4_t __a)3705 vreinterpretq_p16_u32 (uint32x4_t __a)
3706 {
3707 return (poly16x8_t) __a;
3708 }
3709
3710 __extension__ extern __inline poly16x8_t
3711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_u64(uint64x2_t __a)3712 vreinterpretq_p16_u64 (uint64x2_t __a)
3713 {
3714 return (poly16x8_t) __a;
3715 }
3716
3717 __extension__ extern __inline poly16x8_t
3718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_p8(poly8x16_t __a)3719 vreinterpretq_p16_p8 (poly8x16_t __a)
3720 {
3721 return (poly16x8_t) __a;
3722 }
3723
3724 __extension__ extern __inline poly16x8_t
3725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_p64(poly64x2_t __a)3726 vreinterpretq_p16_p64 (poly64x2_t __a)
3727 {
3728 return (poly16x8_t) __a;
3729 }
3730
3731 __extension__ extern __inline poly16x8_t
3732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_p128(poly128_t __a)3733 vreinterpretq_p16_p128 (poly128_t __a)
3734 {
3735 return (poly16x8_t)__a;
3736 }
3737
3738 __extension__ extern __inline poly64x1_t
3739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_f16(float16x4_t __a)3740 vreinterpret_p64_f16 (float16x4_t __a)
3741 {
3742 return (poly64x1_t) __a;
3743 }
3744
3745 __extension__ extern __inline poly64x1_t
3746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_f64(float64x1_t __a)3747 vreinterpret_p64_f64 (float64x1_t __a)
3748 {
3749 return (poly64x1_t) __a;
3750 }
3751
3752 __extension__ extern __inline poly64x1_t
3753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_s8(int8x8_t __a)3754 vreinterpret_p64_s8 (int8x8_t __a)
3755 {
3756 return (poly64x1_t) __a;
3757 }
3758
3759 __extension__ extern __inline poly64x1_t
3760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_s16(int16x4_t __a)3761 vreinterpret_p64_s16 (int16x4_t __a)
3762 {
3763 return (poly64x1_t) __a;
3764 }
3765
3766 __extension__ extern __inline poly64x1_t
3767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_s32(int32x2_t __a)3768 vreinterpret_p64_s32 (int32x2_t __a)
3769 {
3770 return (poly64x1_t) __a;
3771 }
3772
3773 __extension__ extern __inline poly64x1_t
3774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_s64(int64x1_t __a)3775 vreinterpret_p64_s64 (int64x1_t __a)
3776 {
3777 return (poly64x1_t) __a;
3778 }
3779
3780 __extension__ extern __inline poly64x1_t
3781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_f32(float32x2_t __a)3782 vreinterpret_p64_f32 (float32x2_t __a)
3783 {
3784 return (poly64x1_t) __a;
3785 }
3786
3787 __extension__ extern __inline poly64x1_t
3788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_u8(uint8x8_t __a)3789 vreinterpret_p64_u8 (uint8x8_t __a)
3790 {
3791 return (poly64x1_t) __a;
3792 }
3793
3794 __extension__ extern __inline poly64x1_t
3795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_u16(uint16x4_t __a)3796 vreinterpret_p64_u16 (uint16x4_t __a)
3797 {
3798 return (poly64x1_t) __a;
3799 }
3800
3801 __extension__ extern __inline poly64x1_t
3802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_u32(uint32x2_t __a)3803 vreinterpret_p64_u32 (uint32x2_t __a)
3804 {
3805 return (poly64x1_t) __a;
3806 }
3807
3808 __extension__ extern __inline poly64x1_t
3809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_u64(uint64x1_t __a)3810 vreinterpret_p64_u64 (uint64x1_t __a)
3811 {
3812 return (poly64x1_t) __a;
3813 }
3814
3815 __extension__ extern __inline poly64x1_t
3816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_p8(poly8x8_t __a)3817 vreinterpret_p64_p8 (poly8x8_t __a)
3818 {
3819 return (poly64x1_t) __a;
3820 }
3821
3822 __extension__ extern __inline poly64x1_t
3823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_p16(poly16x4_t __a)3824 vreinterpret_p64_p16 (poly16x4_t __a)
3825 {
3826 return (poly64x1_t)__a;
3827 }
3828
3829 __extension__ extern __inline poly64x2_t
3830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_f64(float64x2_t __a)3831 vreinterpretq_p64_f64 (float64x2_t __a)
3832 {
3833 return (poly64x2_t) __a;
3834 }
3835
3836 __extension__ extern __inline poly64x2_t
3837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_s8(int8x16_t __a)3838 vreinterpretq_p64_s8 (int8x16_t __a)
3839 {
3840 return (poly64x2_t) __a;
3841 }
3842
3843 __extension__ extern __inline poly64x2_t
3844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_s16(int16x8_t __a)3845 vreinterpretq_p64_s16 (int16x8_t __a)
3846 {
3847 return (poly64x2_t) __a;
3848 }
3849
3850 __extension__ extern __inline poly64x2_t
3851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_s32(int32x4_t __a)3852 vreinterpretq_p64_s32 (int32x4_t __a)
3853 {
3854 return (poly64x2_t) __a;
3855 }
3856
3857 __extension__ extern __inline poly64x2_t
3858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_s64(int64x2_t __a)3859 vreinterpretq_p64_s64 (int64x2_t __a)
3860 {
3861 return (poly64x2_t) __a;
3862 }
3863
3864 __extension__ extern __inline poly64x2_t
3865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_f16(float16x8_t __a)3866 vreinterpretq_p64_f16 (float16x8_t __a)
3867 {
3868 return (poly64x2_t) __a;
3869 }
3870
3871 __extension__ extern __inline poly64x2_t
3872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_f32(float32x4_t __a)3873 vreinterpretq_p64_f32 (float32x4_t __a)
3874 {
3875 return (poly64x2_t) __a;
3876 }
3877
3878 __extension__ extern __inline poly64x2_t
3879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_p128(poly128_t __a)3880 vreinterpretq_p64_p128 (poly128_t __a)
3881 {
3882 return (poly64x2_t)__a;
3883 }
3884
3885 __extension__ extern __inline poly64x2_t
3886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_u8(uint8x16_t __a)3887 vreinterpretq_p64_u8 (uint8x16_t __a)
3888 {
3889 return (poly64x2_t) __a;
3890 }
3891
3892 __extension__ extern __inline poly64x2_t
3893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_u16(uint16x8_t __a)3894 vreinterpretq_p64_u16 (uint16x8_t __a)
3895 {
3896 return (poly64x2_t) __a;
3897 }
3898
3899 __extension__ extern __inline poly64x2_t
3900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_p16(poly16x8_t __a)3901 vreinterpretq_p64_p16 (poly16x8_t __a)
3902 {
3903 return (poly64x2_t)__a;
3904 }
3905
3906 __extension__ extern __inline poly64x2_t
3907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_u32(uint32x4_t __a)3908 vreinterpretq_p64_u32 (uint32x4_t __a)
3909 {
3910 return (poly64x2_t) __a;
3911 }
3912
3913 __extension__ extern __inline poly64x2_t
3914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_u64(uint64x2_t __a)3915 vreinterpretq_p64_u64 (uint64x2_t __a)
3916 {
3917 return (poly64x2_t) __a;
3918 }
3919
3920 __extension__ extern __inline poly64x2_t
3921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_p8(poly8x16_t __a)3922 vreinterpretq_p64_p8 (poly8x16_t __a)
3923 {
3924 return (poly64x2_t) __a;
3925 }
3926
3927 __extension__ extern __inline poly128_t
3928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_p8(poly8x16_t __a)3929 vreinterpretq_p128_p8 (poly8x16_t __a)
3930 {
3931 return (poly128_t)__a;
3932 }
3933
3934 __extension__ extern __inline poly128_t
3935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_p16(poly16x8_t __a)3936 vreinterpretq_p128_p16 (poly16x8_t __a)
3937 {
3938 return (poly128_t)__a;
3939 }
3940
3941 __extension__ extern __inline poly128_t
3942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_f16(float16x8_t __a)3943 vreinterpretq_p128_f16 (float16x8_t __a)
3944 {
3945 return (poly128_t) __a;
3946 }
3947
3948 __extension__ extern __inline poly128_t
3949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_f32(float32x4_t __a)3950 vreinterpretq_p128_f32 (float32x4_t __a)
3951 {
3952 return (poly128_t)__a;
3953 }
3954
3955 __extension__ extern __inline poly128_t
3956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_p64(poly64x2_t __a)3957 vreinterpretq_p128_p64 (poly64x2_t __a)
3958 {
3959 return (poly128_t)__a;
3960 }
3961
3962 __extension__ extern __inline poly128_t
3963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_s64(int64x2_t __a)3964 vreinterpretq_p128_s64 (int64x2_t __a)
3965 {
3966 return (poly128_t)__a;
3967 }
3968
3969 __extension__ extern __inline poly128_t
3970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_u64(uint64x2_t __a)3971 vreinterpretq_p128_u64 (uint64x2_t __a)
3972 {
3973 return (poly128_t)__a;
3974 }
3975
3976 __extension__ extern __inline poly128_t
3977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_s8(int8x16_t __a)3978 vreinterpretq_p128_s8 (int8x16_t __a)
3979 {
3980 return (poly128_t)__a;
3981 }
3982
3983 __extension__ extern __inline poly128_t
3984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_s16(int16x8_t __a)3985 vreinterpretq_p128_s16 (int16x8_t __a)
3986 {
3987 return (poly128_t)__a;
3988 }
3989
3990 __extension__ extern __inline poly128_t
3991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_s32(int32x4_t __a)3992 vreinterpretq_p128_s32 (int32x4_t __a)
3993 {
3994 return (poly128_t)__a;
3995 }
3996
3997 __extension__ extern __inline poly128_t
3998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_u8(uint8x16_t __a)3999 vreinterpretq_p128_u8 (uint8x16_t __a)
4000 {
4001 return (poly128_t)__a;
4002 }
4003
4004 __extension__ extern __inline poly128_t
4005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_u16(uint16x8_t __a)4006 vreinterpretq_p128_u16 (uint16x8_t __a)
4007 {
4008 return (poly128_t)__a;
4009 }
4010
4011 __extension__ extern __inline poly128_t
4012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_u32(uint32x4_t __a)4013 vreinterpretq_p128_u32 (uint32x4_t __a)
4014 {
4015 return (poly128_t)__a;
4016 }
4017
4018 __extension__ extern __inline float16x4_t
4019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_f64(float64x1_t __a)4020 vreinterpret_f16_f64 (float64x1_t __a)
4021 {
4022 return (float16x4_t) __a;
4023 }
4024
4025 __extension__ extern __inline float16x4_t
4026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_s8(int8x8_t __a)4027 vreinterpret_f16_s8 (int8x8_t __a)
4028 {
4029 return (float16x4_t) __a;
4030 }
4031
4032 __extension__ extern __inline float16x4_t
4033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_s16(int16x4_t __a)4034 vreinterpret_f16_s16 (int16x4_t __a)
4035 {
4036 return (float16x4_t) __a;
4037 }
4038
4039 __extension__ extern __inline float16x4_t
4040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_s32(int32x2_t __a)4041 vreinterpret_f16_s32 (int32x2_t __a)
4042 {
4043 return (float16x4_t) __a;
4044 }
4045
4046 __extension__ extern __inline float16x4_t
4047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_s64(int64x1_t __a)4048 vreinterpret_f16_s64 (int64x1_t __a)
4049 {
4050 return (float16x4_t) __a;
4051 }
4052
4053 __extension__ extern __inline float16x4_t
4054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_f32(float32x2_t __a)4055 vreinterpret_f16_f32 (float32x2_t __a)
4056 {
4057 return (float16x4_t) __a;
4058 }
4059
4060 __extension__ extern __inline float16x4_t
4061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_u8(uint8x8_t __a)4062 vreinterpret_f16_u8 (uint8x8_t __a)
4063 {
4064 return (float16x4_t) __a;
4065 }
4066
4067 __extension__ extern __inline float16x4_t
4068 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_u16(uint16x4_t __a)4069 vreinterpret_f16_u16 (uint16x4_t __a)
4070 {
4071 return (float16x4_t) __a;
4072 }
4073
4074 __extension__ extern __inline float16x4_t
4075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_u32(uint32x2_t __a)4076 vreinterpret_f16_u32 (uint32x2_t __a)
4077 {
4078 return (float16x4_t) __a;
4079 }
4080
4081 __extension__ extern __inline float16x4_t
4082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_u64(uint64x1_t __a)4083 vreinterpret_f16_u64 (uint64x1_t __a)
4084 {
4085 return (float16x4_t) __a;
4086 }
4087
4088 __extension__ extern __inline float16x4_t
4089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_p8(poly8x8_t __a)4090 vreinterpret_f16_p8 (poly8x8_t __a)
4091 {
4092 return (float16x4_t) __a;
4093 }
4094
4095 __extension__ extern __inline float16x4_t
4096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_p16(poly16x4_t __a)4097 vreinterpret_f16_p16 (poly16x4_t __a)
4098 {
4099 return (float16x4_t) __a;
4100 }
4101
4102 __extension__ extern __inline float16x4_t
4103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_p64(poly64x1_t __a)4104 vreinterpret_f16_p64 (poly64x1_t __a)
4105 {
4106 return (float16x4_t) __a;
4107 }
4108
4109 __extension__ extern __inline float16x8_t
4110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_f64(float64x2_t __a)4111 vreinterpretq_f16_f64 (float64x2_t __a)
4112 {
4113 return (float16x8_t) __a;
4114 }
4115
4116 __extension__ extern __inline float16x8_t
4117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_s8(int8x16_t __a)4118 vreinterpretq_f16_s8 (int8x16_t __a)
4119 {
4120 return (float16x8_t) __a;
4121 }
4122
4123 __extension__ extern __inline float16x8_t
4124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_s16(int16x8_t __a)4125 vreinterpretq_f16_s16 (int16x8_t __a)
4126 {
4127 return (float16x8_t) __a;
4128 }
4129
4130 __extension__ extern __inline float16x8_t
4131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_s32(int32x4_t __a)4132 vreinterpretq_f16_s32 (int32x4_t __a)
4133 {
4134 return (float16x8_t) __a;
4135 }
4136
4137 __extension__ extern __inline float16x8_t
4138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_s64(int64x2_t __a)4139 vreinterpretq_f16_s64 (int64x2_t __a)
4140 {
4141 return (float16x8_t) __a;
4142 }
4143
4144 __extension__ extern __inline float16x8_t
4145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_f32(float32x4_t __a)4146 vreinterpretq_f16_f32 (float32x4_t __a)
4147 {
4148 return (float16x8_t) __a;
4149 }
4150
4151 __extension__ extern __inline float16x8_t
4152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_u8(uint8x16_t __a)4153 vreinterpretq_f16_u8 (uint8x16_t __a)
4154 {
4155 return (float16x8_t) __a;
4156 }
4157
4158 __extension__ extern __inline float16x8_t
4159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_u16(uint16x8_t __a)4160 vreinterpretq_f16_u16 (uint16x8_t __a)
4161 {
4162 return (float16x8_t) __a;
4163 }
4164
4165 __extension__ extern __inline float16x8_t
4166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_u32(uint32x4_t __a)4167 vreinterpretq_f16_u32 (uint32x4_t __a)
4168 {
4169 return (float16x8_t) __a;
4170 }
4171
4172 __extension__ extern __inline float16x8_t
4173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_u64(uint64x2_t __a)4174 vreinterpretq_f16_u64 (uint64x2_t __a)
4175 {
4176 return (float16x8_t) __a;
4177 }
4178
4179 __extension__ extern __inline float16x8_t
4180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_p8(poly8x16_t __a)4181 vreinterpretq_f16_p8 (poly8x16_t __a)
4182 {
4183 return (float16x8_t) __a;
4184 }
4185
4186 __extension__ extern __inline float16x8_t
4187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_p128(poly128_t __a)4188 vreinterpretq_f16_p128 (poly128_t __a)
4189 {
4190 return (float16x8_t) __a;
4191 }
4192
4193 __extension__ extern __inline float16x8_t
4194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_p16(poly16x8_t __a)4195 vreinterpretq_f16_p16 (poly16x8_t __a)
4196 {
4197 return (float16x8_t) __a;
4198 }
4199
4200 __extension__ extern __inline float16x8_t
4201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_p64(poly64x2_t __a)4202 vreinterpretq_f16_p64 (poly64x2_t __a)
4203 {
4204 return (float16x8_t) __a;
4205 }
4206
4207 __extension__ extern __inline float32x2_t
4208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_f16(float16x4_t __a)4209 vreinterpret_f32_f16 (float16x4_t __a)
4210 {
4211 return (float32x2_t) __a;
4212 }
4213
4214 __extension__ extern __inline float32x2_t
4215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_f64(float64x1_t __a)4216 vreinterpret_f32_f64 (float64x1_t __a)
4217 {
4218 return (float32x2_t) __a;
4219 }
4220
4221 __extension__ extern __inline float32x2_t
4222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_s8(int8x8_t __a)4223 vreinterpret_f32_s8 (int8x8_t __a)
4224 {
4225 return (float32x2_t) __a;
4226 }
4227
4228 __extension__ extern __inline float32x2_t
4229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_s16(int16x4_t __a)4230 vreinterpret_f32_s16 (int16x4_t __a)
4231 {
4232 return (float32x2_t) __a;
4233 }
4234
4235 __extension__ extern __inline float32x2_t
4236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_s32(int32x2_t __a)4237 vreinterpret_f32_s32 (int32x2_t __a)
4238 {
4239 return (float32x2_t) __a;
4240 }
4241
4242 __extension__ extern __inline float32x2_t
4243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_s64(int64x1_t __a)4244 vreinterpret_f32_s64 (int64x1_t __a)
4245 {
4246 return (float32x2_t) __a;
4247 }
4248
4249 __extension__ extern __inline float32x2_t
4250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_u8(uint8x8_t __a)4251 vreinterpret_f32_u8 (uint8x8_t __a)
4252 {
4253 return (float32x2_t) __a;
4254 }
4255
4256 __extension__ extern __inline float32x2_t
4257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_u16(uint16x4_t __a)4258 vreinterpret_f32_u16 (uint16x4_t __a)
4259 {
4260 return (float32x2_t) __a;
4261 }
4262
4263 __extension__ extern __inline float32x2_t
4264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_u32(uint32x2_t __a)4265 vreinterpret_f32_u32 (uint32x2_t __a)
4266 {
4267 return (float32x2_t) __a;
4268 }
4269
4270 __extension__ extern __inline float32x2_t
4271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_u64(uint64x1_t __a)4272 vreinterpret_f32_u64 (uint64x1_t __a)
4273 {
4274 return (float32x2_t) __a;
4275 }
4276
4277 __extension__ extern __inline float32x2_t
4278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_p8(poly8x8_t __a)4279 vreinterpret_f32_p8 (poly8x8_t __a)
4280 {
4281 return (float32x2_t) __a;
4282 }
4283
4284 __extension__ extern __inline float32x2_t
4285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_p16(poly16x4_t __a)4286 vreinterpret_f32_p16 (poly16x4_t __a)
4287 {
4288 return (float32x2_t) __a;
4289 }
4290
4291 __extension__ extern __inline float32x2_t
4292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_p64(poly64x1_t __a)4293 vreinterpret_f32_p64 (poly64x1_t __a)
4294 {
4295 return (float32x2_t) __a;
4296 }
4297
4298 __extension__ extern __inline float32x4_t
4299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_f16(float16x8_t __a)4300 vreinterpretq_f32_f16 (float16x8_t __a)
4301 {
4302 return (float32x4_t) __a;
4303 }
4304
4305 __extension__ extern __inline float32x4_t
4306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_f64(float64x2_t __a)4307 vreinterpretq_f32_f64 (float64x2_t __a)
4308 {
4309 return (float32x4_t) __a;
4310 }
4311
4312 __extension__ extern __inline float32x4_t
4313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_s8(int8x16_t __a)4314 vreinterpretq_f32_s8 (int8x16_t __a)
4315 {
4316 return (float32x4_t) __a;
4317 }
4318
4319 __extension__ extern __inline float32x4_t
4320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_s16(int16x8_t __a)4321 vreinterpretq_f32_s16 (int16x8_t __a)
4322 {
4323 return (float32x4_t) __a;
4324 }
4325
4326 __extension__ extern __inline float32x4_t
4327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_s32(int32x4_t __a)4328 vreinterpretq_f32_s32 (int32x4_t __a)
4329 {
4330 return (float32x4_t) __a;
4331 }
4332
4333 __extension__ extern __inline float32x4_t
4334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_s64(int64x2_t __a)4335 vreinterpretq_f32_s64 (int64x2_t __a)
4336 {
4337 return (float32x4_t) __a;
4338 }
4339
4340 __extension__ extern __inline float32x4_t
4341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_u8(uint8x16_t __a)4342 vreinterpretq_f32_u8 (uint8x16_t __a)
4343 {
4344 return (float32x4_t) __a;
4345 }
4346
4347 __extension__ extern __inline float32x4_t
4348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_u16(uint16x8_t __a)4349 vreinterpretq_f32_u16 (uint16x8_t __a)
4350 {
4351 return (float32x4_t) __a;
4352 }
4353
4354 __extension__ extern __inline float32x4_t
4355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_u32(uint32x4_t __a)4356 vreinterpretq_f32_u32 (uint32x4_t __a)
4357 {
4358 return (float32x4_t) __a;
4359 }
4360
4361 __extension__ extern __inline float32x4_t
4362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_u64(uint64x2_t __a)4363 vreinterpretq_f32_u64 (uint64x2_t __a)
4364 {
4365 return (float32x4_t) __a;
4366 }
4367
4368 __extension__ extern __inline float32x4_t
4369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_p8(poly8x16_t __a)4370 vreinterpretq_f32_p8 (poly8x16_t __a)
4371 {
4372 return (float32x4_t) __a;
4373 }
4374
4375 __extension__ extern __inline float32x4_t
4376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_p16(poly16x8_t __a)4377 vreinterpretq_f32_p16 (poly16x8_t __a)
4378 {
4379 return (float32x4_t) __a;
4380 }
4381
4382 __extension__ extern __inline float32x4_t
4383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_p64(poly64x2_t __a)4384 vreinterpretq_f32_p64 (poly64x2_t __a)
4385 {
4386 return (float32x4_t) __a;
4387 }
4388
4389 __extension__ extern __inline float32x4_t
4390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_p128(poly128_t __a)4391 vreinterpretq_f32_p128 (poly128_t __a)
4392 {
4393 return (float32x4_t)__a;
4394 }
4395
4396
4397 __extension__ extern __inline float64x1_t
4398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_f16(float16x4_t __a)4399 vreinterpret_f64_f16 (float16x4_t __a)
4400 {
4401 return (float64x1_t) __a;
4402 }
4403
4404 __extension__ extern __inline float64x1_t
4405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_f32(float32x2_t __a)4406 vreinterpret_f64_f32 (float32x2_t __a)
4407 {
4408 return (float64x1_t) __a;
4409 }
4410
4411 __extension__ extern __inline float64x1_t
4412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_p8(poly8x8_t __a)4413 vreinterpret_f64_p8 (poly8x8_t __a)
4414 {
4415 return (float64x1_t) __a;
4416 }
4417
4418 __extension__ extern __inline float64x1_t
4419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_p16(poly16x4_t __a)4420 vreinterpret_f64_p16 (poly16x4_t __a)
4421 {
4422 return (float64x1_t) __a;
4423 }
4424
4425 __extension__ extern __inline float64x1_t
4426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_p64(poly64x1_t __a)4427 vreinterpret_f64_p64 (poly64x1_t __a)
4428 {
4429 return (float64x1_t) __a;
4430 }
4431
4432 __extension__ extern __inline float64x1_t
4433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_s8(int8x8_t __a)4434 vreinterpret_f64_s8 (int8x8_t __a)
4435 {
4436 return (float64x1_t) __a;
4437 }
4438
4439 __extension__ extern __inline float64x1_t
4440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_s16(int16x4_t __a)4441 vreinterpret_f64_s16 (int16x4_t __a)
4442 {
4443 return (float64x1_t) __a;
4444 }
4445
4446 __extension__ extern __inline float64x1_t
4447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_s32(int32x2_t __a)4448 vreinterpret_f64_s32 (int32x2_t __a)
4449 {
4450 return (float64x1_t) __a;
4451 }
4452
4453 __extension__ extern __inline float64x1_t
4454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_s64(int64x1_t __a)4455 vreinterpret_f64_s64 (int64x1_t __a)
4456 {
4457 return (float64x1_t) __a;
4458 }
4459
4460 __extension__ extern __inline float64x1_t
4461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_u8(uint8x8_t __a)4462 vreinterpret_f64_u8 (uint8x8_t __a)
4463 {
4464 return (float64x1_t) __a;
4465 }
4466
4467 __extension__ extern __inline float64x1_t
4468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_u16(uint16x4_t __a)4469 vreinterpret_f64_u16 (uint16x4_t __a)
4470 {
4471 return (float64x1_t) __a;
4472 }
4473
4474 __extension__ extern __inline float64x1_t
4475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_u32(uint32x2_t __a)4476 vreinterpret_f64_u32 (uint32x2_t __a)
4477 {
4478 return (float64x1_t) __a;
4479 }
4480
4481 __extension__ extern __inline float64x1_t
4482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_u64(uint64x1_t __a)4483 vreinterpret_f64_u64 (uint64x1_t __a)
4484 {
4485 return (float64x1_t) __a;
4486 }
4487
4488 __extension__ extern __inline float64x2_t
4489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_f16(float16x8_t __a)4490 vreinterpretq_f64_f16 (float16x8_t __a)
4491 {
4492 return (float64x2_t) __a;
4493 }
4494
4495 __extension__ extern __inline float64x2_t
4496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_f32(float32x4_t __a)4497 vreinterpretq_f64_f32 (float32x4_t __a)
4498 {
4499 return (float64x2_t) __a;
4500 }
4501
4502 __extension__ extern __inline float64x2_t
4503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_p8(poly8x16_t __a)4504 vreinterpretq_f64_p8 (poly8x16_t __a)
4505 {
4506 return (float64x2_t) __a;
4507 }
4508
4509 __extension__ extern __inline float64x2_t
4510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_p16(poly16x8_t __a)4511 vreinterpretq_f64_p16 (poly16x8_t __a)
4512 {
4513 return (float64x2_t) __a;
4514 }
4515
4516 __extension__ extern __inline float64x2_t
4517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_p64(poly64x2_t __a)4518 vreinterpretq_f64_p64 (poly64x2_t __a)
4519 {
4520 return (float64x2_t) __a;
4521 }
4522
4523 __extension__ extern __inline float64x2_t
4524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_s8(int8x16_t __a)4525 vreinterpretq_f64_s8 (int8x16_t __a)
4526 {
4527 return (float64x2_t) __a;
4528 }
4529
4530 __extension__ extern __inline float64x2_t
4531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_s16(int16x8_t __a)4532 vreinterpretq_f64_s16 (int16x8_t __a)
4533 {
4534 return (float64x2_t) __a;
4535 }
4536
4537 __extension__ extern __inline float64x2_t
4538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_s32(int32x4_t __a)4539 vreinterpretq_f64_s32 (int32x4_t __a)
4540 {
4541 return (float64x2_t) __a;
4542 }
4543
4544 __extension__ extern __inline float64x2_t
4545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_s64(int64x2_t __a)4546 vreinterpretq_f64_s64 (int64x2_t __a)
4547 {
4548 return (float64x2_t) __a;
4549 }
4550
4551 __extension__ extern __inline float64x2_t
4552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_u8(uint8x16_t __a)4553 vreinterpretq_f64_u8 (uint8x16_t __a)
4554 {
4555 return (float64x2_t) __a;
4556 }
4557
4558 __extension__ extern __inline float64x2_t
4559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_u16(uint16x8_t __a)4560 vreinterpretq_f64_u16 (uint16x8_t __a)
4561 {
4562 return (float64x2_t) __a;
4563 }
4564
4565 __extension__ extern __inline float64x2_t
4566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_u32(uint32x4_t __a)4567 vreinterpretq_f64_u32 (uint32x4_t __a)
4568 {
4569 return (float64x2_t) __a;
4570 }
4571
4572 __extension__ extern __inline float64x2_t
4573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_u64(uint64x2_t __a)4574 vreinterpretq_f64_u64 (uint64x2_t __a)
4575 {
4576 return (float64x2_t) __a;
4577 }
4578
4579 __extension__ extern __inline int64x1_t
4580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_f16(float16x4_t __a)4581 vreinterpret_s64_f16 (float16x4_t __a)
4582 {
4583 return (int64x1_t) __a;
4584 }
4585
4586 __extension__ extern __inline int64x1_t
4587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_f64(float64x1_t __a)4588 vreinterpret_s64_f64 (float64x1_t __a)
4589 {
4590 return (int64x1_t) __a;
4591 }
4592
4593 __extension__ extern __inline int64x1_t
4594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_s8(int8x8_t __a)4595 vreinterpret_s64_s8 (int8x8_t __a)
4596 {
4597 return (int64x1_t) __a;
4598 }
4599
4600 __extension__ extern __inline int64x1_t
4601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_s16(int16x4_t __a)4602 vreinterpret_s64_s16 (int16x4_t __a)
4603 {
4604 return (int64x1_t) __a;
4605 }
4606
4607 __extension__ extern __inline int64x1_t
4608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_s32(int32x2_t __a)4609 vreinterpret_s64_s32 (int32x2_t __a)
4610 {
4611 return (int64x1_t) __a;
4612 }
4613
4614 __extension__ extern __inline int64x1_t
4615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_f32(float32x2_t __a)4616 vreinterpret_s64_f32 (float32x2_t __a)
4617 {
4618 return (int64x1_t) __a;
4619 }
4620
4621 __extension__ extern __inline int64x1_t
4622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_u8(uint8x8_t __a)4623 vreinterpret_s64_u8 (uint8x8_t __a)
4624 {
4625 return (int64x1_t) __a;
4626 }
4627
4628 __extension__ extern __inline int64x1_t
4629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_u16(uint16x4_t __a)4630 vreinterpret_s64_u16 (uint16x4_t __a)
4631 {
4632 return (int64x1_t) __a;
4633 }
4634
4635 __extension__ extern __inline int64x1_t
4636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_u32(uint32x2_t __a)4637 vreinterpret_s64_u32 (uint32x2_t __a)
4638 {
4639 return (int64x1_t) __a;
4640 }
4641
4642 __extension__ extern __inline int64x1_t
4643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_u64(uint64x1_t __a)4644 vreinterpret_s64_u64 (uint64x1_t __a)
4645 {
4646 return (int64x1_t) __a;
4647 }
4648
4649 __extension__ extern __inline int64x1_t
4650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_p8(poly8x8_t __a)4651 vreinterpret_s64_p8 (poly8x8_t __a)
4652 {
4653 return (int64x1_t) __a;
4654 }
4655
4656 __extension__ extern __inline int64x1_t
4657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_p16(poly16x4_t __a)4658 vreinterpret_s64_p16 (poly16x4_t __a)
4659 {
4660 return (int64x1_t) __a;
4661 }
4662
4663 __extension__ extern __inline int64x1_t
4664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_p64(poly64x1_t __a)4665 vreinterpret_s64_p64 (poly64x1_t __a)
4666 {
4667 return (int64x1_t) __a;
4668 }
4669
4670 __extension__ extern __inline int64x2_t
4671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_f64(float64x2_t __a)4672 vreinterpretq_s64_f64 (float64x2_t __a)
4673 {
4674 return (int64x2_t) __a;
4675 }
4676
4677 __extension__ extern __inline int64x2_t
4678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_s8(int8x16_t __a)4679 vreinterpretq_s64_s8 (int8x16_t __a)
4680 {
4681 return (int64x2_t) __a;
4682 }
4683
4684 __extension__ extern __inline int64x2_t
4685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_s16(int16x8_t __a)4686 vreinterpretq_s64_s16 (int16x8_t __a)
4687 {
4688 return (int64x2_t) __a;
4689 }
4690
4691 __extension__ extern __inline int64x2_t
4692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_s32(int32x4_t __a)4693 vreinterpretq_s64_s32 (int32x4_t __a)
4694 {
4695 return (int64x2_t) __a;
4696 }
4697
4698 __extension__ extern __inline int64x2_t
4699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_f16(float16x8_t __a)4700 vreinterpretq_s64_f16 (float16x8_t __a)
4701 {
4702 return (int64x2_t) __a;
4703 }
4704
4705 __extension__ extern __inline int64x2_t
4706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_f32(float32x4_t __a)4707 vreinterpretq_s64_f32 (float32x4_t __a)
4708 {
4709 return (int64x2_t) __a;
4710 }
4711
4712 __extension__ extern __inline int64x2_t
4713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_u8(uint8x16_t __a)4714 vreinterpretq_s64_u8 (uint8x16_t __a)
4715 {
4716 return (int64x2_t) __a;
4717 }
4718
4719 __extension__ extern __inline int64x2_t
4720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_u16(uint16x8_t __a)4721 vreinterpretq_s64_u16 (uint16x8_t __a)
4722 {
4723 return (int64x2_t) __a;
4724 }
4725
4726 __extension__ extern __inline int64x2_t
4727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_u32(uint32x4_t __a)4728 vreinterpretq_s64_u32 (uint32x4_t __a)
4729 {
4730 return (int64x2_t) __a;
4731 }
4732
4733 __extension__ extern __inline int64x2_t
4734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_u64(uint64x2_t __a)4735 vreinterpretq_s64_u64 (uint64x2_t __a)
4736 {
4737 return (int64x2_t) __a;
4738 }
4739
4740 __extension__ extern __inline int64x2_t
4741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_p8(poly8x16_t __a)4742 vreinterpretq_s64_p8 (poly8x16_t __a)
4743 {
4744 return (int64x2_t) __a;
4745 }
4746
4747 __extension__ extern __inline int64x2_t
4748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_p16(poly16x8_t __a)4749 vreinterpretq_s64_p16 (poly16x8_t __a)
4750 {
4751 return (int64x2_t) __a;
4752 }
4753
4754 __extension__ extern __inline int64x2_t
4755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_p64(poly64x2_t __a)4756 vreinterpretq_s64_p64 (poly64x2_t __a)
4757 {
4758 return (int64x2_t) __a;
4759 }
4760
4761 __extension__ extern __inline int64x2_t
4762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_p128(poly128_t __a)4763 vreinterpretq_s64_p128 (poly128_t __a)
4764 {
4765 return (int64x2_t)__a;
4766 }
4767
4768 __extension__ extern __inline uint64x1_t
4769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_f16(float16x4_t __a)4770 vreinterpret_u64_f16 (float16x4_t __a)
4771 {
4772 return (uint64x1_t) __a;
4773 }
4774
4775 __extension__ extern __inline uint64x1_t
4776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_f64(float64x1_t __a)4777 vreinterpret_u64_f64 (float64x1_t __a)
4778 {
4779 return (uint64x1_t) __a;
4780 }
4781
4782 __extension__ extern __inline uint64x1_t
4783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_s8(int8x8_t __a)4784 vreinterpret_u64_s8 (int8x8_t __a)
4785 {
4786 return (uint64x1_t) __a;
4787 }
4788
4789 __extension__ extern __inline uint64x1_t
4790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_s16(int16x4_t __a)4791 vreinterpret_u64_s16 (int16x4_t __a)
4792 {
4793 return (uint64x1_t) __a;
4794 }
4795
4796 __extension__ extern __inline uint64x1_t
4797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_s32(int32x2_t __a)4798 vreinterpret_u64_s32 (int32x2_t __a)
4799 {
4800 return (uint64x1_t) __a;
4801 }
4802
4803 __extension__ extern __inline uint64x1_t
4804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_s64(int64x1_t __a)4805 vreinterpret_u64_s64 (int64x1_t __a)
4806 {
4807 return (uint64x1_t) __a;
4808 }
4809
4810 __extension__ extern __inline uint64x1_t
4811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_f32(float32x2_t __a)4812 vreinterpret_u64_f32 (float32x2_t __a)
4813 {
4814 return (uint64x1_t) __a;
4815 }
4816
4817 __extension__ extern __inline uint64x1_t
4818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_u8(uint8x8_t __a)4819 vreinterpret_u64_u8 (uint8x8_t __a)
4820 {
4821 return (uint64x1_t) __a;
4822 }
4823
4824 __extension__ extern __inline uint64x1_t
4825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_u16(uint16x4_t __a)4826 vreinterpret_u64_u16 (uint16x4_t __a)
4827 {
4828 return (uint64x1_t) __a;
4829 }
4830
4831 __extension__ extern __inline uint64x1_t
4832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_u32(uint32x2_t __a)4833 vreinterpret_u64_u32 (uint32x2_t __a)
4834 {
4835 return (uint64x1_t) __a;
4836 }
4837
4838 __extension__ extern __inline uint64x1_t
4839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_p8(poly8x8_t __a)4840 vreinterpret_u64_p8 (poly8x8_t __a)
4841 {
4842 return (uint64x1_t) __a;
4843 }
4844
4845 __extension__ extern __inline uint64x1_t
4846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_p16(poly16x4_t __a)4847 vreinterpret_u64_p16 (poly16x4_t __a)
4848 {
4849 return (uint64x1_t) __a;
4850 }
4851
4852 __extension__ extern __inline uint64x1_t
4853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_p64(poly64x1_t __a)4854 vreinterpret_u64_p64 (poly64x1_t __a)
4855 {
4856 return (uint64x1_t) __a;
4857 }
4858
4859 __extension__ extern __inline uint64x2_t
4860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_f64(float64x2_t __a)4861 vreinterpretq_u64_f64 (float64x2_t __a)
4862 {
4863 return (uint64x2_t) __a;
4864 }
4865
4866 __extension__ extern __inline uint64x2_t
4867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_s8(int8x16_t __a)4868 vreinterpretq_u64_s8 (int8x16_t __a)
4869 {
4870 return (uint64x2_t) __a;
4871 }
4872
4873 __extension__ extern __inline uint64x2_t
4874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_s16(int16x8_t __a)4875 vreinterpretq_u64_s16 (int16x8_t __a)
4876 {
4877 return (uint64x2_t) __a;
4878 }
4879
4880 __extension__ extern __inline uint64x2_t
4881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_s32(int32x4_t __a)4882 vreinterpretq_u64_s32 (int32x4_t __a)
4883 {
4884 return (uint64x2_t) __a;
4885 }
4886
4887 __extension__ extern __inline uint64x2_t
4888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_s64(int64x2_t __a)4889 vreinterpretq_u64_s64 (int64x2_t __a)
4890 {
4891 return (uint64x2_t) __a;
4892 }
4893
4894 __extension__ extern __inline uint64x2_t
4895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_f16(float16x8_t __a)4896 vreinterpretq_u64_f16 (float16x8_t __a)
4897 {
4898 return (uint64x2_t) __a;
4899 }
4900
4901 __extension__ extern __inline uint64x2_t
4902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_f32(float32x4_t __a)4903 vreinterpretq_u64_f32 (float32x4_t __a)
4904 {
4905 return (uint64x2_t) __a;
4906 }
4907
4908 __extension__ extern __inline uint64x2_t
4909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_u8(uint8x16_t __a)4910 vreinterpretq_u64_u8 (uint8x16_t __a)
4911 {
4912 return (uint64x2_t) __a;
4913 }
4914
4915 __extension__ extern __inline uint64x2_t
4916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_u16(uint16x8_t __a)4917 vreinterpretq_u64_u16 (uint16x8_t __a)
4918 {
4919 return (uint64x2_t) __a;
4920 }
4921
4922 __extension__ extern __inline uint64x2_t
4923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_u32(uint32x4_t __a)4924 vreinterpretq_u64_u32 (uint32x4_t __a)
4925 {
4926 return (uint64x2_t) __a;
4927 }
4928
4929 __extension__ extern __inline uint64x2_t
4930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_p8(poly8x16_t __a)4931 vreinterpretq_u64_p8 (poly8x16_t __a)
4932 {
4933 return (uint64x2_t) __a;
4934 }
4935
4936 __extension__ extern __inline uint64x2_t
4937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_p16(poly16x8_t __a)4938 vreinterpretq_u64_p16 (poly16x8_t __a)
4939 {
4940 return (uint64x2_t) __a;
4941 }
4942
4943 __extension__ extern __inline uint64x2_t
4944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_p64(poly64x2_t __a)4945 vreinterpretq_u64_p64 (poly64x2_t __a)
4946 {
4947 return (uint64x2_t) __a;
4948 }
4949
4950 __extension__ extern __inline uint64x2_t
4951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_p128(poly128_t __a)4952 vreinterpretq_u64_p128 (poly128_t __a)
4953 {
4954 return (uint64x2_t)__a;
4955 }
4956
4957 __extension__ extern __inline int8x8_t
4958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_f16(float16x4_t __a)4959 vreinterpret_s8_f16 (float16x4_t __a)
4960 {
4961 return (int8x8_t) __a;
4962 }
4963
4964 __extension__ extern __inline int8x8_t
4965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_f64(float64x1_t __a)4966 vreinterpret_s8_f64 (float64x1_t __a)
4967 {
4968 return (int8x8_t) __a;
4969 }
4970
4971 __extension__ extern __inline int8x8_t
4972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_s16(int16x4_t __a)4973 vreinterpret_s8_s16 (int16x4_t __a)
4974 {
4975 return (int8x8_t) __a;
4976 }
4977
4978 __extension__ extern __inline int8x8_t
4979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_s32(int32x2_t __a)4980 vreinterpret_s8_s32 (int32x2_t __a)
4981 {
4982 return (int8x8_t) __a;
4983 }
4984
4985 __extension__ extern __inline int8x8_t
4986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_s64(int64x1_t __a)4987 vreinterpret_s8_s64 (int64x1_t __a)
4988 {
4989 return (int8x8_t) __a;
4990 }
4991
4992 __extension__ extern __inline int8x8_t
4993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_f32(float32x2_t __a)4994 vreinterpret_s8_f32 (float32x2_t __a)
4995 {
4996 return (int8x8_t) __a;
4997 }
4998
4999 __extension__ extern __inline int8x8_t
5000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_u8(uint8x8_t __a)5001 vreinterpret_s8_u8 (uint8x8_t __a)
5002 {
5003 return (int8x8_t) __a;
5004 }
5005
5006 __extension__ extern __inline int8x8_t
5007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_u16(uint16x4_t __a)5008 vreinterpret_s8_u16 (uint16x4_t __a)
5009 {
5010 return (int8x8_t) __a;
5011 }
5012
5013 __extension__ extern __inline int8x8_t
5014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_u32(uint32x2_t __a)5015 vreinterpret_s8_u32 (uint32x2_t __a)
5016 {
5017 return (int8x8_t) __a;
5018 }
5019
5020 __extension__ extern __inline int8x8_t
5021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_u64(uint64x1_t __a)5022 vreinterpret_s8_u64 (uint64x1_t __a)
5023 {
5024 return (int8x8_t) __a;
5025 }
5026
5027 __extension__ extern __inline int8x8_t
5028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_p8(poly8x8_t __a)5029 vreinterpret_s8_p8 (poly8x8_t __a)
5030 {
5031 return (int8x8_t) __a;
5032 }
5033
5034 __extension__ extern __inline int8x8_t
5035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_p16(poly16x4_t __a)5036 vreinterpret_s8_p16 (poly16x4_t __a)
5037 {
5038 return (int8x8_t) __a;
5039 }
5040
5041 __extension__ extern __inline int8x8_t
5042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_p64(poly64x1_t __a)5043 vreinterpret_s8_p64 (poly64x1_t __a)
5044 {
5045 return (int8x8_t) __a;
5046 }
5047
5048 __extension__ extern __inline int8x16_t
5049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_f64(float64x2_t __a)5050 vreinterpretq_s8_f64 (float64x2_t __a)
5051 {
5052 return (int8x16_t) __a;
5053 }
5054
5055 __extension__ extern __inline int8x16_t
5056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_s16(int16x8_t __a)5057 vreinterpretq_s8_s16 (int16x8_t __a)
5058 {
5059 return (int8x16_t) __a;
5060 }
5061
5062 __extension__ extern __inline int8x16_t
5063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_s32(int32x4_t __a)5064 vreinterpretq_s8_s32 (int32x4_t __a)
5065 {
5066 return (int8x16_t) __a;
5067 }
5068
5069 __extension__ extern __inline int8x16_t
5070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_s64(int64x2_t __a)5071 vreinterpretq_s8_s64 (int64x2_t __a)
5072 {
5073 return (int8x16_t) __a;
5074 }
5075
5076 __extension__ extern __inline int8x16_t
5077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_f16(float16x8_t __a)5078 vreinterpretq_s8_f16 (float16x8_t __a)
5079 {
5080 return (int8x16_t) __a;
5081 }
5082
5083 __extension__ extern __inline int8x16_t
5084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_f32(float32x4_t __a)5085 vreinterpretq_s8_f32 (float32x4_t __a)
5086 {
5087 return (int8x16_t) __a;
5088 }
5089
5090 __extension__ extern __inline int8x16_t
5091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_u8(uint8x16_t __a)5092 vreinterpretq_s8_u8 (uint8x16_t __a)
5093 {
5094 return (int8x16_t) __a;
5095 }
5096
5097 __extension__ extern __inline int8x16_t
5098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_u16(uint16x8_t __a)5099 vreinterpretq_s8_u16 (uint16x8_t __a)
5100 {
5101 return (int8x16_t) __a;
5102 }
5103
5104 __extension__ extern __inline int8x16_t
5105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_u32(uint32x4_t __a)5106 vreinterpretq_s8_u32 (uint32x4_t __a)
5107 {
5108 return (int8x16_t) __a;
5109 }
5110
5111 __extension__ extern __inline int8x16_t
5112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_u64(uint64x2_t __a)5113 vreinterpretq_s8_u64 (uint64x2_t __a)
5114 {
5115 return (int8x16_t) __a;
5116 }
5117
5118 __extension__ extern __inline int8x16_t
5119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_p8(poly8x16_t __a)5120 vreinterpretq_s8_p8 (poly8x16_t __a)
5121 {
5122 return (int8x16_t) __a;
5123 }
5124
5125 __extension__ extern __inline int8x16_t
5126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_p16(poly16x8_t __a)5127 vreinterpretq_s8_p16 (poly16x8_t __a)
5128 {
5129 return (int8x16_t) __a;
5130 }
5131
5132 __extension__ extern __inline int8x16_t
5133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_p64(poly64x2_t __a)5134 vreinterpretq_s8_p64 (poly64x2_t __a)
5135 {
5136 return (int8x16_t) __a;
5137 }
5138
5139 __extension__ extern __inline int8x16_t
5140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_p128(poly128_t __a)5141 vreinterpretq_s8_p128 (poly128_t __a)
5142 {
5143 return (int8x16_t)__a;
5144 }
5145
5146 __extension__ extern __inline int16x4_t
5147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_f16(float16x4_t __a)5148 vreinterpret_s16_f16 (float16x4_t __a)
5149 {
5150 return (int16x4_t) __a;
5151 }
5152
5153 __extension__ extern __inline int16x4_t
5154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_f64(float64x1_t __a)5155 vreinterpret_s16_f64 (float64x1_t __a)
5156 {
5157 return (int16x4_t) __a;
5158 }
5159
5160 __extension__ extern __inline int16x4_t
5161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_s8(int8x8_t __a)5162 vreinterpret_s16_s8 (int8x8_t __a)
5163 {
5164 return (int16x4_t) __a;
5165 }
5166
5167 __extension__ extern __inline int16x4_t
5168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_s32(int32x2_t __a)5169 vreinterpret_s16_s32 (int32x2_t __a)
5170 {
5171 return (int16x4_t) __a;
5172 }
5173
5174 __extension__ extern __inline int16x4_t
5175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_s64(int64x1_t __a)5176 vreinterpret_s16_s64 (int64x1_t __a)
5177 {
5178 return (int16x4_t) __a;
5179 }
5180
5181 __extension__ extern __inline int16x4_t
5182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_f32(float32x2_t __a)5183 vreinterpret_s16_f32 (float32x2_t __a)
5184 {
5185 return (int16x4_t) __a;
5186 }
5187
5188 __extension__ extern __inline int16x4_t
5189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_u8(uint8x8_t __a)5190 vreinterpret_s16_u8 (uint8x8_t __a)
5191 {
5192 return (int16x4_t) __a;
5193 }
5194
5195 __extension__ extern __inline int16x4_t
5196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_u16(uint16x4_t __a)5197 vreinterpret_s16_u16 (uint16x4_t __a)
5198 {
5199 return (int16x4_t) __a;
5200 }
5201
5202 __extension__ extern __inline int16x4_t
5203 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_u32(uint32x2_t __a)5204 vreinterpret_s16_u32 (uint32x2_t __a)
5205 {
5206 return (int16x4_t) __a;
5207 }
5208
5209 __extension__ extern __inline int16x4_t
5210 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_u64(uint64x1_t __a)5211 vreinterpret_s16_u64 (uint64x1_t __a)
5212 {
5213 return (int16x4_t) __a;
5214 }
5215
5216 __extension__ extern __inline int16x4_t
5217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_p8(poly8x8_t __a)5218 vreinterpret_s16_p8 (poly8x8_t __a)
5219 {
5220 return (int16x4_t) __a;
5221 }
5222
5223 __extension__ extern __inline int16x4_t
5224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_p16(poly16x4_t __a)5225 vreinterpret_s16_p16 (poly16x4_t __a)
5226 {
5227 return (int16x4_t) __a;
5228 }
5229
5230 __extension__ extern __inline int16x4_t
5231 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_p64(poly64x1_t __a)5232 vreinterpret_s16_p64 (poly64x1_t __a)
5233 {
5234 return (int16x4_t) __a;
5235 }
5236
5237 __extension__ extern __inline int16x8_t
5238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_f64(float64x2_t __a)5239 vreinterpretq_s16_f64 (float64x2_t __a)
5240 {
5241 return (int16x8_t) __a;
5242 }
5243
5244 __extension__ extern __inline int16x8_t
5245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_s8(int8x16_t __a)5246 vreinterpretq_s16_s8 (int8x16_t __a)
5247 {
5248 return (int16x8_t) __a;
5249 }
5250
5251 __extension__ extern __inline int16x8_t
5252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_s32(int32x4_t __a)5253 vreinterpretq_s16_s32 (int32x4_t __a)
5254 {
5255 return (int16x8_t) __a;
5256 }
5257
5258 __extension__ extern __inline int16x8_t
5259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_s64(int64x2_t __a)5260 vreinterpretq_s16_s64 (int64x2_t __a)
5261 {
5262 return (int16x8_t) __a;
5263 }
5264
5265 __extension__ extern __inline int16x8_t
5266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_f16(float16x8_t __a)5267 vreinterpretq_s16_f16 (float16x8_t __a)
5268 {
5269 return (int16x8_t) __a;
5270 }
5271
5272 __extension__ extern __inline int16x8_t
5273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_f32(float32x4_t __a)5274 vreinterpretq_s16_f32 (float32x4_t __a)
5275 {
5276 return (int16x8_t) __a;
5277 }
5278
5279 __extension__ extern __inline int16x8_t
5280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_u8(uint8x16_t __a)5281 vreinterpretq_s16_u8 (uint8x16_t __a)
5282 {
5283 return (int16x8_t) __a;
5284 }
5285
5286 __extension__ extern __inline int16x8_t
5287 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_u16(uint16x8_t __a)5288 vreinterpretq_s16_u16 (uint16x8_t __a)
5289 {
5290 return (int16x8_t) __a;
5291 }
5292
5293 __extension__ extern __inline int16x8_t
5294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_u32(uint32x4_t __a)5295 vreinterpretq_s16_u32 (uint32x4_t __a)
5296 {
5297 return (int16x8_t) __a;
5298 }
5299
5300 __extension__ extern __inline int16x8_t
5301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_u64(uint64x2_t __a)5302 vreinterpretq_s16_u64 (uint64x2_t __a)
5303 {
5304 return (int16x8_t) __a;
5305 }
5306
5307 __extension__ extern __inline int16x8_t
5308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_p8(poly8x16_t __a)5309 vreinterpretq_s16_p8 (poly8x16_t __a)
5310 {
5311 return (int16x8_t) __a;
5312 }
5313
5314 __extension__ extern __inline int16x8_t
5315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_p16(poly16x8_t __a)5316 vreinterpretq_s16_p16 (poly16x8_t __a)
5317 {
5318 return (int16x8_t) __a;
5319 }
5320
5321 __extension__ extern __inline int16x8_t
5322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_p64(poly64x2_t __a)5323 vreinterpretq_s16_p64 (poly64x2_t __a)
5324 {
5325 return (int16x8_t) __a;
5326 }
5327
5328 __extension__ extern __inline int16x8_t
5329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_p128(poly128_t __a)5330 vreinterpretq_s16_p128 (poly128_t __a)
5331 {
5332 return (int16x8_t)__a;
5333 }
5334
5335 __extension__ extern __inline int32x2_t
5336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_f16(float16x4_t __a)5337 vreinterpret_s32_f16 (float16x4_t __a)
5338 {
5339 return (int32x2_t) __a;
5340 }
5341
5342 __extension__ extern __inline int32x2_t
5343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_f64(float64x1_t __a)5344 vreinterpret_s32_f64 (float64x1_t __a)
5345 {
5346 return (int32x2_t) __a;
5347 }
5348
5349 __extension__ extern __inline int32x2_t
5350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_s8(int8x8_t __a)5351 vreinterpret_s32_s8 (int8x8_t __a)
5352 {
5353 return (int32x2_t) __a;
5354 }
5355
5356 __extension__ extern __inline int32x2_t
5357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_s16(int16x4_t __a)5358 vreinterpret_s32_s16 (int16x4_t __a)
5359 {
5360 return (int32x2_t) __a;
5361 }
5362
5363 __extension__ extern __inline int32x2_t
5364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_s64(int64x1_t __a)5365 vreinterpret_s32_s64 (int64x1_t __a)
5366 {
5367 return (int32x2_t) __a;
5368 }
5369
5370 __extension__ extern __inline int32x2_t
5371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_f32(float32x2_t __a)5372 vreinterpret_s32_f32 (float32x2_t __a)
5373 {
5374 return (int32x2_t) __a;
5375 }
5376
5377 __extension__ extern __inline int32x2_t
5378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_u8(uint8x8_t __a)5379 vreinterpret_s32_u8 (uint8x8_t __a)
5380 {
5381 return (int32x2_t) __a;
5382 }
5383
5384 __extension__ extern __inline int32x2_t
5385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_u16(uint16x4_t __a)5386 vreinterpret_s32_u16 (uint16x4_t __a)
5387 {
5388 return (int32x2_t) __a;
5389 }
5390
5391 __extension__ extern __inline int32x2_t
5392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_u32(uint32x2_t __a)5393 vreinterpret_s32_u32 (uint32x2_t __a)
5394 {
5395 return (int32x2_t) __a;
5396 }
5397
5398 __extension__ extern __inline int32x2_t
5399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_u64(uint64x1_t __a)5400 vreinterpret_s32_u64 (uint64x1_t __a)
5401 {
5402 return (int32x2_t) __a;
5403 }
5404
5405 __extension__ extern __inline int32x2_t
5406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_p8(poly8x8_t __a)5407 vreinterpret_s32_p8 (poly8x8_t __a)
5408 {
5409 return (int32x2_t) __a;
5410 }
5411
5412 __extension__ extern __inline int32x2_t
5413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_p16(poly16x4_t __a)5414 vreinterpret_s32_p16 (poly16x4_t __a)
5415 {
5416 return (int32x2_t) __a;
5417 }
5418
5419 __extension__ extern __inline int32x2_t
5420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_p64(poly64x1_t __a)5421 vreinterpret_s32_p64 (poly64x1_t __a)
5422 {
5423 return (int32x2_t) __a;
5424 }
5425
5426 __extension__ extern __inline int32x4_t
5427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_f64(float64x2_t __a)5428 vreinterpretq_s32_f64 (float64x2_t __a)
5429 {
5430 return (int32x4_t) __a;
5431 }
5432
5433 __extension__ extern __inline int32x4_t
5434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_s8(int8x16_t __a)5435 vreinterpretq_s32_s8 (int8x16_t __a)
5436 {
5437 return (int32x4_t) __a;
5438 }
5439
5440 __extension__ extern __inline int32x4_t
5441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_s16(int16x8_t __a)5442 vreinterpretq_s32_s16 (int16x8_t __a)
5443 {
5444 return (int32x4_t) __a;
5445 }
5446
5447 __extension__ extern __inline int32x4_t
5448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_s64(int64x2_t __a)5449 vreinterpretq_s32_s64 (int64x2_t __a)
5450 {
5451 return (int32x4_t) __a;
5452 }
5453
5454 __extension__ extern __inline int32x4_t
5455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_f16(float16x8_t __a)5456 vreinterpretq_s32_f16 (float16x8_t __a)
5457 {
5458 return (int32x4_t) __a;
5459 }
5460
5461 __extension__ extern __inline int32x4_t
5462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_f32(float32x4_t __a)5463 vreinterpretq_s32_f32 (float32x4_t __a)
5464 {
5465 return (int32x4_t) __a;
5466 }
5467
5468 __extension__ extern __inline int32x4_t
5469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_u8(uint8x16_t __a)5470 vreinterpretq_s32_u8 (uint8x16_t __a)
5471 {
5472 return (int32x4_t) __a;
5473 }
5474
5475 __extension__ extern __inline int32x4_t
5476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_u16(uint16x8_t __a)5477 vreinterpretq_s32_u16 (uint16x8_t __a)
5478 {
5479 return (int32x4_t) __a;
5480 }
5481
5482 __extension__ extern __inline int32x4_t
5483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_u32(uint32x4_t __a)5484 vreinterpretq_s32_u32 (uint32x4_t __a)
5485 {
5486 return (int32x4_t) __a;
5487 }
5488
5489 __extension__ extern __inline int32x4_t
5490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_u64(uint64x2_t __a)5491 vreinterpretq_s32_u64 (uint64x2_t __a)
5492 {
5493 return (int32x4_t) __a;
5494 }
5495
5496 __extension__ extern __inline int32x4_t
5497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_p8(poly8x16_t __a)5498 vreinterpretq_s32_p8 (poly8x16_t __a)
5499 {
5500 return (int32x4_t) __a;
5501 }
5502
5503 __extension__ extern __inline int32x4_t
5504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_p16(poly16x8_t __a)5505 vreinterpretq_s32_p16 (poly16x8_t __a)
5506 {
5507 return (int32x4_t) __a;
5508 }
5509
5510 __extension__ extern __inline int32x4_t
5511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_p64(poly64x2_t __a)5512 vreinterpretq_s32_p64 (poly64x2_t __a)
5513 {
5514 return (int32x4_t) __a;
5515 }
5516
5517 __extension__ extern __inline int32x4_t
5518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_p128(poly128_t __a)5519 vreinterpretq_s32_p128 (poly128_t __a)
5520 {
5521 return (int32x4_t)__a;
5522 }
5523
5524 __extension__ extern __inline uint8x8_t
5525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_f16(float16x4_t __a)5526 vreinterpret_u8_f16 (float16x4_t __a)
5527 {
5528 return (uint8x8_t) __a;
5529 }
5530
5531 __extension__ extern __inline uint8x8_t
5532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_f64(float64x1_t __a)5533 vreinterpret_u8_f64 (float64x1_t __a)
5534 {
5535 return (uint8x8_t) __a;
5536 }
5537
5538 __extension__ extern __inline uint8x8_t
5539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_s8(int8x8_t __a)5540 vreinterpret_u8_s8 (int8x8_t __a)
5541 {
5542 return (uint8x8_t) __a;
5543 }
5544
5545 __extension__ extern __inline uint8x8_t
5546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_s16(int16x4_t __a)5547 vreinterpret_u8_s16 (int16x4_t __a)
5548 {
5549 return (uint8x8_t) __a;
5550 }
5551
5552 __extension__ extern __inline uint8x8_t
5553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_s32(int32x2_t __a)5554 vreinterpret_u8_s32 (int32x2_t __a)
5555 {
5556 return (uint8x8_t) __a;
5557 }
5558
5559 __extension__ extern __inline uint8x8_t
5560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_s64(int64x1_t __a)5561 vreinterpret_u8_s64 (int64x1_t __a)
5562 {
5563 return (uint8x8_t) __a;
5564 }
5565
5566 __extension__ extern __inline uint8x8_t
5567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_f32(float32x2_t __a)5568 vreinterpret_u8_f32 (float32x2_t __a)
5569 {
5570 return (uint8x8_t) __a;
5571 }
5572
5573 __extension__ extern __inline uint8x8_t
5574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_u16(uint16x4_t __a)5575 vreinterpret_u8_u16 (uint16x4_t __a)
5576 {
5577 return (uint8x8_t) __a;
5578 }
5579
5580 __extension__ extern __inline uint8x8_t
5581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_u32(uint32x2_t __a)5582 vreinterpret_u8_u32 (uint32x2_t __a)
5583 {
5584 return (uint8x8_t) __a;
5585 }
5586
5587 __extension__ extern __inline uint8x8_t
5588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_u64(uint64x1_t __a)5589 vreinterpret_u8_u64 (uint64x1_t __a)
5590 {
5591 return (uint8x8_t) __a;
5592 }
5593
5594 __extension__ extern __inline uint8x8_t
5595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_p8(poly8x8_t __a)5596 vreinterpret_u8_p8 (poly8x8_t __a)
5597 {
5598 return (uint8x8_t) __a;
5599 }
5600
5601 __extension__ extern __inline uint8x8_t
5602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_p16(poly16x4_t __a)5603 vreinterpret_u8_p16 (poly16x4_t __a)
5604 {
5605 return (uint8x8_t) __a;
5606 }
5607
5608 __extension__ extern __inline uint8x8_t
5609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_p64(poly64x1_t __a)5610 vreinterpret_u8_p64 (poly64x1_t __a)
5611 {
5612 return (uint8x8_t) __a;
5613 }
5614
5615 __extension__ extern __inline uint8x16_t
5616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_f64(float64x2_t __a)5617 vreinterpretq_u8_f64 (float64x2_t __a)
5618 {
5619 return (uint8x16_t) __a;
5620 }
5621
5622 __extension__ extern __inline uint8x16_t
5623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_s8(int8x16_t __a)5624 vreinterpretq_u8_s8 (int8x16_t __a)
5625 {
5626 return (uint8x16_t) __a;
5627 }
5628
5629 __extension__ extern __inline uint8x16_t
5630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_s16(int16x8_t __a)5631 vreinterpretq_u8_s16 (int16x8_t __a)
5632 {
5633 return (uint8x16_t) __a;
5634 }
5635
5636 __extension__ extern __inline uint8x16_t
5637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_s32(int32x4_t __a)5638 vreinterpretq_u8_s32 (int32x4_t __a)
5639 {
5640 return (uint8x16_t) __a;
5641 }
5642
5643 __extension__ extern __inline uint8x16_t
5644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_s64(int64x2_t __a)5645 vreinterpretq_u8_s64 (int64x2_t __a)
5646 {
5647 return (uint8x16_t) __a;
5648 }
5649
5650 __extension__ extern __inline uint8x16_t
5651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_f16(float16x8_t __a)5652 vreinterpretq_u8_f16 (float16x8_t __a)
5653 {
5654 return (uint8x16_t) __a;
5655 }
5656
5657 __extension__ extern __inline uint8x16_t
5658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_f32(float32x4_t __a)5659 vreinterpretq_u8_f32 (float32x4_t __a)
5660 {
5661 return (uint8x16_t) __a;
5662 }
5663
5664 __extension__ extern __inline uint8x16_t
5665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_u16(uint16x8_t __a)5666 vreinterpretq_u8_u16 (uint16x8_t __a)
5667 {
5668 return (uint8x16_t) __a;
5669 }
5670
5671 __extension__ extern __inline uint8x16_t
5672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_u32(uint32x4_t __a)5673 vreinterpretq_u8_u32 (uint32x4_t __a)
5674 {
5675 return (uint8x16_t) __a;
5676 }
5677
5678 __extension__ extern __inline uint8x16_t
5679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_u64(uint64x2_t __a)5680 vreinterpretq_u8_u64 (uint64x2_t __a)
5681 {
5682 return (uint8x16_t) __a;
5683 }
5684
5685 __extension__ extern __inline uint8x16_t
5686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_p8(poly8x16_t __a)5687 vreinterpretq_u8_p8 (poly8x16_t __a)
5688 {
5689 return (uint8x16_t) __a;
5690 }
5691
5692 __extension__ extern __inline uint8x16_t
5693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_p16(poly16x8_t __a)5694 vreinterpretq_u8_p16 (poly16x8_t __a)
5695 {
5696 return (uint8x16_t) __a;
5697 }
5698
5699 __extension__ extern __inline uint8x16_t
5700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_p64(poly64x2_t __a)5701 vreinterpretq_u8_p64 (poly64x2_t __a)
5702 {
5703 return (uint8x16_t) __a;
5704 }
5705
5706 __extension__ extern __inline uint8x16_t
5707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_p128(poly128_t __a)5708 vreinterpretq_u8_p128 (poly128_t __a)
5709 {
5710 return (uint8x16_t)__a;
5711 }
5712
5713 __extension__ extern __inline uint16x4_t
5714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_f16(float16x4_t __a)5715 vreinterpret_u16_f16 (float16x4_t __a)
5716 {
5717 return (uint16x4_t) __a;
5718 }
5719
5720 __extension__ extern __inline uint16x4_t
5721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_f64(float64x1_t __a)5722 vreinterpret_u16_f64 (float64x1_t __a)
5723 {
5724 return (uint16x4_t) __a;
5725 }
5726
5727 __extension__ extern __inline uint16x4_t
5728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_s8(int8x8_t __a)5729 vreinterpret_u16_s8 (int8x8_t __a)
5730 {
5731 return (uint16x4_t) __a;
5732 }
5733
5734 __extension__ extern __inline uint16x4_t
5735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_s16(int16x4_t __a)5736 vreinterpret_u16_s16 (int16x4_t __a)
5737 {
5738 return (uint16x4_t) __a;
5739 }
5740
5741 __extension__ extern __inline uint16x4_t
5742 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_s32(int32x2_t __a)5743 vreinterpret_u16_s32 (int32x2_t __a)
5744 {
5745 return (uint16x4_t) __a;
5746 }
5747
5748 __extension__ extern __inline uint16x4_t
5749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_s64(int64x1_t __a)5750 vreinterpret_u16_s64 (int64x1_t __a)
5751 {
5752 return (uint16x4_t) __a;
5753 }
5754
5755 __extension__ extern __inline uint16x4_t
5756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_f32(float32x2_t __a)5757 vreinterpret_u16_f32 (float32x2_t __a)
5758 {
5759 return (uint16x4_t) __a;
5760 }
5761
5762 __extension__ extern __inline uint16x4_t
5763 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_u8(uint8x8_t __a)5764 vreinterpret_u16_u8 (uint8x8_t __a)
5765 {
5766 return (uint16x4_t) __a;
5767 }
5768
5769 __extension__ extern __inline uint16x4_t
5770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_u32(uint32x2_t __a)5771 vreinterpret_u16_u32 (uint32x2_t __a)
5772 {
5773 return (uint16x4_t) __a;
5774 }
5775
5776 __extension__ extern __inline uint16x4_t
5777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_u64(uint64x1_t __a)5778 vreinterpret_u16_u64 (uint64x1_t __a)
5779 {
5780 return (uint16x4_t) __a;
5781 }
5782
5783 __extension__ extern __inline uint16x4_t
5784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_p8(poly8x8_t __a)5785 vreinterpret_u16_p8 (poly8x8_t __a)
5786 {
5787 return (uint16x4_t) __a;
5788 }
5789
5790 __extension__ extern __inline uint16x4_t
5791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_p16(poly16x4_t __a)5792 vreinterpret_u16_p16 (poly16x4_t __a)
5793 {
5794 return (uint16x4_t) __a;
5795 }
5796
5797 __extension__ extern __inline uint16x4_t
5798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_p64(poly64x1_t __a)5799 vreinterpret_u16_p64 (poly64x1_t __a)
5800 {
5801 return (uint16x4_t) __a;
5802 }
5803
5804 __extension__ extern __inline uint16x8_t
5805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_f64(float64x2_t __a)5806 vreinterpretq_u16_f64 (float64x2_t __a)
5807 {
5808 return (uint16x8_t) __a;
5809 }
5810
5811 __extension__ extern __inline uint16x8_t
5812 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_s8(int8x16_t __a)5813 vreinterpretq_u16_s8 (int8x16_t __a)
5814 {
5815 return (uint16x8_t) __a;
5816 }
5817
5818 __extension__ extern __inline uint16x8_t
5819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_s16(int16x8_t __a)5820 vreinterpretq_u16_s16 (int16x8_t __a)
5821 {
5822 return (uint16x8_t) __a;
5823 }
5824
5825 __extension__ extern __inline uint16x8_t
5826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_s32(int32x4_t __a)5827 vreinterpretq_u16_s32 (int32x4_t __a)
5828 {
5829 return (uint16x8_t) __a;
5830 }
5831
5832 __extension__ extern __inline uint16x8_t
5833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_s64(int64x2_t __a)5834 vreinterpretq_u16_s64 (int64x2_t __a)
5835 {
5836 return (uint16x8_t) __a;
5837 }
5838
5839 __extension__ extern __inline uint16x8_t
5840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_f16(float16x8_t __a)5841 vreinterpretq_u16_f16 (float16x8_t __a)
5842 {
5843 return (uint16x8_t) __a;
5844 }
5845
5846 __extension__ extern __inline uint16x8_t
5847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_f32(float32x4_t __a)5848 vreinterpretq_u16_f32 (float32x4_t __a)
5849 {
5850 return (uint16x8_t) __a;
5851 }
5852
5853 __extension__ extern __inline uint16x8_t
5854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_u8(uint8x16_t __a)5855 vreinterpretq_u16_u8 (uint8x16_t __a)
5856 {
5857 return (uint16x8_t) __a;
5858 }
5859
5860 __extension__ extern __inline uint16x8_t
5861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_u32(uint32x4_t __a)5862 vreinterpretq_u16_u32 (uint32x4_t __a)
5863 {
5864 return (uint16x8_t) __a;
5865 }
5866
5867 __extension__ extern __inline uint16x8_t
5868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_u64(uint64x2_t __a)5869 vreinterpretq_u16_u64 (uint64x2_t __a)
5870 {
5871 return (uint16x8_t) __a;
5872 }
5873
5874 __extension__ extern __inline uint16x8_t
5875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_p8(poly8x16_t __a)5876 vreinterpretq_u16_p8 (poly8x16_t __a)
5877 {
5878 return (uint16x8_t) __a;
5879 }
5880
5881 __extension__ extern __inline uint16x8_t
5882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_p16(poly16x8_t __a)5883 vreinterpretq_u16_p16 (poly16x8_t __a)
5884 {
5885 return (uint16x8_t) __a;
5886 }
5887
5888 __extension__ extern __inline uint16x8_t
5889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_p64(poly64x2_t __a)5890 vreinterpretq_u16_p64 (poly64x2_t __a)
5891 {
5892 return (uint16x8_t) __a;
5893 }
5894
5895 __extension__ extern __inline uint16x8_t
5896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_p128(poly128_t __a)5897 vreinterpretq_u16_p128 (poly128_t __a)
5898 {
5899 return (uint16x8_t)__a;
5900 }
5901
5902 __extension__ extern __inline uint32x2_t
5903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_f16(float16x4_t __a)5904 vreinterpret_u32_f16 (float16x4_t __a)
5905 {
5906 return (uint32x2_t) __a;
5907 }
5908
5909 __extension__ extern __inline uint32x2_t
5910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_f64(float64x1_t __a)5911 vreinterpret_u32_f64 (float64x1_t __a)
5912 {
5913 return (uint32x2_t) __a;
5914 }
5915
5916 __extension__ extern __inline uint32x2_t
5917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_s8(int8x8_t __a)5918 vreinterpret_u32_s8 (int8x8_t __a)
5919 {
5920 return (uint32x2_t) __a;
5921 }
5922
5923 __extension__ extern __inline uint32x2_t
5924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_s16(int16x4_t __a)5925 vreinterpret_u32_s16 (int16x4_t __a)
5926 {
5927 return (uint32x2_t) __a;
5928 }
5929
5930 __extension__ extern __inline uint32x2_t
5931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_s32(int32x2_t __a)5932 vreinterpret_u32_s32 (int32x2_t __a)
5933 {
5934 return (uint32x2_t) __a;
5935 }
5936
5937 __extension__ extern __inline uint32x2_t
5938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_s64(int64x1_t __a)5939 vreinterpret_u32_s64 (int64x1_t __a)
5940 {
5941 return (uint32x2_t) __a;
5942 }
5943
5944 __extension__ extern __inline uint32x2_t
5945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_f32(float32x2_t __a)5946 vreinterpret_u32_f32 (float32x2_t __a)
5947 {
5948 return (uint32x2_t) __a;
5949 }
5950
5951 __extension__ extern __inline uint32x2_t
5952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_u8(uint8x8_t __a)5953 vreinterpret_u32_u8 (uint8x8_t __a)
5954 {
5955 return (uint32x2_t) __a;
5956 }
5957
5958 __extension__ extern __inline uint32x2_t
5959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_u16(uint16x4_t __a)5960 vreinterpret_u32_u16 (uint16x4_t __a)
5961 {
5962 return (uint32x2_t) __a;
5963 }
5964
5965 __extension__ extern __inline uint32x2_t
5966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_u64(uint64x1_t __a)5967 vreinterpret_u32_u64 (uint64x1_t __a)
5968 {
5969 return (uint32x2_t) __a;
5970 }
5971
5972 __extension__ extern __inline uint32x2_t
5973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_p8(poly8x8_t __a)5974 vreinterpret_u32_p8 (poly8x8_t __a)
5975 {
5976 return (uint32x2_t) __a;
5977 }
5978
5979 __extension__ extern __inline uint32x2_t
5980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_p16(poly16x4_t __a)5981 vreinterpret_u32_p16 (poly16x4_t __a)
5982 {
5983 return (uint32x2_t) __a;
5984 }
5985
5986 __extension__ extern __inline uint32x2_t
5987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_p64(poly64x1_t __a)5988 vreinterpret_u32_p64 (poly64x1_t __a)
5989 {
5990 return (uint32x2_t) __a;
5991 }
5992
5993 __extension__ extern __inline uint32x4_t
5994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_f64(float64x2_t __a)5995 vreinterpretq_u32_f64 (float64x2_t __a)
5996 {
5997 return (uint32x4_t) __a;
5998 }
5999
6000 __extension__ extern __inline uint32x4_t
6001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_s8(int8x16_t __a)6002 vreinterpretq_u32_s8 (int8x16_t __a)
6003 {
6004 return (uint32x4_t) __a;
6005 }
6006
6007 __extension__ extern __inline uint32x4_t
6008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_s16(int16x8_t __a)6009 vreinterpretq_u32_s16 (int16x8_t __a)
6010 {
6011 return (uint32x4_t) __a;
6012 }
6013
6014 __extension__ extern __inline uint32x4_t
6015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_s32(int32x4_t __a)6016 vreinterpretq_u32_s32 (int32x4_t __a)
6017 {
6018 return (uint32x4_t) __a;
6019 }
6020
6021 __extension__ extern __inline uint32x4_t
6022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_s64(int64x2_t __a)6023 vreinterpretq_u32_s64 (int64x2_t __a)
6024 {
6025 return (uint32x4_t) __a;
6026 }
6027
6028 __extension__ extern __inline uint32x4_t
6029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_f16(float16x8_t __a)6030 vreinterpretq_u32_f16 (float16x8_t __a)
6031 {
6032 return (uint32x4_t) __a;
6033 }
6034
6035 __extension__ extern __inline uint32x4_t
6036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_f32(float32x4_t __a)6037 vreinterpretq_u32_f32 (float32x4_t __a)
6038 {
6039 return (uint32x4_t) __a;
6040 }
6041
6042 __extension__ extern __inline uint32x4_t
6043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_u8(uint8x16_t __a)6044 vreinterpretq_u32_u8 (uint8x16_t __a)
6045 {
6046 return (uint32x4_t) __a;
6047 }
6048
6049 __extension__ extern __inline uint32x4_t
6050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_u16(uint16x8_t __a)6051 vreinterpretq_u32_u16 (uint16x8_t __a)
6052 {
6053 return (uint32x4_t) __a;
6054 }
6055
6056 __extension__ extern __inline uint32x4_t
6057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_u64(uint64x2_t __a)6058 vreinterpretq_u32_u64 (uint64x2_t __a)
6059 {
6060 return (uint32x4_t) __a;
6061 }
6062
6063 __extension__ extern __inline uint32x4_t
6064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_p8(poly8x16_t __a)6065 vreinterpretq_u32_p8 (poly8x16_t __a)
6066 {
6067 return (uint32x4_t) __a;
6068 }
6069
6070 __extension__ extern __inline uint32x4_t
6071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_p16(poly16x8_t __a)6072 vreinterpretq_u32_p16 (poly16x8_t __a)
6073 {
6074 return (uint32x4_t) __a;
6075 }
6076
6077 __extension__ extern __inline uint32x4_t
6078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_p64(poly64x2_t __a)6079 vreinterpretq_u32_p64 (poly64x2_t __a)
6080 {
6081 return (uint32x4_t) __a;
6082 }
6083
6084 __extension__ extern __inline uint32x4_t
6085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_p128(poly128_t __a)6086 vreinterpretq_u32_p128 (poly128_t __a)
6087 {
6088 return (uint32x4_t)__a;
6089 }
6090
6091 __extension__ extern __inline float64x2_t
6092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_p128(poly128_t __a)6093 vreinterpretq_f64_p128 (poly128_t __a)
6094 {
6095 return (float64x2_t) __a;
6096 }
6097
6098 __extension__ extern __inline poly128_t
6099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_f64(float64x2_t __a)6100 vreinterpretq_p128_f64 (float64x2_t __a)
6101 {
6102 return (poly128_t) __a;
6103 }
6104
6105 /* vset_lane */
6106
6107 __extension__ extern __inline float16x4_t
6108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_f16(float16_t __elem,float16x4_t __vec,const int __index)6109 vset_lane_f16 (float16_t __elem, float16x4_t __vec, const int __index)
6110 {
6111 return __aarch64_vset_lane_any (__elem, __vec, __index);
6112 }
6113
6114 __extension__ extern __inline float32x2_t
6115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_f32(float32_t __elem,float32x2_t __vec,const int __index)6116 vset_lane_f32 (float32_t __elem, float32x2_t __vec, const int __index)
6117 {
6118 return __aarch64_vset_lane_any (__elem, __vec, __index);
6119 }
6120
6121 __extension__ extern __inline float64x1_t
6122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_f64(float64_t __elem,float64x1_t __vec,const int __index)6123 vset_lane_f64 (float64_t __elem, float64x1_t __vec, const int __index)
6124 {
6125 return __aarch64_vset_lane_any (__elem, __vec, __index);
6126 }
6127
6128 __extension__ extern __inline poly8x8_t
6129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_p8(poly8_t __elem,poly8x8_t __vec,const int __index)6130 vset_lane_p8 (poly8_t __elem, poly8x8_t __vec, const int __index)
6131 {
6132 return __aarch64_vset_lane_any (__elem, __vec, __index);
6133 }
6134
6135 __extension__ extern __inline poly16x4_t
6136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_p16(poly16_t __elem,poly16x4_t __vec,const int __index)6137 vset_lane_p16 (poly16_t __elem, poly16x4_t __vec, const int __index)
6138 {
6139 return __aarch64_vset_lane_any (__elem, __vec, __index);
6140 }
6141
6142 __extension__ extern __inline poly64x1_t
6143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_p64(poly64_t __elem,poly64x1_t __vec,const int __index)6144 vset_lane_p64 (poly64_t __elem, poly64x1_t __vec, const int __index)
6145 {
6146 return __aarch64_vset_lane_any (__elem, __vec, __index);
6147 }
6148
6149 __extension__ extern __inline int8x8_t
6150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_s8(int8_t __elem,int8x8_t __vec,const int __index)6151 vset_lane_s8 (int8_t __elem, int8x8_t __vec, const int __index)
6152 {
6153 return __aarch64_vset_lane_any (__elem, __vec, __index);
6154 }
6155
6156 __extension__ extern __inline int16x4_t
6157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_s16(int16_t __elem,int16x4_t __vec,const int __index)6158 vset_lane_s16 (int16_t __elem, int16x4_t __vec, const int __index)
6159 {
6160 return __aarch64_vset_lane_any (__elem, __vec, __index);
6161 }
6162
6163 __extension__ extern __inline int32x2_t
6164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_s32(int32_t __elem,int32x2_t __vec,const int __index)6165 vset_lane_s32 (int32_t __elem, int32x2_t __vec, const int __index)
6166 {
6167 return __aarch64_vset_lane_any (__elem, __vec, __index);
6168 }
6169
6170 __extension__ extern __inline int64x1_t
6171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_s64(int64_t __elem,int64x1_t __vec,const int __index)6172 vset_lane_s64 (int64_t __elem, int64x1_t __vec, const int __index)
6173 {
6174 return __aarch64_vset_lane_any (__elem, __vec, __index);
6175 }
6176
6177 __extension__ extern __inline uint8x8_t
6178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_u8(uint8_t __elem,uint8x8_t __vec,const int __index)6179 vset_lane_u8 (uint8_t __elem, uint8x8_t __vec, const int __index)
6180 {
6181 return __aarch64_vset_lane_any (__elem, __vec, __index);
6182 }
6183
6184 __extension__ extern __inline uint16x4_t
6185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_u16(uint16_t __elem,uint16x4_t __vec,const int __index)6186 vset_lane_u16 (uint16_t __elem, uint16x4_t __vec, const int __index)
6187 {
6188 return __aarch64_vset_lane_any (__elem, __vec, __index);
6189 }
6190
6191 __extension__ extern __inline uint32x2_t
6192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_u32(uint32_t __elem,uint32x2_t __vec,const int __index)6193 vset_lane_u32 (uint32_t __elem, uint32x2_t __vec, const int __index)
6194 {
6195 return __aarch64_vset_lane_any (__elem, __vec, __index);
6196 }
6197
6198 __extension__ extern __inline uint64x1_t
6199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_u64(uint64_t __elem,uint64x1_t __vec,const int __index)6200 vset_lane_u64 (uint64_t __elem, uint64x1_t __vec, const int __index)
6201 {
6202 return __aarch64_vset_lane_any (__elem, __vec, __index);
6203 }
6204
6205 /* vsetq_lane */
6206
6207 __extension__ extern __inline float16x8_t
6208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_f16(float16_t __elem,float16x8_t __vec,const int __index)6209 vsetq_lane_f16 (float16_t __elem, float16x8_t __vec, const int __index)
6210 {
6211 return __aarch64_vset_lane_any (__elem, __vec, __index);
6212 }
6213
6214 __extension__ extern __inline float32x4_t
6215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_f32(float32_t __elem,float32x4_t __vec,const int __index)6216 vsetq_lane_f32 (float32_t __elem, float32x4_t __vec, const int __index)
6217 {
6218 return __aarch64_vset_lane_any (__elem, __vec, __index);
6219 }
6220
6221 __extension__ extern __inline float64x2_t
6222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_f64(float64_t __elem,float64x2_t __vec,const int __index)6223 vsetq_lane_f64 (float64_t __elem, float64x2_t __vec, const int __index)
6224 {
6225 return __aarch64_vset_lane_any (__elem, __vec, __index);
6226 }
6227
6228 __extension__ extern __inline poly8x16_t
6229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_p8(poly8_t __elem,poly8x16_t __vec,const int __index)6230 vsetq_lane_p8 (poly8_t __elem, poly8x16_t __vec, const int __index)
6231 {
6232 return __aarch64_vset_lane_any (__elem, __vec, __index);
6233 }
6234
6235 __extension__ extern __inline poly16x8_t
6236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_p16(poly16_t __elem,poly16x8_t __vec,const int __index)6237 vsetq_lane_p16 (poly16_t __elem, poly16x8_t __vec, const int __index)
6238 {
6239 return __aarch64_vset_lane_any (__elem, __vec, __index);
6240 }
6241
6242 __extension__ extern __inline poly64x2_t
6243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_p64(poly64_t __elem,poly64x2_t __vec,const int __index)6244 vsetq_lane_p64 (poly64_t __elem, poly64x2_t __vec, const int __index)
6245 {
6246 return __aarch64_vset_lane_any (__elem, __vec, __index);
6247 }
6248
6249 __extension__ extern __inline int8x16_t
6250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_s8(int8_t __elem,int8x16_t __vec,const int __index)6251 vsetq_lane_s8 (int8_t __elem, int8x16_t __vec, const int __index)
6252 {
6253 return __aarch64_vset_lane_any (__elem, __vec, __index);
6254 }
6255
6256 __extension__ extern __inline int16x8_t
6257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_s16(int16_t __elem,int16x8_t __vec,const int __index)6258 vsetq_lane_s16 (int16_t __elem, int16x8_t __vec, const int __index)
6259 {
6260 return __aarch64_vset_lane_any (__elem, __vec, __index);
6261 }
6262
6263 __extension__ extern __inline int32x4_t
6264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_s32(int32_t __elem,int32x4_t __vec,const int __index)6265 vsetq_lane_s32 (int32_t __elem, int32x4_t __vec, const int __index)
6266 {
6267 return __aarch64_vset_lane_any (__elem, __vec, __index);
6268 }
6269
6270 __extension__ extern __inline int64x2_t
6271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_s64(int64_t __elem,int64x2_t __vec,const int __index)6272 vsetq_lane_s64 (int64_t __elem, int64x2_t __vec, const int __index)
6273 {
6274 return __aarch64_vset_lane_any (__elem, __vec, __index);
6275 }
6276
6277 __extension__ extern __inline uint8x16_t
6278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_u8(uint8_t __elem,uint8x16_t __vec,const int __index)6279 vsetq_lane_u8 (uint8_t __elem, uint8x16_t __vec, const int __index)
6280 {
6281 return __aarch64_vset_lane_any (__elem, __vec, __index);
6282 }
6283
6284 __extension__ extern __inline uint16x8_t
6285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_u16(uint16_t __elem,uint16x8_t __vec,const int __index)6286 vsetq_lane_u16 (uint16_t __elem, uint16x8_t __vec, const int __index)
6287 {
6288 return __aarch64_vset_lane_any (__elem, __vec, __index);
6289 }
6290
6291 __extension__ extern __inline uint32x4_t
6292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_u32(uint32_t __elem,uint32x4_t __vec,const int __index)6293 vsetq_lane_u32 (uint32_t __elem, uint32x4_t __vec, const int __index)
6294 {
6295 return __aarch64_vset_lane_any (__elem, __vec, __index);
6296 }
6297
6298 __extension__ extern __inline uint64x2_t
6299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_u64(uint64_t __elem,uint64x2_t __vec,const int __index)6300 vsetq_lane_u64 (uint64_t __elem, uint64x2_t __vec, const int __index)
6301 {
6302 return __aarch64_vset_lane_any (__elem, __vec, __index);
6303 }
6304
6305 #define __GET_LOW(__TYPE) \
6306 uint64x2_t tmp = vreinterpretq_u64_##__TYPE (__a); \
6307 uint64x1_t lo = vcreate_u64 (vgetq_lane_u64 (tmp, 0)); \
6308 return vreinterpret_##__TYPE##_u64 (lo);
6309
6310 __extension__ extern __inline float16x4_t
6311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_f16(float16x8_t __a)6312 vget_low_f16 (float16x8_t __a)
6313 {
6314 __GET_LOW (f16);
6315 }
6316
6317 __extension__ extern __inline float32x2_t
6318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_f32(float32x4_t __a)6319 vget_low_f32 (float32x4_t __a)
6320 {
6321 __GET_LOW (f32);
6322 }
6323
6324 __extension__ extern __inline float64x1_t
6325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_f64(float64x2_t __a)6326 vget_low_f64 (float64x2_t __a)
6327 {
6328 return (float64x1_t) {vgetq_lane_f64 (__a, 0)};
6329 }
6330
6331 __extension__ extern __inline poly8x8_t
6332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_p8(poly8x16_t __a)6333 vget_low_p8 (poly8x16_t __a)
6334 {
6335 __GET_LOW (p8);
6336 }
6337
6338 __extension__ extern __inline poly16x4_t
6339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_p16(poly16x8_t __a)6340 vget_low_p16 (poly16x8_t __a)
6341 {
6342 __GET_LOW (p16);
6343 }
6344
6345 __extension__ extern __inline poly64x1_t
6346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_p64(poly64x2_t __a)6347 vget_low_p64 (poly64x2_t __a)
6348 {
6349 __GET_LOW (p64);
6350 }
6351
6352 __extension__ extern __inline int8x8_t
6353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_s8(int8x16_t __a)6354 vget_low_s8 (int8x16_t __a)
6355 {
6356 __GET_LOW (s8);
6357 }
6358
6359 __extension__ extern __inline int16x4_t
6360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_s16(int16x8_t __a)6361 vget_low_s16 (int16x8_t __a)
6362 {
6363 __GET_LOW (s16);
6364 }
6365
6366 __extension__ extern __inline int32x2_t
6367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_s32(int32x4_t __a)6368 vget_low_s32 (int32x4_t __a)
6369 {
6370 __GET_LOW (s32);
6371 }
6372
6373 __extension__ extern __inline int64x1_t
6374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_s64(int64x2_t __a)6375 vget_low_s64 (int64x2_t __a)
6376 {
6377 __GET_LOW (s64);
6378 }
6379
6380 __extension__ extern __inline uint8x8_t
6381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_u8(uint8x16_t __a)6382 vget_low_u8 (uint8x16_t __a)
6383 {
6384 __GET_LOW (u8);
6385 }
6386
6387 __extension__ extern __inline uint16x4_t
6388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_u16(uint16x8_t __a)6389 vget_low_u16 (uint16x8_t __a)
6390 {
6391 __GET_LOW (u16);
6392 }
6393
6394 __extension__ extern __inline uint32x2_t
6395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_u32(uint32x4_t __a)6396 vget_low_u32 (uint32x4_t __a)
6397 {
6398 __GET_LOW (u32);
6399 }
6400
6401 __extension__ extern __inline uint64x1_t
6402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_u64(uint64x2_t __a)6403 vget_low_u64 (uint64x2_t __a)
6404 {
6405 return vcreate_u64 (vgetq_lane_u64 (__a, 0));
6406 }
6407
6408 #undef __GET_LOW
6409
6410 #define __GET_HIGH(__TYPE) \
6411 uint64x2_t tmp = vreinterpretq_u64_##__TYPE (__a); \
6412 uint64x1_t hi = vcreate_u64 (vgetq_lane_u64 (tmp, 1)); \
6413 return vreinterpret_##__TYPE##_u64 (hi);
6414
6415 __extension__ extern __inline float16x4_t
6416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_f16(float16x8_t __a)6417 vget_high_f16 (float16x8_t __a)
6418 {
6419 __GET_HIGH (f16);
6420 }
6421
6422 __extension__ extern __inline float32x2_t
6423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_f32(float32x4_t __a)6424 vget_high_f32 (float32x4_t __a)
6425 {
6426 __GET_HIGH (f32);
6427 }
6428
6429 __extension__ extern __inline float64x1_t
6430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_f64(float64x2_t __a)6431 vget_high_f64 (float64x2_t __a)
6432 {
6433 __GET_HIGH (f64);
6434 }
6435
6436 __extension__ extern __inline poly8x8_t
6437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_p8(poly8x16_t __a)6438 vget_high_p8 (poly8x16_t __a)
6439 {
6440 __GET_HIGH (p8);
6441 }
6442
6443 __extension__ extern __inline poly16x4_t
6444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_p16(poly16x8_t __a)6445 vget_high_p16 (poly16x8_t __a)
6446 {
6447 __GET_HIGH (p16);
6448 }
6449
6450 __extension__ extern __inline poly64x1_t
6451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_p64(poly64x2_t __a)6452 vget_high_p64 (poly64x2_t __a)
6453 {
6454 __GET_HIGH (p64);
6455 }
6456
6457 __extension__ extern __inline int8x8_t
6458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_s8(int8x16_t __a)6459 vget_high_s8 (int8x16_t __a)
6460 {
6461 __GET_HIGH (s8);
6462 }
6463
6464 __extension__ extern __inline int16x4_t
6465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_s16(int16x8_t __a)6466 vget_high_s16 (int16x8_t __a)
6467 {
6468 __GET_HIGH (s16);
6469 }
6470
6471 __extension__ extern __inline int32x2_t
6472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_s32(int32x4_t __a)6473 vget_high_s32 (int32x4_t __a)
6474 {
6475 __GET_HIGH (s32);
6476 }
6477
6478 __extension__ extern __inline int64x1_t
6479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_s64(int64x2_t __a)6480 vget_high_s64 (int64x2_t __a)
6481 {
6482 __GET_HIGH (s64);
6483 }
6484
6485 __extension__ extern __inline uint8x8_t
6486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_u8(uint8x16_t __a)6487 vget_high_u8 (uint8x16_t __a)
6488 {
6489 __GET_HIGH (u8);
6490 }
6491
6492 __extension__ extern __inline uint16x4_t
6493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_u16(uint16x8_t __a)6494 vget_high_u16 (uint16x8_t __a)
6495 {
6496 __GET_HIGH (u16);
6497 }
6498
6499 __extension__ extern __inline uint32x2_t
6500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_u32(uint32x4_t __a)6501 vget_high_u32 (uint32x4_t __a)
6502 {
6503 __GET_HIGH (u32);
6504 }
6505
6506 #undef __GET_HIGH
6507
6508 __extension__ extern __inline uint64x1_t
6509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_u64(uint64x2_t __a)6510 vget_high_u64 (uint64x2_t __a)
6511 {
6512 return vcreate_u64 (vgetq_lane_u64 (__a, 1));
6513 }
6514
6515 __extension__ extern __inline int8x16_t
6516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_s8(int8x8_t __a,int8x8_t __b)6517 vcombine_s8 (int8x8_t __a, int8x8_t __b)
6518 {
6519 return (int8x16_t) __builtin_aarch64_combinev8qi (__a, __b);
6520 }
6521
6522 __extension__ extern __inline int16x8_t
6523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_s16(int16x4_t __a,int16x4_t __b)6524 vcombine_s16 (int16x4_t __a, int16x4_t __b)
6525 {
6526 return (int16x8_t) __builtin_aarch64_combinev4hi (__a, __b);
6527 }
6528
6529 __extension__ extern __inline int32x4_t
6530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_s32(int32x2_t __a,int32x2_t __b)6531 vcombine_s32 (int32x2_t __a, int32x2_t __b)
6532 {
6533 return (int32x4_t) __builtin_aarch64_combinev2si (__a, __b);
6534 }
6535
6536 __extension__ extern __inline int64x2_t
6537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_s64(int64x1_t __a,int64x1_t __b)6538 vcombine_s64 (int64x1_t __a, int64x1_t __b)
6539 {
6540 return __builtin_aarch64_combinedi (__a[0], __b[0]);
6541 }
6542
6543 __extension__ extern __inline float16x8_t
6544 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_f16(float16x4_t __a,float16x4_t __b)6545 vcombine_f16 (float16x4_t __a, float16x4_t __b)
6546 {
6547 return __builtin_aarch64_combinev4hf (__a, __b);
6548 }
6549
6550 __extension__ extern __inline float32x4_t
6551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_f32(float32x2_t __a,float32x2_t __b)6552 vcombine_f32 (float32x2_t __a, float32x2_t __b)
6553 {
6554 return (float32x4_t) __builtin_aarch64_combinev2sf (__a, __b);
6555 }
6556
6557 __extension__ extern __inline uint8x16_t
6558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_u8(uint8x8_t __a,uint8x8_t __b)6559 vcombine_u8 (uint8x8_t __a, uint8x8_t __b)
6560 {
6561 return (uint8x16_t) __builtin_aarch64_combinev8qi ((int8x8_t) __a,
6562 (int8x8_t) __b);
6563 }
6564
6565 __extension__ extern __inline uint16x8_t
6566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_u16(uint16x4_t __a,uint16x4_t __b)6567 vcombine_u16 (uint16x4_t __a, uint16x4_t __b)
6568 {
6569 return (uint16x8_t) __builtin_aarch64_combinev4hi ((int16x4_t) __a,
6570 (int16x4_t) __b);
6571 }
6572
6573 __extension__ extern __inline uint32x4_t
6574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_u32(uint32x2_t __a,uint32x2_t __b)6575 vcombine_u32 (uint32x2_t __a, uint32x2_t __b)
6576 {
6577 return (uint32x4_t) __builtin_aarch64_combinev2si ((int32x2_t) __a,
6578 (int32x2_t) __b);
6579 }
6580
6581 __extension__ extern __inline uint64x2_t
6582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_u64(uint64x1_t __a,uint64x1_t __b)6583 vcombine_u64 (uint64x1_t __a, uint64x1_t __b)
6584 {
6585 return (uint64x2_t) __builtin_aarch64_combinedi (__a[0], __b[0]);
6586 }
6587
6588 __extension__ extern __inline float64x2_t
6589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_f64(float64x1_t __a,float64x1_t __b)6590 vcombine_f64 (float64x1_t __a, float64x1_t __b)
6591 {
6592 return __builtin_aarch64_combinedf (__a[0], __b[0]);
6593 }
6594
6595 __extension__ extern __inline poly8x16_t
6596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_p8(poly8x8_t __a,poly8x8_t __b)6597 vcombine_p8 (poly8x8_t __a, poly8x8_t __b)
6598 {
6599 return (poly8x16_t) __builtin_aarch64_combinev8qi ((int8x8_t) __a,
6600 (int8x8_t) __b);
6601 }
6602
6603 __extension__ extern __inline poly16x8_t
6604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_p16(poly16x4_t __a,poly16x4_t __b)6605 vcombine_p16 (poly16x4_t __a, poly16x4_t __b)
6606 {
6607 return (poly16x8_t) __builtin_aarch64_combinev4hi ((int16x4_t) __a,
6608 (int16x4_t) __b);
6609 }
6610
6611 __extension__ extern __inline poly64x2_t
6612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_p64(poly64x1_t __a,poly64x1_t __b)6613 vcombine_p64 (poly64x1_t __a, poly64x1_t __b)
6614 {
6615 return (poly64x2_t) __builtin_aarch64_combinedi_ppp (__a[0], __b[0]);
6616 }
6617
6618 /* Start of temporary inline asm implementations. */
6619
6620 __extension__ extern __inline int8x8_t
6621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_s8(int8x8_t __a,int8x8_t __b,int8x8_t __c)6622 vaba_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
6623 {
6624 int8x8_t __result;
6625 __asm__ ("saba %0.8b,%2.8b,%3.8b"
6626 : "=w"(__result)
6627 : "0"(__a), "w"(__b), "w"(__c)
6628 : /* No clobbers */);
6629 return __result;
6630 }
6631
6632 __extension__ extern __inline int16x4_t
6633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)6634 vaba_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
6635 {
6636 int16x4_t __result;
6637 __asm__ ("saba %0.4h,%2.4h,%3.4h"
6638 : "=w"(__result)
6639 : "0"(__a), "w"(__b), "w"(__c)
6640 : /* No clobbers */);
6641 return __result;
6642 }
6643
6644 __extension__ extern __inline int32x2_t
6645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)6646 vaba_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
6647 {
6648 int32x2_t __result;
6649 __asm__ ("saba %0.2s,%2.2s,%3.2s"
6650 : "=w"(__result)
6651 : "0"(__a), "w"(__b), "w"(__c)
6652 : /* No clobbers */);
6653 return __result;
6654 }
6655
6656 __extension__ extern __inline uint8x8_t
6657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_u8(uint8x8_t __a,uint8x8_t __b,uint8x8_t __c)6658 vaba_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
6659 {
6660 uint8x8_t __result;
6661 __asm__ ("uaba %0.8b,%2.8b,%3.8b"
6662 : "=w"(__result)
6663 : "0"(__a), "w"(__b), "w"(__c)
6664 : /* No clobbers */);
6665 return __result;
6666 }
6667
6668 __extension__ extern __inline uint16x4_t
6669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c)6670 vaba_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
6671 {
6672 uint16x4_t __result;
6673 __asm__ ("uaba %0.4h,%2.4h,%3.4h"
6674 : "=w"(__result)
6675 : "0"(__a), "w"(__b), "w"(__c)
6676 : /* No clobbers */);
6677 return __result;
6678 }
6679
6680 __extension__ extern __inline uint32x2_t
6681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaba_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c)6682 vaba_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
6683 {
6684 uint32x2_t __result;
6685 __asm__ ("uaba %0.2s,%2.2s,%3.2s"
6686 : "=w"(__result)
6687 : "0"(__a), "w"(__b), "w"(__c)
6688 : /* No clobbers */);
6689 return __result;
6690 }
6691
6692 __extension__ extern __inline int16x8_t
6693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_s8(int16x8_t __a,int8x16_t __b,int8x16_t __c)6694 vabal_high_s8 (int16x8_t __a, int8x16_t __b, int8x16_t __c)
6695 {
6696 int16x8_t __result;
6697 __asm__ ("sabal2 %0.8h,%2.16b,%3.16b"
6698 : "=w"(__result)
6699 : "0"(__a), "w"(__b), "w"(__c)
6700 : /* No clobbers */);
6701 return __result;
6702 }
6703
6704 __extension__ extern __inline int32x4_t
6705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_s16(int32x4_t __a,int16x8_t __b,int16x8_t __c)6706 vabal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
6707 {
6708 int32x4_t __result;
6709 __asm__ ("sabal2 %0.4s,%2.8h,%3.8h"
6710 : "=w"(__result)
6711 : "0"(__a), "w"(__b), "w"(__c)
6712 : /* No clobbers */);
6713 return __result;
6714 }
6715
6716 __extension__ extern __inline int64x2_t
6717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_s32(int64x2_t __a,int32x4_t __b,int32x4_t __c)6718 vabal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
6719 {
6720 int64x2_t __result;
6721 __asm__ ("sabal2 %0.2d,%2.4s,%3.4s"
6722 : "=w"(__result)
6723 : "0"(__a), "w"(__b), "w"(__c)
6724 : /* No clobbers */);
6725 return __result;
6726 }
6727
6728 __extension__ extern __inline uint16x8_t
6729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_u8(uint16x8_t __a,uint8x16_t __b,uint8x16_t __c)6730 vabal_high_u8 (uint16x8_t __a, uint8x16_t __b, uint8x16_t __c)
6731 {
6732 uint16x8_t __result;
6733 __asm__ ("uabal2 %0.8h,%2.16b,%3.16b"
6734 : "=w"(__result)
6735 : "0"(__a), "w"(__b), "w"(__c)
6736 : /* No clobbers */);
6737 return __result;
6738 }
6739
6740 __extension__ extern __inline uint32x4_t
6741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_u16(uint32x4_t __a,uint16x8_t __b,uint16x8_t __c)6742 vabal_high_u16 (uint32x4_t __a, uint16x8_t __b, uint16x8_t __c)
6743 {
6744 uint32x4_t __result;
6745 __asm__ ("uabal2 %0.4s,%2.8h,%3.8h"
6746 : "=w"(__result)
6747 : "0"(__a), "w"(__b), "w"(__c)
6748 : /* No clobbers */);
6749 return __result;
6750 }
6751
6752 __extension__ extern __inline uint64x2_t
6753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_high_u32(uint64x2_t __a,uint32x4_t __b,uint32x4_t __c)6754 vabal_high_u32 (uint64x2_t __a, uint32x4_t __b, uint32x4_t __c)
6755 {
6756 uint64x2_t __result;
6757 __asm__ ("uabal2 %0.2d,%2.4s,%3.4s"
6758 : "=w"(__result)
6759 : "0"(__a), "w"(__b), "w"(__c)
6760 : /* No clobbers */);
6761 return __result;
6762 }
6763
6764 __extension__ extern __inline int16x8_t
6765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_s8(int16x8_t __a,int8x8_t __b,int8x8_t __c)6766 vabal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
6767 {
6768 int16x8_t __result;
6769 __asm__ ("sabal %0.8h,%2.8b,%3.8b"
6770 : "=w"(__result)
6771 : "0"(__a), "w"(__b), "w"(__c)
6772 : /* No clobbers */);
6773 return __result;
6774 }
6775
6776 __extension__ extern __inline int32x4_t
6777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)6778 vabal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
6779 {
6780 int32x4_t __result;
6781 __asm__ ("sabal %0.4s,%2.4h,%3.4h"
6782 : "=w"(__result)
6783 : "0"(__a), "w"(__b), "w"(__c)
6784 : /* No clobbers */);
6785 return __result;
6786 }
6787
6788 __extension__ extern __inline int64x2_t
6789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)6790 vabal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
6791 {
6792 int64x2_t __result;
6793 __asm__ ("sabal %0.2d,%2.2s,%3.2s"
6794 : "=w"(__result)
6795 : "0"(__a), "w"(__b), "w"(__c)
6796 : /* No clobbers */);
6797 return __result;
6798 }
6799
6800 __extension__ extern __inline uint16x8_t
6801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_u8(uint16x8_t __a,uint8x8_t __b,uint8x8_t __c)6802 vabal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
6803 {
6804 uint16x8_t __result;
6805 __asm__ ("uabal %0.8h,%2.8b,%3.8b"
6806 : "=w"(__result)
6807 : "0"(__a), "w"(__b), "w"(__c)
6808 : /* No clobbers */);
6809 return __result;
6810 }
6811
6812 __extension__ extern __inline uint32x4_t
6813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_u16(uint32x4_t __a,uint16x4_t __b,uint16x4_t __c)6814 vabal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
6815 {
6816 uint32x4_t __result;
6817 __asm__ ("uabal %0.4s,%2.4h,%3.4h"
6818 : "=w"(__result)
6819 : "0"(__a), "w"(__b), "w"(__c)
6820 : /* No clobbers */);
6821 return __result;
6822 }
6823
6824 __extension__ extern __inline uint64x2_t
6825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabal_u32(uint64x2_t __a,uint32x2_t __b,uint32x2_t __c)6826 vabal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
6827 {
6828 uint64x2_t __result;
6829 __asm__ ("uabal %0.2d,%2.2s,%3.2s"
6830 : "=w"(__result)
6831 : "0"(__a), "w"(__b), "w"(__c)
6832 : /* No clobbers */);
6833 return __result;
6834 }
6835
6836 __extension__ extern __inline int8x16_t
6837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_s8(int8x16_t __a,int8x16_t __b,int8x16_t __c)6838 vabaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
6839 {
6840 int8x16_t __result;
6841 __asm__ ("saba %0.16b,%2.16b,%3.16b"
6842 : "=w"(__result)
6843 : "0"(__a), "w"(__b), "w"(__c)
6844 : /* No clobbers */);
6845 return __result;
6846 }
6847
6848 __extension__ extern __inline int16x8_t
6849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)6850 vabaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
6851 {
6852 int16x8_t __result;
6853 __asm__ ("saba %0.8h,%2.8h,%3.8h"
6854 : "=w"(__result)
6855 : "0"(__a), "w"(__b), "w"(__c)
6856 : /* No clobbers */);
6857 return __result;
6858 }
6859
6860 __extension__ extern __inline int32x4_t
6861 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)6862 vabaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
6863 {
6864 int32x4_t __result;
6865 __asm__ ("saba %0.4s,%2.4s,%3.4s"
6866 : "=w"(__result)
6867 : "0"(__a), "w"(__b), "w"(__c)
6868 : /* No clobbers */);
6869 return __result;
6870 }
6871
6872 __extension__ extern __inline uint8x16_t
6873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)6874 vabaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
6875 {
6876 uint8x16_t __result;
6877 __asm__ ("uaba %0.16b,%2.16b,%3.16b"
6878 : "=w"(__result)
6879 : "0"(__a), "w"(__b), "w"(__c)
6880 : /* No clobbers */);
6881 return __result;
6882 }
6883
6884 __extension__ extern __inline uint16x8_t
6885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)6886 vabaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
6887 {
6888 uint16x8_t __result;
6889 __asm__ ("uaba %0.8h,%2.8h,%3.8h"
6890 : "=w"(__result)
6891 : "0"(__a), "w"(__b), "w"(__c)
6892 : /* No clobbers */);
6893 return __result;
6894 }
6895
6896 __extension__ extern __inline uint32x4_t
6897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabaq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)6898 vabaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
6899 {
6900 uint32x4_t __result;
6901 __asm__ ("uaba %0.4s,%2.4s,%3.4s"
6902 : "=w"(__result)
6903 : "0"(__a), "w"(__b), "w"(__c)
6904 : /* No clobbers */);
6905 return __result;
6906 }
6907
6908 __extension__ extern __inline int8x8_t
6909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_s8(int8x8_t __a,int8x8_t __b)6910 vabd_s8 (int8x8_t __a, int8x8_t __b)
6911 {
6912 int8x8_t __result;
6913 __asm__ ("sabd %0.8b, %1.8b, %2.8b"
6914 : "=w"(__result)
6915 : "w"(__a), "w"(__b)
6916 : /* No clobbers */);
6917 return __result;
6918 }
6919
6920 __extension__ extern __inline int16x4_t
6921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_s16(int16x4_t __a,int16x4_t __b)6922 vabd_s16 (int16x4_t __a, int16x4_t __b)
6923 {
6924 int16x4_t __result;
6925 __asm__ ("sabd %0.4h, %1.4h, %2.4h"
6926 : "=w"(__result)
6927 : "w"(__a), "w"(__b)
6928 : /* No clobbers */);
6929 return __result;
6930 }
6931
6932 __extension__ extern __inline int32x2_t
6933 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_s32(int32x2_t __a,int32x2_t __b)6934 vabd_s32 (int32x2_t __a, int32x2_t __b)
6935 {
6936 int32x2_t __result;
6937 __asm__ ("sabd %0.2s, %1.2s, %2.2s"
6938 : "=w"(__result)
6939 : "w"(__a), "w"(__b)
6940 : /* No clobbers */);
6941 return __result;
6942 }
6943
6944 __extension__ extern __inline uint8x8_t
6945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_u8(uint8x8_t __a,uint8x8_t __b)6946 vabd_u8 (uint8x8_t __a, uint8x8_t __b)
6947 {
6948 uint8x8_t __result;
6949 __asm__ ("uabd %0.8b, %1.8b, %2.8b"
6950 : "=w"(__result)
6951 : "w"(__a), "w"(__b)
6952 : /* No clobbers */);
6953 return __result;
6954 }
6955
6956 __extension__ extern __inline uint16x4_t
6957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_u16(uint16x4_t __a,uint16x4_t __b)6958 vabd_u16 (uint16x4_t __a, uint16x4_t __b)
6959 {
6960 uint16x4_t __result;
6961 __asm__ ("uabd %0.4h, %1.4h, %2.4h"
6962 : "=w"(__result)
6963 : "w"(__a), "w"(__b)
6964 : /* No clobbers */);
6965 return __result;
6966 }
6967
6968 __extension__ extern __inline uint32x2_t
6969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_u32(uint32x2_t __a,uint32x2_t __b)6970 vabd_u32 (uint32x2_t __a, uint32x2_t __b)
6971 {
6972 uint32x2_t __result;
6973 __asm__ ("uabd %0.2s, %1.2s, %2.2s"
6974 : "=w"(__result)
6975 : "w"(__a), "w"(__b)
6976 : /* No clobbers */);
6977 return __result;
6978 }
6979
6980 __extension__ extern __inline int16x8_t
6981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_s8(int8x16_t __a,int8x16_t __b)6982 vabdl_high_s8 (int8x16_t __a, int8x16_t __b)
6983 {
6984 int16x8_t __result;
6985 __asm__ ("sabdl2 %0.8h,%1.16b,%2.16b"
6986 : "=w"(__result)
6987 : "w"(__a), "w"(__b)
6988 : /* No clobbers */);
6989 return __result;
6990 }
6991
6992 __extension__ extern __inline int32x4_t
6993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_s16(int16x8_t __a,int16x8_t __b)6994 vabdl_high_s16 (int16x8_t __a, int16x8_t __b)
6995 {
6996 int32x4_t __result;
6997 __asm__ ("sabdl2 %0.4s,%1.8h,%2.8h"
6998 : "=w"(__result)
6999 : "w"(__a), "w"(__b)
7000 : /* No clobbers */);
7001 return __result;
7002 }
7003
7004 __extension__ extern __inline int64x2_t
7005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_s32(int32x4_t __a,int32x4_t __b)7006 vabdl_high_s32 (int32x4_t __a, int32x4_t __b)
7007 {
7008 int64x2_t __result;
7009 __asm__ ("sabdl2 %0.2d,%1.4s,%2.4s"
7010 : "=w"(__result)
7011 : "w"(__a), "w"(__b)
7012 : /* No clobbers */);
7013 return __result;
7014 }
7015
7016 __extension__ extern __inline uint16x8_t
7017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_u8(uint8x16_t __a,uint8x16_t __b)7018 vabdl_high_u8 (uint8x16_t __a, uint8x16_t __b)
7019 {
7020 uint16x8_t __result;
7021 __asm__ ("uabdl2 %0.8h,%1.16b,%2.16b"
7022 : "=w"(__result)
7023 : "w"(__a), "w"(__b)
7024 : /* No clobbers */);
7025 return __result;
7026 }
7027
7028 __extension__ extern __inline uint32x4_t
7029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_u16(uint16x8_t __a,uint16x8_t __b)7030 vabdl_high_u16 (uint16x8_t __a, uint16x8_t __b)
7031 {
7032 uint32x4_t __result;
7033 __asm__ ("uabdl2 %0.4s,%1.8h,%2.8h"
7034 : "=w"(__result)
7035 : "w"(__a), "w"(__b)
7036 : /* No clobbers */);
7037 return __result;
7038 }
7039
7040 __extension__ extern __inline uint64x2_t
7041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_high_u32(uint32x4_t __a,uint32x4_t __b)7042 vabdl_high_u32 (uint32x4_t __a, uint32x4_t __b)
7043 {
7044 uint64x2_t __result;
7045 __asm__ ("uabdl2 %0.2d,%1.4s,%2.4s"
7046 : "=w"(__result)
7047 : "w"(__a), "w"(__b)
7048 : /* No clobbers */);
7049 return __result;
7050 }
7051
7052 __extension__ extern __inline int16x8_t
7053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_s8(int8x8_t __a,int8x8_t __b)7054 vabdl_s8 (int8x8_t __a, int8x8_t __b)
7055 {
7056 int16x8_t __result;
7057 __asm__ ("sabdl %0.8h, %1.8b, %2.8b"
7058 : "=w"(__result)
7059 : "w"(__a), "w"(__b)
7060 : /* No clobbers */);
7061 return __result;
7062 }
7063
7064 __extension__ extern __inline int32x4_t
7065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_s16(int16x4_t __a,int16x4_t __b)7066 vabdl_s16 (int16x4_t __a, int16x4_t __b)
7067 {
7068 int32x4_t __result;
7069 __asm__ ("sabdl %0.4s, %1.4h, %2.4h"
7070 : "=w"(__result)
7071 : "w"(__a), "w"(__b)
7072 : /* No clobbers */);
7073 return __result;
7074 }
7075
7076 __extension__ extern __inline int64x2_t
7077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_s32(int32x2_t __a,int32x2_t __b)7078 vabdl_s32 (int32x2_t __a, int32x2_t __b)
7079 {
7080 int64x2_t __result;
7081 __asm__ ("sabdl %0.2d, %1.2s, %2.2s"
7082 : "=w"(__result)
7083 : "w"(__a), "w"(__b)
7084 : /* No clobbers */);
7085 return __result;
7086 }
7087
7088 __extension__ extern __inline uint16x8_t
7089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_u8(uint8x8_t __a,uint8x8_t __b)7090 vabdl_u8 (uint8x8_t __a, uint8x8_t __b)
7091 {
7092 uint16x8_t __result;
7093 __asm__ ("uabdl %0.8h, %1.8b, %2.8b"
7094 : "=w"(__result)
7095 : "w"(__a), "w"(__b)
7096 : /* No clobbers */);
7097 return __result;
7098 }
7099
7100 __extension__ extern __inline uint32x4_t
7101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_u16(uint16x4_t __a,uint16x4_t __b)7102 vabdl_u16 (uint16x4_t __a, uint16x4_t __b)
7103 {
7104 uint32x4_t __result;
7105 __asm__ ("uabdl %0.4s, %1.4h, %2.4h"
7106 : "=w"(__result)
7107 : "w"(__a), "w"(__b)
7108 : /* No clobbers */);
7109 return __result;
7110 }
7111
7112 __extension__ extern __inline uint64x2_t
7113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdl_u32(uint32x2_t __a,uint32x2_t __b)7114 vabdl_u32 (uint32x2_t __a, uint32x2_t __b)
7115 {
7116 uint64x2_t __result;
7117 __asm__ ("uabdl %0.2d, %1.2s, %2.2s"
7118 : "=w"(__result)
7119 : "w"(__a), "w"(__b)
7120 : /* No clobbers */);
7121 return __result;
7122 }
7123
7124 __extension__ extern __inline int8x16_t
7125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_s8(int8x16_t __a,int8x16_t __b)7126 vabdq_s8 (int8x16_t __a, int8x16_t __b)
7127 {
7128 int8x16_t __result;
7129 __asm__ ("sabd %0.16b, %1.16b, %2.16b"
7130 : "=w"(__result)
7131 : "w"(__a), "w"(__b)
7132 : /* No clobbers */);
7133 return __result;
7134 }
7135
7136 __extension__ extern __inline int16x8_t
7137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_s16(int16x8_t __a,int16x8_t __b)7138 vabdq_s16 (int16x8_t __a, int16x8_t __b)
7139 {
7140 int16x8_t __result;
7141 __asm__ ("sabd %0.8h, %1.8h, %2.8h"
7142 : "=w"(__result)
7143 : "w"(__a), "w"(__b)
7144 : /* No clobbers */);
7145 return __result;
7146 }
7147
7148 __extension__ extern __inline int32x4_t
7149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_s32(int32x4_t __a,int32x4_t __b)7150 vabdq_s32 (int32x4_t __a, int32x4_t __b)
7151 {
7152 int32x4_t __result;
7153 __asm__ ("sabd %0.4s, %1.4s, %2.4s"
7154 : "=w"(__result)
7155 : "w"(__a), "w"(__b)
7156 : /* No clobbers */);
7157 return __result;
7158 }
7159
7160 __extension__ extern __inline uint8x16_t
7161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_u8(uint8x16_t __a,uint8x16_t __b)7162 vabdq_u8 (uint8x16_t __a, uint8x16_t __b)
7163 {
7164 uint8x16_t __result;
7165 __asm__ ("uabd %0.16b, %1.16b, %2.16b"
7166 : "=w"(__result)
7167 : "w"(__a), "w"(__b)
7168 : /* No clobbers */);
7169 return __result;
7170 }
7171
7172 __extension__ extern __inline uint16x8_t
7173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_u16(uint16x8_t __a,uint16x8_t __b)7174 vabdq_u16 (uint16x8_t __a, uint16x8_t __b)
7175 {
7176 uint16x8_t __result;
7177 __asm__ ("uabd %0.8h, %1.8h, %2.8h"
7178 : "=w"(__result)
7179 : "w"(__a), "w"(__b)
7180 : /* No clobbers */);
7181 return __result;
7182 }
7183
7184 __extension__ extern __inline uint32x4_t
7185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_u32(uint32x4_t __a,uint32x4_t __b)7186 vabdq_u32 (uint32x4_t __a, uint32x4_t __b)
7187 {
7188 uint32x4_t __result;
7189 __asm__ ("uabd %0.4s, %1.4s, %2.4s"
7190 : "=w"(__result)
7191 : "w"(__a), "w"(__b)
7192 : /* No clobbers */);
7193 return __result;
7194 }
7195
7196 __extension__ extern __inline int16_t
7197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlv_s8(int8x8_t __a)7198 vaddlv_s8 (int8x8_t __a)
7199 {
7200 int16_t __result;
7201 __asm__ ("saddlv %h0,%1.8b"
7202 : "=w"(__result)
7203 : "w"(__a)
7204 : /* No clobbers */);
7205 return __result;
7206 }
7207
7208 __extension__ extern __inline int32_t
7209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlv_s16(int16x4_t __a)7210 vaddlv_s16 (int16x4_t __a)
7211 {
7212 int32_t __result;
7213 __asm__ ("saddlv %s0,%1.4h"
7214 : "=w"(__result)
7215 : "w"(__a)
7216 : /* No clobbers */);
7217 return __result;
7218 }
7219
7220 __extension__ extern __inline uint16_t
7221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlv_u8(uint8x8_t __a)7222 vaddlv_u8 (uint8x8_t __a)
7223 {
7224 uint16_t __result;
7225 __asm__ ("uaddlv %h0,%1.8b"
7226 : "=w"(__result)
7227 : "w"(__a)
7228 : /* No clobbers */);
7229 return __result;
7230 }
7231
7232 __extension__ extern __inline uint32_t
7233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlv_u16(uint16x4_t __a)7234 vaddlv_u16 (uint16x4_t __a)
7235 {
7236 uint32_t __result;
7237 __asm__ ("uaddlv %s0,%1.4h"
7238 : "=w"(__result)
7239 : "w"(__a)
7240 : /* No clobbers */);
7241 return __result;
7242 }
7243
7244 __extension__ extern __inline int16_t
7245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_s8(int8x16_t __a)7246 vaddlvq_s8 (int8x16_t __a)
7247 {
7248 int16_t __result;
7249 __asm__ ("saddlv %h0,%1.16b"
7250 : "=w"(__result)
7251 : "w"(__a)
7252 : /* No clobbers */);
7253 return __result;
7254 }
7255
7256 __extension__ extern __inline int32_t
7257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_s16(int16x8_t __a)7258 vaddlvq_s16 (int16x8_t __a)
7259 {
7260 int32_t __result;
7261 __asm__ ("saddlv %s0,%1.8h"
7262 : "=w"(__result)
7263 : "w"(__a)
7264 : /* No clobbers */);
7265 return __result;
7266 }
7267
7268 __extension__ extern __inline int64_t
7269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_s32(int32x4_t __a)7270 vaddlvq_s32 (int32x4_t __a)
7271 {
7272 int64_t __result;
7273 __asm__ ("saddlv %d0,%1.4s"
7274 : "=w"(__result)
7275 : "w"(__a)
7276 : /* No clobbers */);
7277 return __result;
7278 }
7279
7280 __extension__ extern __inline uint16_t
7281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_u8(uint8x16_t __a)7282 vaddlvq_u8 (uint8x16_t __a)
7283 {
7284 uint16_t __result;
7285 __asm__ ("uaddlv %h0,%1.16b"
7286 : "=w"(__result)
7287 : "w"(__a)
7288 : /* No clobbers */);
7289 return __result;
7290 }
7291
7292 __extension__ extern __inline uint32_t
7293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_u16(uint16x8_t __a)7294 vaddlvq_u16 (uint16x8_t __a)
7295 {
7296 uint32_t __result;
7297 __asm__ ("uaddlv %s0,%1.8h"
7298 : "=w"(__result)
7299 : "w"(__a)
7300 : /* No clobbers */);
7301 return __result;
7302 }
7303
7304 __extension__ extern __inline uint64_t
7305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlvq_u32(uint32x4_t __a)7306 vaddlvq_u32 (uint32x4_t __a)
7307 {
7308 uint64_t __result;
7309 __asm__ ("uaddlv %d0,%1.4s"
7310 : "=w"(__result)
7311 : "w"(__a)
7312 : /* No clobbers */);
7313 return __result;
7314 }
7315
7316 __extension__ extern __inline float32x2_t
7317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtx_f32_f64(float64x2_t __a)7318 vcvtx_f32_f64 (float64x2_t __a)
7319 {
7320 float32x2_t __result;
7321 __asm__ ("fcvtxn %0.2s,%1.2d"
7322 : "=w"(__result)
7323 : "w"(__a)
7324 : /* No clobbers */);
7325 return __result;
7326 }
7327
7328 __extension__ extern __inline float32x4_t
7329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtx_high_f32_f64(float32x2_t __a,float64x2_t __b)7330 vcvtx_high_f32_f64 (float32x2_t __a, float64x2_t __b)
7331 {
7332 float32x4_t __result;
7333 __asm__ ("fcvtxn2 %0.4s,%1.2d"
7334 : "=w"(__result)
7335 : "w" (__b), "0"(__a)
7336 : /* No clobbers */);
7337 return __result;
7338 }
7339
7340 __extension__ extern __inline float32_t
7341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtxd_f32_f64(float64_t __a)7342 vcvtxd_f32_f64 (float64_t __a)
7343 {
7344 float32_t __result;
7345 __asm__ ("fcvtxn %s0,%d1"
7346 : "=w"(__result)
7347 : "w"(__a)
7348 : /* No clobbers */);
7349 return __result;
7350 }
7351
7352 __extension__ extern __inline float32x2_t
7353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_f32(float32x2_t __a,float32x2_t __b,float32_t __c)7354 vmla_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
7355 {
7356 float32x2_t __result;
7357 float32x2_t __t1;
7358 __asm__ ("fmul %1.2s, %3.2s, %4.s[0]; fadd %0.2s, %0.2s, %1.2s"
7359 : "=w"(__result), "=w"(__t1)
7360 : "0"(__a), "w"(__b), "w"(__c)
7361 : /* No clobbers */);
7362 return __result;
7363 }
7364
7365 __extension__ extern __inline int16x4_t
7366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_s16(int16x4_t __a,int16x4_t __b,int16_t __c)7367 vmla_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
7368 {
7369 int16x4_t __result;
7370 __asm__ ("mla %0.4h,%2.4h,%3.h[0]"
7371 : "=w"(__result)
7372 : "0"(__a), "w"(__b), "x"(__c)
7373 : /* No clobbers */);
7374 return __result;
7375 }
7376
7377 __extension__ extern __inline int32x2_t
7378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_s32(int32x2_t __a,int32x2_t __b,int32_t __c)7379 vmla_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
7380 {
7381 int32x2_t __result;
7382 __asm__ ("mla %0.2s,%2.2s,%3.s[0]"
7383 : "=w"(__result)
7384 : "0"(__a), "w"(__b), "w"(__c)
7385 : /* No clobbers */);
7386 return __result;
7387 }
7388
7389 __extension__ extern __inline uint16x4_t
7390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_u16(uint16x4_t __a,uint16x4_t __b,uint16_t __c)7391 vmla_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
7392 {
7393 uint16x4_t __result;
7394 __asm__ ("mla %0.4h,%2.4h,%3.h[0]"
7395 : "=w"(__result)
7396 : "0"(__a), "w"(__b), "x"(__c)
7397 : /* No clobbers */);
7398 return __result;
7399 }
7400
7401 __extension__ extern __inline uint32x2_t
7402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_n_u32(uint32x2_t __a,uint32x2_t __b,uint32_t __c)7403 vmla_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
7404 {
7405 uint32x2_t __result;
7406 __asm__ ("mla %0.2s,%2.2s,%3.s[0]"
7407 : "=w"(__result)
7408 : "0"(__a), "w"(__b), "w"(__c)
7409 : /* No clobbers */);
7410 return __result;
7411 }
7412
7413 __extension__ extern __inline int8x8_t
7414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_s8(int8x8_t __a,int8x8_t __b,int8x8_t __c)7415 vmla_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
7416 {
7417 int8x8_t __result;
7418 __asm__ ("mla %0.8b, %2.8b, %3.8b"
7419 : "=w"(__result)
7420 : "0"(__a), "w"(__b), "w"(__c)
7421 : /* No clobbers */);
7422 return __result;
7423 }
7424
7425 __extension__ extern __inline int16x4_t
7426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)7427 vmla_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
7428 {
7429 int16x4_t __result;
7430 __asm__ ("mla %0.4h, %2.4h, %3.4h"
7431 : "=w"(__result)
7432 : "0"(__a), "w"(__b), "w"(__c)
7433 : /* No clobbers */);
7434 return __result;
7435 }
7436
7437 __extension__ extern __inline int32x2_t
7438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)7439 vmla_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
7440 {
7441 int32x2_t __result;
7442 __asm__ ("mla %0.2s, %2.2s, %3.2s"
7443 : "=w"(__result)
7444 : "0"(__a), "w"(__b), "w"(__c)
7445 : /* No clobbers */);
7446 return __result;
7447 }
7448
7449 __extension__ extern __inline uint8x8_t
7450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_u8(uint8x8_t __a,uint8x8_t __b,uint8x8_t __c)7451 vmla_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
7452 {
7453 uint8x8_t __result;
7454 __asm__ ("mla %0.8b, %2.8b, %3.8b"
7455 : "=w"(__result)
7456 : "0"(__a), "w"(__b), "w"(__c)
7457 : /* No clobbers */);
7458 return __result;
7459 }
7460
7461 __extension__ extern __inline uint16x4_t
7462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c)7463 vmla_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
7464 {
7465 uint16x4_t __result;
7466 __asm__ ("mla %0.4h, %2.4h, %3.4h"
7467 : "=w"(__result)
7468 : "0"(__a), "w"(__b), "w"(__c)
7469 : /* No clobbers */);
7470 return __result;
7471 }
7472
7473 __extension__ extern __inline uint32x2_t
7474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c)7475 vmla_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
7476 {
7477 uint32x2_t __result;
7478 __asm__ ("mla %0.2s, %2.2s, %3.2s"
7479 : "=w"(__result)
7480 : "0"(__a), "w"(__b), "w"(__c)
7481 : /* No clobbers */);
7482 return __result;
7483 }
7484
7485 #define vmlal_high_lane_s16(a, b, c, d) \
7486 __extension__ \
7487 ({ \
7488 int16x4_t c_ = (c); \
7489 int16x8_t b_ = (b); \
7490 int32x4_t a_ = (a); \
7491 int32x4_t result; \
7492 __asm__ ("smlal2 %0.4s, %2.8h, %3.h[%4]" \
7493 : "=w"(result) \
7494 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7495 : /* No clobbers */); \
7496 result; \
7497 })
7498
7499 #define vmlal_high_lane_s32(a, b, c, d) \
7500 __extension__ \
7501 ({ \
7502 int32x2_t c_ = (c); \
7503 int32x4_t b_ = (b); \
7504 int64x2_t a_ = (a); \
7505 int64x2_t result; \
7506 __asm__ ("smlal2 %0.2d, %2.4s, %3.s[%4]" \
7507 : "=w"(result) \
7508 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7509 : /* No clobbers */); \
7510 result; \
7511 })
7512
7513 #define vmlal_high_lane_u16(a, b, c, d) \
7514 __extension__ \
7515 ({ \
7516 uint16x4_t c_ = (c); \
7517 uint16x8_t b_ = (b); \
7518 uint32x4_t a_ = (a); \
7519 uint32x4_t result; \
7520 __asm__ ("umlal2 %0.4s, %2.8h, %3.h[%4]" \
7521 : "=w"(result) \
7522 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7523 : /* No clobbers */); \
7524 result; \
7525 })
7526
7527 #define vmlal_high_lane_u32(a, b, c, d) \
7528 __extension__ \
7529 ({ \
7530 uint32x2_t c_ = (c); \
7531 uint32x4_t b_ = (b); \
7532 uint64x2_t a_ = (a); \
7533 uint64x2_t result; \
7534 __asm__ ("umlal2 %0.2d, %2.4s, %3.s[%4]" \
7535 : "=w"(result) \
7536 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7537 : /* No clobbers */); \
7538 result; \
7539 })
7540
7541 #define vmlal_high_laneq_s16(a, b, c, d) \
7542 __extension__ \
7543 ({ \
7544 int16x8_t c_ = (c); \
7545 int16x8_t b_ = (b); \
7546 int32x4_t a_ = (a); \
7547 int32x4_t result; \
7548 __asm__ ("smlal2 %0.4s, %2.8h, %3.h[%4]" \
7549 : "=w"(result) \
7550 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7551 : /* No clobbers */); \
7552 result; \
7553 })
7554
7555 #define vmlal_high_laneq_s32(a, b, c, d) \
7556 __extension__ \
7557 ({ \
7558 int32x4_t c_ = (c); \
7559 int32x4_t b_ = (b); \
7560 int64x2_t a_ = (a); \
7561 int64x2_t result; \
7562 __asm__ ("smlal2 %0.2d, %2.4s, %3.s[%4]" \
7563 : "=w"(result) \
7564 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7565 : /* No clobbers */); \
7566 result; \
7567 })
7568
7569 #define vmlal_high_laneq_u16(a, b, c, d) \
7570 __extension__ \
7571 ({ \
7572 uint16x8_t c_ = (c); \
7573 uint16x8_t b_ = (b); \
7574 uint32x4_t a_ = (a); \
7575 uint32x4_t result; \
7576 __asm__ ("umlal2 %0.4s, %2.8h, %3.h[%4]" \
7577 : "=w"(result) \
7578 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
7579 : /* No clobbers */); \
7580 result; \
7581 })
7582
7583 #define vmlal_high_laneq_u32(a, b, c, d) \
7584 __extension__ \
7585 ({ \
7586 uint32x4_t c_ = (c); \
7587 uint32x4_t b_ = (b); \
7588 uint64x2_t a_ = (a); \
7589 uint64x2_t result; \
7590 __asm__ ("umlal2 %0.2d, %2.4s, %3.s[%4]" \
7591 : "=w"(result) \
7592 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
7593 : /* No clobbers */); \
7594 result; \
7595 })
7596
7597 __extension__ extern __inline int32x4_t
7598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_n_s16(int32x4_t __a,int16x8_t __b,int16_t __c)7599 vmlal_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
7600 {
7601 int32x4_t __result;
7602 __asm__ ("smlal2 %0.4s,%2.8h,%3.h[0]"
7603 : "=w"(__result)
7604 : "0"(__a), "w"(__b), "x"(__c)
7605 : /* No clobbers */);
7606 return __result;
7607 }
7608
7609 __extension__ extern __inline int64x2_t
7610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_n_s32(int64x2_t __a,int32x4_t __b,int32_t __c)7611 vmlal_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
7612 {
7613 int64x2_t __result;
7614 __asm__ ("smlal2 %0.2d,%2.4s,%3.s[0]"
7615 : "=w"(__result)
7616 : "0"(__a), "w"(__b), "w"(__c)
7617 : /* No clobbers */);
7618 return __result;
7619 }
7620
7621 __extension__ extern __inline uint32x4_t
7622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_n_u16(uint32x4_t __a,uint16x8_t __b,uint16_t __c)7623 vmlal_high_n_u16 (uint32x4_t __a, uint16x8_t __b, uint16_t __c)
7624 {
7625 uint32x4_t __result;
7626 __asm__ ("umlal2 %0.4s,%2.8h,%3.h[0]"
7627 : "=w"(__result)
7628 : "0"(__a), "w"(__b), "x"(__c)
7629 : /* No clobbers */);
7630 return __result;
7631 }
7632
7633 __extension__ extern __inline uint64x2_t
7634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_n_u32(uint64x2_t __a,uint32x4_t __b,uint32_t __c)7635 vmlal_high_n_u32 (uint64x2_t __a, uint32x4_t __b, uint32_t __c)
7636 {
7637 uint64x2_t __result;
7638 __asm__ ("umlal2 %0.2d,%2.4s,%3.s[0]"
7639 : "=w"(__result)
7640 : "0"(__a), "w"(__b), "w"(__c)
7641 : /* No clobbers */);
7642 return __result;
7643 }
7644
7645 __extension__ extern __inline int16x8_t
7646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_s8(int16x8_t __a,int8x16_t __b,int8x16_t __c)7647 vmlal_high_s8 (int16x8_t __a, int8x16_t __b, int8x16_t __c)
7648 {
7649 int16x8_t __result;
7650 __asm__ ("smlal2 %0.8h,%2.16b,%3.16b"
7651 : "=w"(__result)
7652 : "0"(__a), "w"(__b), "w"(__c)
7653 : /* No clobbers */);
7654 return __result;
7655 }
7656
7657 __extension__ extern __inline int32x4_t
7658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_s16(int32x4_t __a,int16x8_t __b,int16x8_t __c)7659 vmlal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
7660 {
7661 int32x4_t __result;
7662 __asm__ ("smlal2 %0.4s,%2.8h,%3.8h"
7663 : "=w"(__result)
7664 : "0"(__a), "w"(__b), "w"(__c)
7665 : /* No clobbers */);
7666 return __result;
7667 }
7668
7669 __extension__ extern __inline int64x2_t
7670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_s32(int64x2_t __a,int32x4_t __b,int32x4_t __c)7671 vmlal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
7672 {
7673 int64x2_t __result;
7674 __asm__ ("smlal2 %0.2d,%2.4s,%3.4s"
7675 : "=w"(__result)
7676 : "0"(__a), "w"(__b), "w"(__c)
7677 : /* No clobbers */);
7678 return __result;
7679 }
7680
7681 __extension__ extern __inline uint16x8_t
7682 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_u8(uint16x8_t __a,uint8x16_t __b,uint8x16_t __c)7683 vmlal_high_u8 (uint16x8_t __a, uint8x16_t __b, uint8x16_t __c)
7684 {
7685 uint16x8_t __result;
7686 __asm__ ("umlal2 %0.8h,%2.16b,%3.16b"
7687 : "=w"(__result)
7688 : "0"(__a), "w"(__b), "w"(__c)
7689 : /* No clobbers */);
7690 return __result;
7691 }
7692
7693 __extension__ extern __inline uint32x4_t
7694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_u16(uint32x4_t __a,uint16x8_t __b,uint16x8_t __c)7695 vmlal_high_u16 (uint32x4_t __a, uint16x8_t __b, uint16x8_t __c)
7696 {
7697 uint32x4_t __result;
7698 __asm__ ("umlal2 %0.4s,%2.8h,%3.8h"
7699 : "=w"(__result)
7700 : "0"(__a), "w"(__b), "w"(__c)
7701 : /* No clobbers */);
7702 return __result;
7703 }
7704
7705 __extension__ extern __inline uint64x2_t
7706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_high_u32(uint64x2_t __a,uint32x4_t __b,uint32x4_t __c)7707 vmlal_high_u32 (uint64x2_t __a, uint32x4_t __b, uint32x4_t __c)
7708 {
7709 uint64x2_t __result;
7710 __asm__ ("umlal2 %0.2d,%2.4s,%3.4s"
7711 : "=w"(__result)
7712 : "0"(__a), "w"(__b), "w"(__c)
7713 : /* No clobbers */);
7714 return __result;
7715 }
7716
7717 __extension__ extern __inline int32x4_t
7718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_lane_s16(int32x4_t __acc,int16x4_t __a,int16x4_t __b,const int __c)7719 vmlal_lane_s16 (int32x4_t __acc, int16x4_t __a, int16x4_t __b, const int __c)
7720 {
7721 return __builtin_aarch64_vec_smlal_lane_v4hi (__acc, __a, __b, __c);
7722 }
7723
7724 __extension__ extern __inline int64x2_t
7725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_lane_s32(int64x2_t __acc,int32x2_t __a,int32x2_t __b,const int __c)7726 vmlal_lane_s32 (int64x2_t __acc, int32x2_t __a, int32x2_t __b, const int __c)
7727 {
7728 return __builtin_aarch64_vec_smlal_lane_v2si (__acc, __a, __b, __c);
7729 }
7730
7731 __extension__ extern __inline uint32x4_t
7732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_lane_u16(uint32x4_t __acc,uint16x4_t __a,uint16x4_t __b,const int __c)7733 vmlal_lane_u16 (uint32x4_t __acc, uint16x4_t __a, uint16x4_t __b, const int __c)
7734 {
7735 return __builtin_aarch64_vec_umlal_lane_v4hi_uuuus (__acc, __a, __b, __c);
7736 }
7737
7738 __extension__ extern __inline uint64x2_t
7739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_lane_u32(uint64x2_t __acc,uint32x2_t __a,uint32x2_t __b,const int __c)7740 vmlal_lane_u32 (uint64x2_t __acc, uint32x2_t __a, uint32x2_t __b, const int __c)
7741 {
7742 return __builtin_aarch64_vec_umlal_lane_v2si_uuuus (__acc, __a, __b, __c);
7743 }
7744
7745 __extension__ extern __inline int32x4_t
7746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_laneq_s16(int32x4_t __acc,int16x4_t __a,int16x8_t __b,const int __c)7747 vmlal_laneq_s16 (int32x4_t __acc, int16x4_t __a, int16x8_t __b, const int __c)
7748 {
7749 return __builtin_aarch64_vec_smlal_laneq_v4hi (__acc, __a, __b, __c);
7750 }
7751
7752 __extension__ extern __inline int64x2_t
7753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_laneq_s32(int64x2_t __acc,int32x2_t __a,int32x4_t __b,const int __c)7754 vmlal_laneq_s32 (int64x2_t __acc, int32x2_t __a, int32x4_t __b, const int __c)
7755 {
7756 return __builtin_aarch64_vec_smlal_laneq_v2si (__acc, __a, __b, __c);
7757 }
7758
7759 __extension__ extern __inline uint32x4_t
7760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_laneq_u16(uint32x4_t __acc,uint16x4_t __a,uint16x8_t __b,const int __c)7761 vmlal_laneq_u16 (uint32x4_t __acc, uint16x4_t __a, uint16x8_t __b, const int __c)
7762 {
7763 return __builtin_aarch64_vec_umlal_laneq_v4hi_uuuus (__acc, __a, __b, __c);
7764 }
7765
7766 __extension__ extern __inline uint64x2_t
7767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_laneq_u32(uint64x2_t __acc,uint32x2_t __a,uint32x4_t __b,const int __c)7768 vmlal_laneq_u32 (uint64x2_t __acc, uint32x2_t __a, uint32x4_t __b, const int __c)
7769 {
7770 return __builtin_aarch64_vec_umlal_laneq_v2si_uuuus (__acc, __a, __b, __c);
7771 }
7772
7773 __extension__ extern __inline int32x4_t
7774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_n_s16(int32x4_t __a,int16x4_t __b,int16_t __c)7775 vmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
7776 {
7777 int32x4_t __result;
7778 __asm__ ("smlal %0.4s,%2.4h,%3.h[0]"
7779 : "=w"(__result)
7780 : "0"(__a), "w"(__b), "x"(__c)
7781 : /* No clobbers */);
7782 return __result;
7783 }
7784
7785 __extension__ extern __inline int64x2_t
7786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_n_s32(int64x2_t __a,int32x2_t __b,int32_t __c)7787 vmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
7788 {
7789 int64x2_t __result;
7790 __asm__ ("smlal %0.2d,%2.2s,%3.s[0]"
7791 : "=w"(__result)
7792 : "0"(__a), "w"(__b), "w"(__c)
7793 : /* No clobbers */);
7794 return __result;
7795 }
7796
7797 __extension__ extern __inline uint32x4_t
7798 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_n_u16(uint32x4_t __a,uint16x4_t __b,uint16_t __c)7799 vmlal_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
7800 {
7801 uint32x4_t __result;
7802 __asm__ ("umlal %0.4s,%2.4h,%3.h[0]"
7803 : "=w"(__result)
7804 : "0"(__a), "w"(__b), "x"(__c)
7805 : /* No clobbers */);
7806 return __result;
7807 }
7808
7809 __extension__ extern __inline uint64x2_t
7810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_n_u32(uint64x2_t __a,uint32x2_t __b,uint32_t __c)7811 vmlal_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
7812 {
7813 uint64x2_t __result;
7814 __asm__ ("umlal %0.2d,%2.2s,%3.s[0]"
7815 : "=w"(__result)
7816 : "0"(__a), "w"(__b), "w"(__c)
7817 : /* No clobbers */);
7818 return __result;
7819 }
7820
7821 __extension__ extern __inline int16x8_t
7822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_s8(int16x8_t __a,int8x8_t __b,int8x8_t __c)7823 vmlal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
7824 {
7825 int16x8_t __result;
7826 __asm__ ("smlal %0.8h,%2.8b,%3.8b"
7827 : "=w"(__result)
7828 : "0"(__a), "w"(__b), "w"(__c)
7829 : /* No clobbers */);
7830 return __result;
7831 }
7832
7833 __extension__ extern __inline int32x4_t
7834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)7835 vmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
7836 {
7837 int32x4_t __result;
7838 __asm__ ("smlal %0.4s,%2.4h,%3.4h"
7839 : "=w"(__result)
7840 : "0"(__a), "w"(__b), "w"(__c)
7841 : /* No clobbers */);
7842 return __result;
7843 }
7844
7845 __extension__ extern __inline int64x2_t
7846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)7847 vmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
7848 {
7849 int64x2_t __result;
7850 __asm__ ("smlal %0.2d,%2.2s,%3.2s"
7851 : "=w"(__result)
7852 : "0"(__a), "w"(__b), "w"(__c)
7853 : /* No clobbers */);
7854 return __result;
7855 }
7856
7857 __extension__ extern __inline uint16x8_t
7858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_u8(uint16x8_t __a,uint8x8_t __b,uint8x8_t __c)7859 vmlal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
7860 {
7861 uint16x8_t __result;
7862 __asm__ ("umlal %0.8h,%2.8b,%3.8b"
7863 : "=w"(__result)
7864 : "0"(__a), "w"(__b), "w"(__c)
7865 : /* No clobbers */);
7866 return __result;
7867 }
7868
7869 __extension__ extern __inline uint32x4_t
7870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_u16(uint32x4_t __a,uint16x4_t __b,uint16x4_t __c)7871 vmlal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
7872 {
7873 uint32x4_t __result;
7874 __asm__ ("umlal %0.4s,%2.4h,%3.4h"
7875 : "=w"(__result)
7876 : "0"(__a), "w"(__b), "w"(__c)
7877 : /* No clobbers */);
7878 return __result;
7879 }
7880
7881 __extension__ extern __inline uint64x2_t
7882 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlal_u32(uint64x2_t __a,uint32x2_t __b,uint32x2_t __c)7883 vmlal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
7884 {
7885 uint64x2_t __result;
7886 __asm__ ("umlal %0.2d,%2.2s,%3.2s"
7887 : "=w"(__result)
7888 : "0"(__a), "w"(__b), "w"(__c)
7889 : /* No clobbers */);
7890 return __result;
7891 }
7892
7893 __extension__ extern __inline float32x4_t
7894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_f32(float32x4_t __a,float32x4_t __b,float32_t __c)7895 vmlaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
7896 {
7897 float32x4_t __result;
7898 float32x4_t __t1;
7899 __asm__ ("fmul %1.4s, %3.4s, %4.s[0]; fadd %0.4s, %0.4s, %1.4s"
7900 : "=w"(__result), "=w"(__t1)
7901 : "0"(__a), "w"(__b), "w"(__c)
7902 : /* No clobbers */);
7903 return __result;
7904 }
7905
7906 __extension__ extern __inline int16x8_t
7907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_s16(int16x8_t __a,int16x8_t __b,int16_t __c)7908 vmlaq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
7909 {
7910 int16x8_t __result;
7911 __asm__ ("mla %0.8h,%2.8h,%3.h[0]"
7912 : "=w"(__result)
7913 : "0"(__a), "w"(__b), "x"(__c)
7914 : /* No clobbers */);
7915 return __result;
7916 }
7917
7918 __extension__ extern __inline int32x4_t
7919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_s32(int32x4_t __a,int32x4_t __b,int32_t __c)7920 vmlaq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
7921 {
7922 int32x4_t __result;
7923 __asm__ ("mla %0.4s,%2.4s,%3.s[0]"
7924 : "=w"(__result)
7925 : "0"(__a), "w"(__b), "w"(__c)
7926 : /* No clobbers */);
7927 return __result;
7928 }
7929
7930 __extension__ extern __inline uint16x8_t
7931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_u16(uint16x8_t __a,uint16x8_t __b,uint16_t __c)7932 vmlaq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
7933 {
7934 uint16x8_t __result;
7935 __asm__ ("mla %0.8h,%2.8h,%3.h[0]"
7936 : "=w"(__result)
7937 : "0"(__a), "w"(__b), "x"(__c)
7938 : /* No clobbers */);
7939 return __result;
7940 }
7941
7942 __extension__ extern __inline uint32x4_t
7943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_n_u32(uint32x4_t __a,uint32x4_t __b,uint32_t __c)7944 vmlaq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
7945 {
7946 uint32x4_t __result;
7947 __asm__ ("mla %0.4s,%2.4s,%3.s[0]"
7948 : "=w"(__result)
7949 : "0"(__a), "w"(__b), "w"(__c)
7950 : /* No clobbers */);
7951 return __result;
7952 }
7953
7954 __extension__ extern __inline int8x16_t
7955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_s8(int8x16_t __a,int8x16_t __b,int8x16_t __c)7956 vmlaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
7957 {
7958 int8x16_t __result;
7959 __asm__ ("mla %0.16b, %2.16b, %3.16b"
7960 : "=w"(__result)
7961 : "0"(__a), "w"(__b), "w"(__c)
7962 : /* No clobbers */);
7963 return __result;
7964 }
7965
7966 __extension__ extern __inline int16x8_t
7967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)7968 vmlaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
7969 {
7970 int16x8_t __result;
7971 __asm__ ("mla %0.8h, %2.8h, %3.8h"
7972 : "=w"(__result)
7973 : "0"(__a), "w"(__b), "w"(__c)
7974 : /* No clobbers */);
7975 return __result;
7976 }
7977
7978 __extension__ extern __inline int32x4_t
7979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)7980 vmlaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
7981 {
7982 int32x4_t __result;
7983 __asm__ ("mla %0.4s, %2.4s, %3.4s"
7984 : "=w"(__result)
7985 : "0"(__a), "w"(__b), "w"(__c)
7986 : /* No clobbers */);
7987 return __result;
7988 }
7989
7990 __extension__ extern __inline uint8x16_t
7991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)7992 vmlaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
7993 {
7994 uint8x16_t __result;
7995 __asm__ ("mla %0.16b, %2.16b, %3.16b"
7996 : "=w"(__result)
7997 : "0"(__a), "w"(__b), "w"(__c)
7998 : /* No clobbers */);
7999 return __result;
8000 }
8001
8002 __extension__ extern __inline uint16x8_t
8003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)8004 vmlaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
8005 {
8006 uint16x8_t __result;
8007 __asm__ ("mla %0.8h, %2.8h, %3.8h"
8008 : "=w"(__result)
8009 : "0"(__a), "w"(__b), "w"(__c)
8010 : /* No clobbers */);
8011 return __result;
8012 }
8013
8014 __extension__ extern __inline uint32x4_t
8015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)8016 vmlaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
8017 {
8018 uint32x4_t __result;
8019 __asm__ ("mla %0.4s, %2.4s, %3.4s"
8020 : "=w"(__result)
8021 : "0"(__a), "w"(__b), "w"(__c)
8022 : /* No clobbers */);
8023 return __result;
8024 }
8025
8026 __extension__ extern __inline float32x2_t
8027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_f32(float32x2_t __a,float32x2_t __b,float32_t __c)8028 vmls_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
8029 {
8030 float32x2_t __result;
8031 float32x2_t __t1;
8032 __asm__ ("fmul %1.2s, %3.2s, %4.s[0]; fsub %0.2s, %0.2s, %1.2s"
8033 : "=w"(__result), "=w"(__t1)
8034 : "0"(__a), "w"(__b), "w"(__c)
8035 : /* No clobbers */);
8036 return __result;
8037 }
8038
8039 __extension__ extern __inline int16x4_t
8040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_s16(int16x4_t __a,int16x4_t __b,int16_t __c)8041 vmls_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c)
8042 {
8043 int16x4_t __result;
8044 __asm__ ("mls %0.4h, %2.4h, %3.h[0]"
8045 : "=w"(__result)
8046 : "0"(__a), "w"(__b), "x"(__c)
8047 : /* No clobbers */);
8048 return __result;
8049 }
8050
8051 __extension__ extern __inline int32x2_t
8052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_s32(int32x2_t __a,int32x2_t __b,int32_t __c)8053 vmls_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c)
8054 {
8055 int32x2_t __result;
8056 __asm__ ("mls %0.2s, %2.2s, %3.s[0]"
8057 : "=w"(__result)
8058 : "0"(__a), "w"(__b), "w"(__c)
8059 : /* No clobbers */);
8060 return __result;
8061 }
8062
8063 __extension__ extern __inline uint16x4_t
8064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_u16(uint16x4_t __a,uint16x4_t __b,uint16_t __c)8065 vmls_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c)
8066 {
8067 uint16x4_t __result;
8068 __asm__ ("mls %0.4h, %2.4h, %3.h[0]"
8069 : "=w"(__result)
8070 : "0"(__a), "w"(__b), "x"(__c)
8071 : /* No clobbers */);
8072 return __result;
8073 }
8074
8075 __extension__ extern __inline uint32x2_t
8076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_n_u32(uint32x2_t __a,uint32x2_t __b,uint32_t __c)8077 vmls_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c)
8078 {
8079 uint32x2_t __result;
8080 __asm__ ("mls %0.2s, %2.2s, %3.s[0]"
8081 : "=w"(__result)
8082 : "0"(__a), "w"(__b), "w"(__c)
8083 : /* No clobbers */);
8084 return __result;
8085 }
8086
8087 __extension__ extern __inline int8x8_t
8088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_s8(int8x8_t __a,int8x8_t __b,int8x8_t __c)8089 vmls_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c)
8090 {
8091 int8x8_t __result;
8092 __asm__ ("mls %0.8b,%2.8b,%3.8b"
8093 : "=w"(__result)
8094 : "0"(__a), "w"(__b), "w"(__c)
8095 : /* No clobbers */);
8096 return __result;
8097 }
8098
8099 __extension__ extern __inline int16x4_t
8100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)8101 vmls_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
8102 {
8103 int16x4_t __result;
8104 __asm__ ("mls %0.4h,%2.4h,%3.4h"
8105 : "=w"(__result)
8106 : "0"(__a), "w"(__b), "w"(__c)
8107 : /* No clobbers */);
8108 return __result;
8109 }
8110
8111 __extension__ extern __inline int32x2_t
8112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)8113 vmls_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
8114 {
8115 int32x2_t __result;
8116 __asm__ ("mls %0.2s,%2.2s,%3.2s"
8117 : "=w"(__result)
8118 : "0"(__a), "w"(__b), "w"(__c)
8119 : /* No clobbers */);
8120 return __result;
8121 }
8122
8123 __extension__ extern __inline uint8x8_t
8124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_u8(uint8x8_t __a,uint8x8_t __b,uint8x8_t __c)8125 vmls_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
8126 {
8127 uint8x8_t __result;
8128 __asm__ ("mls %0.8b,%2.8b,%3.8b"
8129 : "=w"(__result)
8130 : "0"(__a), "w"(__b), "w"(__c)
8131 : /* No clobbers */);
8132 return __result;
8133 }
8134
8135 __extension__ extern __inline uint16x4_t
8136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c)8137 vmls_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
8138 {
8139 uint16x4_t __result;
8140 __asm__ ("mls %0.4h,%2.4h,%3.4h"
8141 : "=w"(__result)
8142 : "0"(__a), "w"(__b), "w"(__c)
8143 : /* No clobbers */);
8144 return __result;
8145 }
8146
8147 __extension__ extern __inline uint32x2_t
8148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c)8149 vmls_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
8150 {
8151 uint32x2_t __result;
8152 __asm__ ("mls %0.2s,%2.2s,%3.2s"
8153 : "=w"(__result)
8154 : "0"(__a), "w"(__b), "w"(__c)
8155 : /* No clobbers */);
8156 return __result;
8157 }
8158
8159 #define vmlsl_high_lane_s16(a, b, c, d) \
8160 __extension__ \
8161 ({ \
8162 int16x4_t c_ = (c); \
8163 int16x8_t b_ = (b); \
8164 int32x4_t a_ = (a); \
8165 int32x4_t result; \
8166 __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[%4]" \
8167 : "=w"(result) \
8168 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8169 : /* No clobbers */); \
8170 result; \
8171 })
8172
8173 #define vmlsl_high_lane_s32(a, b, c, d) \
8174 __extension__ \
8175 ({ \
8176 int32x2_t c_ = (c); \
8177 int32x4_t b_ = (b); \
8178 int64x2_t a_ = (a); \
8179 int64x2_t result; \
8180 __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[%4]" \
8181 : "=w"(result) \
8182 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8183 : /* No clobbers */); \
8184 result; \
8185 })
8186
8187 #define vmlsl_high_lane_u16(a, b, c, d) \
8188 __extension__ \
8189 ({ \
8190 uint16x4_t c_ = (c); \
8191 uint16x8_t b_ = (b); \
8192 uint32x4_t a_ = (a); \
8193 uint32x4_t result; \
8194 __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[%4]" \
8195 : "=w"(result) \
8196 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8197 : /* No clobbers */); \
8198 result; \
8199 })
8200
8201 #define vmlsl_high_lane_u32(a, b, c, d) \
8202 __extension__ \
8203 ({ \
8204 uint32x2_t c_ = (c); \
8205 uint32x4_t b_ = (b); \
8206 uint64x2_t a_ = (a); \
8207 uint64x2_t result; \
8208 __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[%4]" \
8209 : "=w"(result) \
8210 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8211 : /* No clobbers */); \
8212 result; \
8213 })
8214
8215 #define vmlsl_high_laneq_s16(a, b, c, d) \
8216 __extension__ \
8217 ({ \
8218 int16x8_t c_ = (c); \
8219 int16x8_t b_ = (b); \
8220 int32x4_t a_ = (a); \
8221 int32x4_t result; \
8222 __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[%4]" \
8223 : "=w"(result) \
8224 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8225 : /* No clobbers */); \
8226 result; \
8227 })
8228
8229 #define vmlsl_high_laneq_s32(a, b, c, d) \
8230 __extension__ \
8231 ({ \
8232 int32x4_t c_ = (c); \
8233 int32x4_t b_ = (b); \
8234 int64x2_t a_ = (a); \
8235 int64x2_t result; \
8236 __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[%4]" \
8237 : "=w"(result) \
8238 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8239 : /* No clobbers */); \
8240 result; \
8241 })
8242
8243 #define vmlsl_high_laneq_u16(a, b, c, d) \
8244 __extension__ \
8245 ({ \
8246 uint16x8_t c_ = (c); \
8247 uint16x8_t b_ = (b); \
8248 uint32x4_t a_ = (a); \
8249 uint32x4_t result; \
8250 __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[%4]" \
8251 : "=w"(result) \
8252 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8253 : /* No clobbers */); \
8254 result; \
8255 })
8256
8257 #define vmlsl_high_laneq_u32(a, b, c, d) \
8258 __extension__ \
8259 ({ \
8260 uint32x4_t c_ = (c); \
8261 uint32x4_t b_ = (b); \
8262 uint64x2_t a_ = (a); \
8263 uint64x2_t result; \
8264 __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[%4]" \
8265 : "=w"(result) \
8266 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8267 : /* No clobbers */); \
8268 result; \
8269 })
8270
8271 __extension__ extern __inline int32x4_t
8272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_n_s16(int32x4_t __a,int16x8_t __b,int16_t __c)8273 vmlsl_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
8274 {
8275 int32x4_t __result;
8276 __asm__ ("smlsl2 %0.4s, %2.8h, %3.h[0]"
8277 : "=w"(__result)
8278 : "0"(__a), "w"(__b), "x"(__c)
8279 : /* No clobbers */);
8280 return __result;
8281 }
8282
8283 __extension__ extern __inline int64x2_t
8284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_n_s32(int64x2_t __a,int32x4_t __b,int32_t __c)8285 vmlsl_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
8286 {
8287 int64x2_t __result;
8288 __asm__ ("smlsl2 %0.2d, %2.4s, %3.s[0]"
8289 : "=w"(__result)
8290 : "0"(__a), "w"(__b), "w"(__c)
8291 : /* No clobbers */);
8292 return __result;
8293 }
8294
8295 __extension__ extern __inline uint32x4_t
8296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_n_u16(uint32x4_t __a,uint16x8_t __b,uint16_t __c)8297 vmlsl_high_n_u16 (uint32x4_t __a, uint16x8_t __b, uint16_t __c)
8298 {
8299 uint32x4_t __result;
8300 __asm__ ("umlsl2 %0.4s, %2.8h, %3.h[0]"
8301 : "=w"(__result)
8302 : "0"(__a), "w"(__b), "x"(__c)
8303 : /* No clobbers */);
8304 return __result;
8305 }
8306
8307 __extension__ extern __inline uint64x2_t
8308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_n_u32(uint64x2_t __a,uint32x4_t __b,uint32_t __c)8309 vmlsl_high_n_u32 (uint64x2_t __a, uint32x4_t __b, uint32_t __c)
8310 {
8311 uint64x2_t __result;
8312 __asm__ ("umlsl2 %0.2d, %2.4s, %3.s[0]"
8313 : "=w"(__result)
8314 : "0"(__a), "w"(__b), "w"(__c)
8315 : /* No clobbers */);
8316 return __result;
8317 }
8318
8319 __extension__ extern __inline int16x8_t
8320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_s8(int16x8_t __a,int8x16_t __b,int8x16_t __c)8321 vmlsl_high_s8 (int16x8_t __a, int8x16_t __b, int8x16_t __c)
8322 {
8323 int16x8_t __result;
8324 __asm__ ("smlsl2 %0.8h,%2.16b,%3.16b"
8325 : "=w"(__result)
8326 : "0"(__a), "w"(__b), "w"(__c)
8327 : /* No clobbers */);
8328 return __result;
8329 }
8330
8331 __extension__ extern __inline int32x4_t
8332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_s16(int32x4_t __a,int16x8_t __b,int16x8_t __c)8333 vmlsl_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
8334 {
8335 int32x4_t __result;
8336 __asm__ ("smlsl2 %0.4s,%2.8h,%3.8h"
8337 : "=w"(__result)
8338 : "0"(__a), "w"(__b), "w"(__c)
8339 : /* No clobbers */);
8340 return __result;
8341 }
8342
8343 __extension__ extern __inline int64x2_t
8344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_s32(int64x2_t __a,int32x4_t __b,int32x4_t __c)8345 vmlsl_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
8346 {
8347 int64x2_t __result;
8348 __asm__ ("smlsl2 %0.2d,%2.4s,%3.4s"
8349 : "=w"(__result)
8350 : "0"(__a), "w"(__b), "w"(__c)
8351 : /* No clobbers */);
8352 return __result;
8353 }
8354
8355 __extension__ extern __inline uint16x8_t
8356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_u8(uint16x8_t __a,uint8x16_t __b,uint8x16_t __c)8357 vmlsl_high_u8 (uint16x8_t __a, uint8x16_t __b, uint8x16_t __c)
8358 {
8359 uint16x8_t __result;
8360 __asm__ ("umlsl2 %0.8h,%2.16b,%3.16b"
8361 : "=w"(__result)
8362 : "0"(__a), "w"(__b), "w"(__c)
8363 : /* No clobbers */);
8364 return __result;
8365 }
8366
8367 __extension__ extern __inline uint32x4_t
8368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_u16(uint32x4_t __a,uint16x8_t __b,uint16x8_t __c)8369 vmlsl_high_u16 (uint32x4_t __a, uint16x8_t __b, uint16x8_t __c)
8370 {
8371 uint32x4_t __result;
8372 __asm__ ("umlsl2 %0.4s,%2.8h,%3.8h"
8373 : "=w"(__result)
8374 : "0"(__a), "w"(__b), "w"(__c)
8375 : /* No clobbers */);
8376 return __result;
8377 }
8378
8379 __extension__ extern __inline uint64x2_t
8380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_high_u32(uint64x2_t __a,uint32x4_t __b,uint32x4_t __c)8381 vmlsl_high_u32 (uint64x2_t __a, uint32x4_t __b, uint32x4_t __c)
8382 {
8383 uint64x2_t __result;
8384 __asm__ ("umlsl2 %0.2d,%2.4s,%3.4s"
8385 : "=w"(__result)
8386 : "0"(__a), "w"(__b), "w"(__c)
8387 : /* No clobbers */);
8388 return __result;
8389 }
8390
8391 #define vmlsl_lane_s16(a, b, c, d) \
8392 __extension__ \
8393 ({ \
8394 int16x4_t c_ = (c); \
8395 int16x4_t b_ = (b); \
8396 int32x4_t a_ = (a); \
8397 int32x4_t result; \
8398 __asm__ ("smlsl %0.4s, %2.4h, %3.h[%4]" \
8399 : "=w"(result) \
8400 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8401 : /* No clobbers */); \
8402 result; \
8403 })
8404
8405 #define vmlsl_lane_s32(a, b, c, d) \
8406 __extension__ \
8407 ({ \
8408 int32x2_t c_ = (c); \
8409 int32x2_t b_ = (b); \
8410 int64x2_t a_ = (a); \
8411 int64x2_t result; \
8412 __asm__ ("smlsl %0.2d, %2.2s, %3.s[%4]" \
8413 : "=w"(result) \
8414 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8415 : /* No clobbers */); \
8416 result; \
8417 })
8418
8419 #define vmlsl_lane_u16(a, b, c, d) \
8420 __extension__ \
8421 ({ \
8422 uint16x4_t c_ = (c); \
8423 uint16x4_t b_ = (b); \
8424 uint32x4_t a_ = (a); \
8425 uint32x4_t result; \
8426 __asm__ ("umlsl %0.4s, %2.4h, %3.h[%4]" \
8427 : "=w"(result) \
8428 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8429 : /* No clobbers */); \
8430 result; \
8431 })
8432
8433 #define vmlsl_lane_u32(a, b, c, d) \
8434 __extension__ \
8435 ({ \
8436 uint32x2_t c_ = (c); \
8437 uint32x2_t b_ = (b); \
8438 uint64x2_t a_ = (a); \
8439 uint64x2_t result; \
8440 __asm__ ("umlsl %0.2d, %2.2s, %3.s[%4]" \
8441 : "=w"(result) \
8442 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8443 : /* No clobbers */); \
8444 result; \
8445 })
8446
8447 #define vmlsl_laneq_s16(a, b, c, d) \
8448 __extension__ \
8449 ({ \
8450 int16x8_t c_ = (c); \
8451 int16x4_t b_ = (b); \
8452 int32x4_t a_ = (a); \
8453 int32x4_t result; \
8454 __asm__ ("smlsl %0.4s, %2.4h, %3.h[%4]" \
8455 : "=w"(result) \
8456 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8457 : /* No clobbers */); \
8458 result; \
8459 })
8460
8461 #define vmlsl_laneq_s32(a, b, c, d) \
8462 __extension__ \
8463 ({ \
8464 int32x4_t c_ = (c); \
8465 int32x2_t b_ = (b); \
8466 int64x2_t a_ = (a); \
8467 int64x2_t result; \
8468 __asm__ ("smlsl %0.2d, %2.2s, %3.s[%4]" \
8469 : "=w"(result) \
8470 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8471 : /* No clobbers */); \
8472 result; \
8473 })
8474
8475 #define vmlsl_laneq_u16(a, b, c, d) \
8476 __extension__ \
8477 ({ \
8478 uint16x8_t c_ = (c); \
8479 uint16x4_t b_ = (b); \
8480 uint32x4_t a_ = (a); \
8481 uint32x4_t result; \
8482 __asm__ ("umlsl %0.4s, %2.4h, %3.h[%4]" \
8483 : "=w"(result) \
8484 : "0"(a_), "w"(b_), "x"(c_), "i"(d) \
8485 : /* No clobbers */); \
8486 result; \
8487 })
8488
8489 #define vmlsl_laneq_u32(a, b, c, d) \
8490 __extension__ \
8491 ({ \
8492 uint32x4_t c_ = (c); \
8493 uint32x2_t b_ = (b); \
8494 uint64x2_t a_ = (a); \
8495 uint64x2_t result; \
8496 __asm__ ("umlsl %0.2d, %2.2s, %3.s[%4]" \
8497 : "=w"(result) \
8498 : "0"(a_), "w"(b_), "w"(c_), "i"(d) \
8499 : /* No clobbers */); \
8500 result; \
8501 })
8502
8503 __extension__ extern __inline int32x4_t
8504 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_n_s16(int32x4_t __a,int16x4_t __b,int16_t __c)8505 vmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
8506 {
8507 int32x4_t __result;
8508 __asm__ ("smlsl %0.4s, %2.4h, %3.h[0]"
8509 : "=w"(__result)
8510 : "0"(__a), "w"(__b), "x"(__c)
8511 : /* No clobbers */);
8512 return __result;
8513 }
8514
8515 __extension__ extern __inline int64x2_t
8516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_n_s32(int64x2_t __a,int32x2_t __b,int32_t __c)8517 vmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
8518 {
8519 int64x2_t __result;
8520 __asm__ ("smlsl %0.2d, %2.2s, %3.s[0]"
8521 : "=w"(__result)
8522 : "0"(__a), "w"(__b), "w"(__c)
8523 : /* No clobbers */);
8524 return __result;
8525 }
8526
8527 __extension__ extern __inline uint32x4_t
8528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_n_u16(uint32x4_t __a,uint16x4_t __b,uint16_t __c)8529 vmlsl_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c)
8530 {
8531 uint32x4_t __result;
8532 __asm__ ("umlsl %0.4s, %2.4h, %3.h[0]"
8533 : "=w"(__result)
8534 : "0"(__a), "w"(__b), "x"(__c)
8535 : /* No clobbers */);
8536 return __result;
8537 }
8538
8539 __extension__ extern __inline uint64x2_t
8540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_n_u32(uint64x2_t __a,uint32x2_t __b,uint32_t __c)8541 vmlsl_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c)
8542 {
8543 uint64x2_t __result;
8544 __asm__ ("umlsl %0.2d, %2.2s, %3.s[0]"
8545 : "=w"(__result)
8546 : "0"(__a), "w"(__b), "w"(__c)
8547 : /* No clobbers */);
8548 return __result;
8549 }
8550
8551 __extension__ extern __inline int16x8_t
8552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_s8(int16x8_t __a,int8x8_t __b,int8x8_t __c)8553 vmlsl_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c)
8554 {
8555 int16x8_t __result;
8556 __asm__ ("smlsl %0.8h, %2.8b, %3.8b"
8557 : "=w"(__result)
8558 : "0"(__a), "w"(__b), "w"(__c)
8559 : /* No clobbers */);
8560 return __result;
8561 }
8562
8563 __extension__ extern __inline int32x4_t
8564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)8565 vmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
8566 {
8567 int32x4_t __result;
8568 __asm__ ("smlsl %0.4s, %2.4h, %3.4h"
8569 : "=w"(__result)
8570 : "0"(__a), "w"(__b), "w"(__c)
8571 : /* No clobbers */);
8572 return __result;
8573 }
8574
8575 __extension__ extern __inline int64x2_t
8576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)8577 vmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
8578 {
8579 int64x2_t __result;
8580 __asm__ ("smlsl %0.2d, %2.2s, %3.2s"
8581 : "=w"(__result)
8582 : "0"(__a), "w"(__b), "w"(__c)
8583 : /* No clobbers */);
8584 return __result;
8585 }
8586
8587 __extension__ extern __inline uint16x8_t
8588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_u8(uint16x8_t __a,uint8x8_t __b,uint8x8_t __c)8589 vmlsl_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c)
8590 {
8591 uint16x8_t __result;
8592 __asm__ ("umlsl %0.8h, %2.8b, %3.8b"
8593 : "=w"(__result)
8594 : "0"(__a), "w"(__b), "w"(__c)
8595 : /* No clobbers */);
8596 return __result;
8597 }
8598
8599 __extension__ extern __inline uint32x4_t
8600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_u16(uint32x4_t __a,uint16x4_t __b,uint16x4_t __c)8601 vmlsl_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c)
8602 {
8603 uint32x4_t __result;
8604 __asm__ ("umlsl %0.4s, %2.4h, %3.4h"
8605 : "=w"(__result)
8606 : "0"(__a), "w"(__b), "w"(__c)
8607 : /* No clobbers */);
8608 return __result;
8609 }
8610
8611 __extension__ extern __inline uint64x2_t
8612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsl_u32(uint64x2_t __a,uint32x2_t __b,uint32x2_t __c)8613 vmlsl_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c)
8614 {
8615 uint64x2_t __result;
8616 __asm__ ("umlsl %0.2d, %2.2s, %3.2s"
8617 : "=w"(__result)
8618 : "0"(__a), "w"(__b), "w"(__c)
8619 : /* No clobbers */);
8620 return __result;
8621 }
8622
8623 __extension__ extern __inline float32x4_t
8624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_f32(float32x4_t __a,float32x4_t __b,float32_t __c)8625 vmlsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
8626 {
8627 float32x4_t __result;
8628 float32x4_t __t1;
8629 __asm__ ("fmul %1.4s, %3.4s, %4.s[0]; fsub %0.4s, %0.4s, %1.4s"
8630 : "=w"(__result), "=w"(__t1)
8631 : "0"(__a), "w"(__b), "w"(__c)
8632 : /* No clobbers */);
8633 return __result;
8634 }
8635
8636 __extension__ extern __inline int16x8_t
8637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_s16(int16x8_t __a,int16x8_t __b,int16_t __c)8638 vmlsq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c)
8639 {
8640 int16x8_t __result;
8641 __asm__ ("mls %0.8h, %2.8h, %3.h[0]"
8642 : "=w"(__result)
8643 : "0"(__a), "w"(__b), "x"(__c)
8644 : /* No clobbers */);
8645 return __result;
8646 }
8647
8648 __extension__ extern __inline int32x4_t
8649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_s32(int32x4_t __a,int32x4_t __b,int32_t __c)8650 vmlsq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c)
8651 {
8652 int32x4_t __result;
8653 __asm__ ("mls %0.4s, %2.4s, %3.s[0]"
8654 : "=w"(__result)
8655 : "0"(__a), "w"(__b), "w"(__c)
8656 : /* No clobbers */);
8657 return __result;
8658 }
8659
8660 __extension__ extern __inline uint16x8_t
8661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_u16(uint16x8_t __a,uint16x8_t __b,uint16_t __c)8662 vmlsq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c)
8663 {
8664 uint16x8_t __result;
8665 __asm__ ("mls %0.8h, %2.8h, %3.h[0]"
8666 : "=w"(__result)
8667 : "0"(__a), "w"(__b), "x"(__c)
8668 : /* No clobbers */);
8669 return __result;
8670 }
8671
8672 __extension__ extern __inline uint32x4_t
8673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_n_u32(uint32x4_t __a,uint32x4_t __b,uint32_t __c)8674 vmlsq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c)
8675 {
8676 uint32x4_t __result;
8677 __asm__ ("mls %0.4s, %2.4s, %3.s[0]"
8678 : "=w"(__result)
8679 : "0"(__a), "w"(__b), "w"(__c)
8680 : /* No clobbers */);
8681 return __result;
8682 }
8683
8684 __extension__ extern __inline int8x16_t
8685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_s8(int8x16_t __a,int8x16_t __b,int8x16_t __c)8686 vmlsq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
8687 {
8688 int8x16_t __result;
8689 __asm__ ("mls %0.16b,%2.16b,%3.16b"
8690 : "=w"(__result)
8691 : "0"(__a), "w"(__b), "w"(__c)
8692 : /* No clobbers */);
8693 return __result;
8694 }
8695
8696 __extension__ extern __inline int16x8_t
8697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)8698 vmlsq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
8699 {
8700 int16x8_t __result;
8701 __asm__ ("mls %0.8h,%2.8h,%3.8h"
8702 : "=w"(__result)
8703 : "0"(__a), "w"(__b), "w"(__c)
8704 : /* No clobbers */);
8705 return __result;
8706 }
8707
8708 __extension__ extern __inline int32x4_t
8709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)8710 vmlsq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
8711 {
8712 int32x4_t __result;
8713 __asm__ ("mls %0.4s,%2.4s,%3.4s"
8714 : "=w"(__result)
8715 : "0"(__a), "w"(__b), "w"(__c)
8716 : /* No clobbers */);
8717 return __result;
8718 }
8719
8720 __extension__ extern __inline uint8x16_t
8721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)8722 vmlsq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
8723 {
8724 uint8x16_t __result;
8725 __asm__ ("mls %0.16b,%2.16b,%3.16b"
8726 : "=w"(__result)
8727 : "0"(__a), "w"(__b), "w"(__c)
8728 : /* No clobbers */);
8729 return __result;
8730 }
8731
8732 __extension__ extern __inline uint16x8_t
8733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)8734 vmlsq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
8735 {
8736 uint16x8_t __result;
8737 __asm__ ("mls %0.8h,%2.8h,%3.8h"
8738 : "=w"(__result)
8739 : "0"(__a), "w"(__b), "w"(__c)
8740 : /* No clobbers */);
8741 return __result;
8742 }
8743
8744 __extension__ extern __inline uint32x4_t
8745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)8746 vmlsq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
8747 {
8748 uint32x4_t __result;
8749 __asm__ ("mls %0.4s,%2.4s,%3.4s"
8750 : "=w"(__result)
8751 : "0"(__a), "w"(__b), "w"(__c)
8752 : /* No clobbers */);
8753 return __result;
8754 }
8755
8756 __extension__ extern __inline int16x8_t
8757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_s8(int8x16_t __a)8758 vmovl_high_s8 (int8x16_t __a)
8759 {
8760 int16x8_t __result;
8761 __asm__ ("sshll2 %0.8h,%1.16b,#0"
8762 : "=w"(__result)
8763 : "w"(__a)
8764 : /* No clobbers */);
8765 return __result;
8766 }
8767
8768 __extension__ extern __inline int32x4_t
8769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_s16(int16x8_t __a)8770 vmovl_high_s16 (int16x8_t __a)
8771 {
8772 int32x4_t __result;
8773 __asm__ ("sshll2 %0.4s,%1.8h,#0"
8774 : "=w"(__result)
8775 : "w"(__a)
8776 : /* No clobbers */);
8777 return __result;
8778 }
8779
8780 __extension__ extern __inline int64x2_t
8781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_s32(int32x4_t __a)8782 vmovl_high_s32 (int32x4_t __a)
8783 {
8784 int64x2_t __result;
8785 __asm__ ("sshll2 %0.2d,%1.4s,#0"
8786 : "=w"(__result)
8787 : "w"(__a)
8788 : /* No clobbers */);
8789 return __result;
8790 }
8791
8792 __extension__ extern __inline uint16x8_t
8793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_u8(uint8x16_t __a)8794 vmovl_high_u8 (uint8x16_t __a)
8795 {
8796 uint16x8_t __result;
8797 __asm__ ("ushll2 %0.8h,%1.16b,#0"
8798 : "=w"(__result)
8799 : "w"(__a)
8800 : /* No clobbers */);
8801 return __result;
8802 }
8803
8804 __extension__ extern __inline uint32x4_t
8805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_u16(uint16x8_t __a)8806 vmovl_high_u16 (uint16x8_t __a)
8807 {
8808 uint32x4_t __result;
8809 __asm__ ("ushll2 %0.4s,%1.8h,#0"
8810 : "=w"(__result)
8811 : "w"(__a)
8812 : /* No clobbers */);
8813 return __result;
8814 }
8815
8816 __extension__ extern __inline uint64x2_t
8817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_high_u32(uint32x4_t __a)8818 vmovl_high_u32 (uint32x4_t __a)
8819 {
8820 uint64x2_t __result;
8821 __asm__ ("ushll2 %0.2d,%1.4s,#0"
8822 : "=w"(__result)
8823 : "w"(__a)
8824 : /* No clobbers */);
8825 return __result;
8826 }
8827
8828 __extension__ extern __inline int16x8_t
8829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_s8(int8x8_t __a)8830 vmovl_s8 (int8x8_t __a)
8831 {
8832 int16x8_t __result;
8833 __asm__ ("sshll %0.8h,%1.8b,#0"
8834 : "=w"(__result)
8835 : "w"(__a)
8836 : /* No clobbers */);
8837 return __result;
8838 }
8839
8840 __extension__ extern __inline int32x4_t
8841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_s16(int16x4_t __a)8842 vmovl_s16 (int16x4_t __a)
8843 {
8844 int32x4_t __result;
8845 __asm__ ("sshll %0.4s,%1.4h,#0"
8846 : "=w"(__result)
8847 : "w"(__a)
8848 : /* No clobbers */);
8849 return __result;
8850 }
8851
8852 __extension__ extern __inline int64x2_t
8853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_s32(int32x2_t __a)8854 vmovl_s32 (int32x2_t __a)
8855 {
8856 int64x2_t __result;
8857 __asm__ ("sshll %0.2d,%1.2s,#0"
8858 : "=w"(__result)
8859 : "w"(__a)
8860 : /* No clobbers */);
8861 return __result;
8862 }
8863
8864 __extension__ extern __inline uint16x8_t
8865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_u8(uint8x8_t __a)8866 vmovl_u8 (uint8x8_t __a)
8867 {
8868 uint16x8_t __result;
8869 __asm__ ("ushll %0.8h,%1.8b,#0"
8870 : "=w"(__result)
8871 : "w"(__a)
8872 : /* No clobbers */);
8873 return __result;
8874 }
8875
8876 __extension__ extern __inline uint32x4_t
8877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_u16(uint16x4_t __a)8878 vmovl_u16 (uint16x4_t __a)
8879 {
8880 uint32x4_t __result;
8881 __asm__ ("ushll %0.4s,%1.4h,#0"
8882 : "=w"(__result)
8883 : "w"(__a)
8884 : /* No clobbers */);
8885 return __result;
8886 }
8887
8888 __extension__ extern __inline uint64x2_t
8889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovl_u32(uint32x2_t __a)8890 vmovl_u32 (uint32x2_t __a)
8891 {
8892 uint64x2_t __result;
8893 __asm__ ("ushll %0.2d,%1.2s,#0"
8894 : "=w"(__result)
8895 : "w"(__a)
8896 : /* No clobbers */);
8897 return __result;
8898 }
8899
8900 __extension__ extern __inline int8x16_t
8901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_s16(int8x8_t __a,int16x8_t __b)8902 vmovn_high_s16 (int8x8_t __a, int16x8_t __b)
8903 {
8904 int8x16_t __result = vcombine_s8 (__a, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
8905 __asm__ ("xtn2 %0.16b,%1.8h"
8906 : "+w"(__result)
8907 : "w"(__b)
8908 : /* No clobbers */);
8909 return __result;
8910 }
8911
8912 __extension__ extern __inline int16x8_t
8913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_s32(int16x4_t __a,int32x4_t __b)8914 vmovn_high_s32 (int16x4_t __a, int32x4_t __b)
8915 {
8916 int16x8_t __result = vcombine_s16 (__a, vcreate_s16 (__AARCH64_UINT64_C (0x0)));
8917 __asm__ ("xtn2 %0.8h,%1.4s"
8918 : "+w"(__result)
8919 : "w"(__b)
8920 : /* No clobbers */);
8921 return __result;
8922 }
8923
8924 __extension__ extern __inline int32x4_t
8925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_s64(int32x2_t __a,int64x2_t __b)8926 vmovn_high_s64 (int32x2_t __a, int64x2_t __b)
8927 {
8928 int32x4_t __result = vcombine_s32 (__a, vcreate_s32 (__AARCH64_UINT64_C (0x0)));
8929 __asm__ ("xtn2 %0.4s,%1.2d"
8930 : "+w"(__result)
8931 : "w"(__b)
8932 : /* No clobbers */);
8933 return __result;
8934 }
8935
8936 __extension__ extern __inline uint8x16_t
8937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_u16(uint8x8_t __a,uint16x8_t __b)8938 vmovn_high_u16 (uint8x8_t __a, uint16x8_t __b)
8939 {
8940 uint8x16_t __result = vcombine_u8 (__a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
8941 __asm__ ("xtn2 %0.16b,%1.8h"
8942 : "+w"(__result)
8943 : "w"(__b)
8944 : /* No clobbers */);
8945 return __result;
8946 }
8947
8948 __extension__ extern __inline uint16x8_t
8949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_u32(uint16x4_t __a,uint32x4_t __b)8950 vmovn_high_u32 (uint16x4_t __a, uint32x4_t __b)
8951 {
8952 uint16x8_t __result = vcombine_u16 (__a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
8953 __asm__ ("xtn2 %0.8h,%1.4s"
8954 : "+w"(__result)
8955 : "w"(__b)
8956 : /* No clobbers */);
8957 return __result;
8958 }
8959
8960 __extension__ extern __inline uint32x4_t
8961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_high_u64(uint32x2_t __a,uint64x2_t __b)8962 vmovn_high_u64 (uint32x2_t __a, uint64x2_t __b)
8963 {
8964 uint32x4_t __result = vcombine_u32 (__a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
8965 __asm__ ("xtn2 %0.4s,%1.2d"
8966 : "+w"(__result)
8967 : "w"(__b)
8968 : /* No clobbers */);
8969 return __result;
8970 }
8971
8972 __extension__ extern __inline int8x8_t
8973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_s16(int16x8_t __a)8974 vmovn_s16 (int16x8_t __a)
8975 {
8976 int8x8_t __result;
8977 __asm__ ("xtn %0.8b,%1.8h"
8978 : "=w"(__result)
8979 : "w"(__a)
8980 : /* No clobbers */);
8981 return __result;
8982 }
8983
8984 __extension__ extern __inline int16x4_t
8985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_s32(int32x4_t __a)8986 vmovn_s32 (int32x4_t __a)
8987 {
8988 int16x4_t __result;
8989 __asm__ ("xtn %0.4h,%1.4s"
8990 : "=w"(__result)
8991 : "w"(__a)
8992 : /* No clobbers */);
8993 return __result;
8994 }
8995
8996 __extension__ extern __inline int32x2_t
8997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_s64(int64x2_t __a)8998 vmovn_s64 (int64x2_t __a)
8999 {
9000 int32x2_t __result;
9001 __asm__ ("xtn %0.2s,%1.2d"
9002 : "=w"(__result)
9003 : "w"(__a)
9004 : /* No clobbers */);
9005 return __result;
9006 }
9007
9008 __extension__ extern __inline uint8x8_t
9009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_u16(uint16x8_t __a)9010 vmovn_u16 (uint16x8_t __a)
9011 {
9012 uint8x8_t __result;
9013 __asm__ ("xtn %0.8b,%1.8h"
9014 : "=w"(__result)
9015 : "w"(__a)
9016 : /* No clobbers */);
9017 return __result;
9018 }
9019
9020 __extension__ extern __inline uint16x4_t
9021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_u32(uint32x4_t __a)9022 vmovn_u32 (uint32x4_t __a)
9023 {
9024 uint16x4_t __result;
9025 __asm__ ("xtn %0.4h,%1.4s"
9026 : "=w"(__result)
9027 : "w"(__a)
9028 : /* No clobbers */);
9029 return __result;
9030 }
9031
9032 __extension__ extern __inline uint32x2_t
9033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovn_u64(uint64x2_t __a)9034 vmovn_u64 (uint64x2_t __a)
9035 {
9036 uint32x2_t __result;
9037 __asm__ ("xtn %0.2s,%1.2d"
9038 : "=w"(__result)
9039 : "w"(__a)
9040 : /* No clobbers */);
9041 return __result;
9042 }
9043
9044 #define vmull_high_lane_s16(a, b, c) \
9045 __extension__ \
9046 ({ \
9047 int16x4_t b_ = (b); \
9048 int16x8_t a_ = (a); \
9049 int32x4_t result; \
9050 __asm__ ("smull2 %0.4s, %1.8h, %2.h[%3]" \
9051 : "=w"(result) \
9052 : "w"(a_), "x"(b_), "i"(c) \
9053 : /* No clobbers */); \
9054 result; \
9055 })
9056
9057 #define vmull_high_lane_s32(a, b, c) \
9058 __extension__ \
9059 ({ \
9060 int32x2_t b_ = (b); \
9061 int32x4_t a_ = (a); \
9062 int64x2_t result; \
9063 __asm__ ("smull2 %0.2d, %1.4s, %2.s[%3]" \
9064 : "=w"(result) \
9065 : "w"(a_), "w"(b_), "i"(c) \
9066 : /* No clobbers */); \
9067 result; \
9068 })
9069
9070 #define vmull_high_lane_u16(a, b, c) \
9071 __extension__ \
9072 ({ \
9073 uint16x4_t b_ = (b); \
9074 uint16x8_t a_ = (a); \
9075 uint32x4_t result; \
9076 __asm__ ("umull2 %0.4s, %1.8h, %2.h[%3]" \
9077 : "=w"(result) \
9078 : "w"(a_), "x"(b_), "i"(c) \
9079 : /* No clobbers */); \
9080 result; \
9081 })
9082
9083 #define vmull_high_lane_u32(a, b, c) \
9084 __extension__ \
9085 ({ \
9086 uint32x2_t b_ = (b); \
9087 uint32x4_t a_ = (a); \
9088 uint64x2_t result; \
9089 __asm__ ("umull2 %0.2d, %1.4s, %2.s[%3]" \
9090 : "=w"(result) \
9091 : "w"(a_), "w"(b_), "i"(c) \
9092 : /* No clobbers */); \
9093 result; \
9094 })
9095
9096 #define vmull_high_laneq_s16(a, b, c) \
9097 __extension__ \
9098 ({ \
9099 int16x8_t b_ = (b); \
9100 int16x8_t a_ = (a); \
9101 int32x4_t result; \
9102 __asm__ ("smull2 %0.4s, %1.8h, %2.h[%3]" \
9103 : "=w"(result) \
9104 : "w"(a_), "x"(b_), "i"(c) \
9105 : /* No clobbers */); \
9106 result; \
9107 })
9108
9109 #define vmull_high_laneq_s32(a, b, c) \
9110 __extension__ \
9111 ({ \
9112 int32x4_t b_ = (b); \
9113 int32x4_t a_ = (a); \
9114 int64x2_t result; \
9115 __asm__ ("smull2 %0.2d, %1.4s, %2.s[%3]" \
9116 : "=w"(result) \
9117 : "w"(a_), "w"(b_), "i"(c) \
9118 : /* No clobbers */); \
9119 result; \
9120 })
9121
9122 #define vmull_high_laneq_u16(a, b, c) \
9123 __extension__ \
9124 ({ \
9125 uint16x8_t b_ = (b); \
9126 uint16x8_t a_ = (a); \
9127 uint32x4_t result; \
9128 __asm__ ("umull2 %0.4s, %1.8h, %2.h[%3]" \
9129 : "=w"(result) \
9130 : "w"(a_), "x"(b_), "i"(c) \
9131 : /* No clobbers */); \
9132 result; \
9133 })
9134
9135 #define vmull_high_laneq_u32(a, b, c) \
9136 __extension__ \
9137 ({ \
9138 uint32x4_t b_ = (b); \
9139 uint32x4_t a_ = (a); \
9140 uint64x2_t result; \
9141 __asm__ ("umull2 %0.2d, %1.4s, %2.s[%3]" \
9142 : "=w"(result) \
9143 : "w"(a_), "w"(b_), "i"(c) \
9144 : /* No clobbers */); \
9145 result; \
9146 })
9147
9148 __extension__ extern __inline int32x4_t
9149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_n_s16(int16x8_t __a,int16_t __b)9150 vmull_high_n_s16 (int16x8_t __a, int16_t __b)
9151 {
9152 int32x4_t __result;
9153 __asm__ ("smull2 %0.4s,%1.8h,%2.h[0]"
9154 : "=w"(__result)
9155 : "w"(__a), "x"(__b)
9156 : /* No clobbers */);
9157 return __result;
9158 }
9159
9160 __extension__ extern __inline int64x2_t
9161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_n_s32(int32x4_t __a,int32_t __b)9162 vmull_high_n_s32 (int32x4_t __a, int32_t __b)
9163 {
9164 int64x2_t __result;
9165 __asm__ ("smull2 %0.2d,%1.4s,%2.s[0]"
9166 : "=w"(__result)
9167 : "w"(__a), "w"(__b)
9168 : /* No clobbers */);
9169 return __result;
9170 }
9171
9172 __extension__ extern __inline uint32x4_t
9173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_n_u16(uint16x8_t __a,uint16_t __b)9174 vmull_high_n_u16 (uint16x8_t __a, uint16_t __b)
9175 {
9176 uint32x4_t __result;
9177 __asm__ ("umull2 %0.4s,%1.8h,%2.h[0]"
9178 : "=w"(__result)
9179 : "w"(__a), "x"(__b)
9180 : /* No clobbers */);
9181 return __result;
9182 }
9183
9184 __extension__ extern __inline uint64x2_t
9185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_n_u32(uint32x4_t __a,uint32_t __b)9186 vmull_high_n_u32 (uint32x4_t __a, uint32_t __b)
9187 {
9188 uint64x2_t __result;
9189 __asm__ ("umull2 %0.2d,%1.4s,%2.s[0]"
9190 : "=w"(__result)
9191 : "w"(__a), "w"(__b)
9192 : /* No clobbers */);
9193 return __result;
9194 }
9195
9196 __extension__ extern __inline poly16x8_t
9197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_p8(poly8x16_t __a,poly8x16_t __b)9198 vmull_high_p8 (poly8x16_t __a, poly8x16_t __b)
9199 {
9200 poly16x8_t __result;
9201 __asm__ ("pmull2 %0.8h,%1.16b,%2.16b"
9202 : "=w"(__result)
9203 : "w"(__a), "w"(__b)
9204 : /* No clobbers */);
9205 return __result;
9206 }
9207
9208 __extension__ extern __inline int16x8_t
9209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_s8(int8x16_t __a,int8x16_t __b)9210 vmull_high_s8 (int8x16_t __a, int8x16_t __b)
9211 {
9212 return __builtin_aarch64_vec_widen_smult_hi_v16qi (__a, __b);
9213 }
9214
9215 __extension__ extern __inline int32x4_t
9216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_s16(int16x8_t __a,int16x8_t __b)9217 vmull_high_s16 (int16x8_t __a, int16x8_t __b)
9218 {
9219 return __builtin_aarch64_vec_widen_smult_hi_v8hi (__a, __b);
9220 }
9221
9222 __extension__ extern __inline int64x2_t
9223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_s32(int32x4_t __a,int32x4_t __b)9224 vmull_high_s32 (int32x4_t __a, int32x4_t __b)
9225 {
9226 return __builtin_aarch64_vec_widen_smult_hi_v4si (__a, __b);
9227 }
9228
9229 __extension__ extern __inline uint16x8_t
9230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_u8(uint8x16_t __a,uint8x16_t __b)9231 vmull_high_u8 (uint8x16_t __a, uint8x16_t __b)
9232 {
9233 return __builtin_aarch64_vec_widen_umult_hi_v16qi_uuu (__a, __b);
9234 }
9235
9236 __extension__ extern __inline uint32x4_t
9237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_u16(uint16x8_t __a,uint16x8_t __b)9238 vmull_high_u16 (uint16x8_t __a, uint16x8_t __b)
9239 {
9240 return __builtin_aarch64_vec_widen_umult_hi_v8hi_uuu (__a, __b);
9241 }
9242
9243 __extension__ extern __inline uint64x2_t
9244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_u32(uint32x4_t __a,uint32x4_t __b)9245 vmull_high_u32 (uint32x4_t __a, uint32x4_t __b)
9246 {
9247 return __builtin_aarch64_vec_widen_umult_hi_v4si_uuu (__a, __b);
9248 }
9249
9250 __extension__ extern __inline int32x4_t
9251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)9252 vmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
9253 {
9254 return __builtin_aarch64_vec_smult_lane_v4hi (__a, __b, __c);
9255 }
9256
9257 __extension__ extern __inline int64x2_t
9258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)9259 vmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
9260 {
9261 return __builtin_aarch64_vec_smult_lane_v2si (__a, __b, __c);
9262 }
9263
9264 __extension__ extern __inline uint32x4_t
9265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_lane_u16(uint16x4_t __a,uint16x4_t __b,const int __c)9266 vmull_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
9267 {
9268 return __builtin_aarch64_vec_umult_lane_v4hi_uuus (__a, __b, __c);
9269 }
9270
9271 __extension__ extern __inline uint64x2_t
9272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_lane_u32(uint32x2_t __a,uint32x2_t __b,const int __c)9273 vmull_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
9274 {
9275 return __builtin_aarch64_vec_umult_lane_v2si_uuus (__a, __b, __c);
9276 }
9277
9278 __extension__ extern __inline int32x4_t
9279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_laneq_s16(int16x4_t __a,int16x8_t __b,const int __c)9280 vmull_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
9281 {
9282 return __builtin_aarch64_vec_smult_laneq_v4hi (__a, __b, __c);
9283 }
9284
9285 __extension__ extern __inline int64x2_t
9286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_laneq_s32(int32x2_t __a,int32x4_t __b,const int __c)9287 vmull_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
9288 {
9289 return __builtin_aarch64_vec_smult_laneq_v2si (__a, __b, __c);
9290 }
9291
9292 __extension__ extern __inline uint32x4_t
9293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_laneq_u16(uint16x4_t __a,uint16x8_t __b,const int __c)9294 vmull_laneq_u16 (uint16x4_t __a, uint16x8_t __b, const int __c)
9295 {
9296 return __builtin_aarch64_vec_umult_laneq_v4hi_uuus (__a, __b, __c);
9297 }
9298
9299 __extension__ extern __inline uint64x2_t
9300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_laneq_u32(uint32x2_t __a,uint32x4_t __b,const int __c)9301 vmull_laneq_u32 (uint32x2_t __a, uint32x4_t __b, const int __c)
9302 {
9303 return __builtin_aarch64_vec_umult_laneq_v2si_uuus (__a, __b, __c);
9304 }
9305
9306 __extension__ extern __inline int32x4_t
9307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_n_s16(int16x4_t __a,int16_t __b)9308 vmull_n_s16 (int16x4_t __a, int16_t __b)
9309 {
9310 int32x4_t __result;
9311 __asm__ ("smull %0.4s,%1.4h,%2.h[0]"
9312 : "=w"(__result)
9313 : "w"(__a), "x"(__b)
9314 : /* No clobbers */);
9315 return __result;
9316 }
9317
9318 __extension__ extern __inline int64x2_t
9319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_n_s32(int32x2_t __a,int32_t __b)9320 vmull_n_s32 (int32x2_t __a, int32_t __b)
9321 {
9322 int64x2_t __result;
9323 __asm__ ("smull %0.2d,%1.2s,%2.s[0]"
9324 : "=w"(__result)
9325 : "w"(__a), "w"(__b)
9326 : /* No clobbers */);
9327 return __result;
9328 }
9329
9330 __extension__ extern __inline uint32x4_t
9331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_n_u16(uint16x4_t __a,uint16_t __b)9332 vmull_n_u16 (uint16x4_t __a, uint16_t __b)
9333 {
9334 uint32x4_t __result;
9335 __asm__ ("umull %0.4s,%1.4h,%2.h[0]"
9336 : "=w"(__result)
9337 : "w"(__a), "x"(__b)
9338 : /* No clobbers */);
9339 return __result;
9340 }
9341
9342 __extension__ extern __inline uint64x2_t
9343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_n_u32(uint32x2_t __a,uint32_t __b)9344 vmull_n_u32 (uint32x2_t __a, uint32_t __b)
9345 {
9346 uint64x2_t __result;
9347 __asm__ ("umull %0.2d,%1.2s,%2.s[0]"
9348 : "=w"(__result)
9349 : "w"(__a), "w"(__b)
9350 : /* No clobbers */);
9351 return __result;
9352 }
9353
9354 __extension__ extern __inline poly16x8_t
9355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_p8(poly8x8_t __a,poly8x8_t __b)9356 vmull_p8 (poly8x8_t __a, poly8x8_t __b)
9357 {
9358 poly16x8_t __result;
9359 __asm__ ("pmull %0.8h, %1.8b, %2.8b"
9360 : "=w"(__result)
9361 : "w"(__a), "w"(__b)
9362 : /* No clobbers */);
9363 return __result;
9364 }
9365
9366 __extension__ extern __inline int16x8_t
9367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_s8(int8x8_t __a,int8x8_t __b)9368 vmull_s8 (int8x8_t __a, int8x8_t __b)
9369 {
9370 return __builtin_aarch64_intrinsic_vec_smult_lo_v8qi (__a, __b);
9371 }
9372
9373 __extension__ extern __inline int32x4_t
9374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_s16(int16x4_t __a,int16x4_t __b)9375 vmull_s16 (int16x4_t __a, int16x4_t __b)
9376 {
9377 return __builtin_aarch64_intrinsic_vec_smult_lo_v4hi (__a, __b);
9378 }
9379
9380 __extension__ extern __inline int64x2_t
9381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_s32(int32x2_t __a,int32x2_t __b)9382 vmull_s32 (int32x2_t __a, int32x2_t __b)
9383 {
9384 return __builtin_aarch64_intrinsic_vec_smult_lo_v2si (__a, __b);
9385 }
9386
9387 __extension__ extern __inline uint16x8_t
9388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_u8(uint8x8_t __a,uint8x8_t __b)9389 vmull_u8 (uint8x8_t __a, uint8x8_t __b)
9390 {
9391 return __builtin_aarch64_intrinsic_vec_umult_lo_v8qi_uuu (__a, __b);
9392 }
9393
9394 __extension__ extern __inline uint32x4_t
9395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_u16(uint16x4_t __a,uint16x4_t __b)9396 vmull_u16 (uint16x4_t __a, uint16x4_t __b)
9397 {
9398 return __builtin_aarch64_intrinsic_vec_umult_lo_v4hi_uuu (__a, __b);
9399 }
9400
9401 __extension__ extern __inline uint64x2_t
9402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_u32(uint32x2_t __a,uint32x2_t __b)9403 vmull_u32 (uint32x2_t __a, uint32x2_t __b)
9404 {
9405 return __builtin_aarch64_intrinsic_vec_umult_lo_v2si_uuu (__a, __b);
9406 }
9407
9408 __extension__ extern __inline int16x4_t
9409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_s8(int16x4_t __a,int8x8_t __b)9410 vpadal_s8 (int16x4_t __a, int8x8_t __b)
9411 {
9412 int16x4_t __result;
9413 __asm__ ("sadalp %0.4h,%2.8b"
9414 : "=w"(__result)
9415 : "0"(__a), "w"(__b)
9416 : /* No clobbers */);
9417 return __result;
9418 }
9419
9420 __extension__ extern __inline int32x2_t
9421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_s16(int32x2_t __a,int16x4_t __b)9422 vpadal_s16 (int32x2_t __a, int16x4_t __b)
9423 {
9424 int32x2_t __result;
9425 __asm__ ("sadalp %0.2s,%2.4h"
9426 : "=w"(__result)
9427 : "0"(__a), "w"(__b)
9428 : /* No clobbers */);
9429 return __result;
9430 }
9431
9432 __extension__ extern __inline int64x1_t
9433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_s32(int64x1_t __a,int32x2_t __b)9434 vpadal_s32 (int64x1_t __a, int32x2_t __b)
9435 {
9436 int64x1_t __result;
9437 __asm__ ("sadalp %0.1d,%2.2s"
9438 : "=w"(__result)
9439 : "0"(__a), "w"(__b)
9440 : /* No clobbers */);
9441 return __result;
9442 }
9443
9444 __extension__ extern __inline uint16x4_t
9445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_u8(uint16x4_t __a,uint8x8_t __b)9446 vpadal_u8 (uint16x4_t __a, uint8x8_t __b)
9447 {
9448 uint16x4_t __result;
9449 __asm__ ("uadalp %0.4h,%2.8b"
9450 : "=w"(__result)
9451 : "0"(__a), "w"(__b)
9452 : /* No clobbers */);
9453 return __result;
9454 }
9455
9456 __extension__ extern __inline uint32x2_t
9457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_u16(uint32x2_t __a,uint16x4_t __b)9458 vpadal_u16 (uint32x2_t __a, uint16x4_t __b)
9459 {
9460 uint32x2_t __result;
9461 __asm__ ("uadalp %0.2s,%2.4h"
9462 : "=w"(__result)
9463 : "0"(__a), "w"(__b)
9464 : /* No clobbers */);
9465 return __result;
9466 }
9467
9468 __extension__ extern __inline uint64x1_t
9469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadal_u32(uint64x1_t __a,uint32x2_t __b)9470 vpadal_u32 (uint64x1_t __a, uint32x2_t __b)
9471 {
9472 uint64x1_t __result;
9473 __asm__ ("uadalp %0.1d,%2.2s"
9474 : "=w"(__result)
9475 : "0"(__a), "w"(__b)
9476 : /* No clobbers */);
9477 return __result;
9478 }
9479
9480 __extension__ extern __inline int16x8_t
9481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_s8(int16x8_t __a,int8x16_t __b)9482 vpadalq_s8 (int16x8_t __a, int8x16_t __b)
9483 {
9484 int16x8_t __result;
9485 __asm__ ("sadalp %0.8h,%2.16b"
9486 : "=w"(__result)
9487 : "0"(__a), "w"(__b)
9488 : /* No clobbers */);
9489 return __result;
9490 }
9491
9492 __extension__ extern __inline int32x4_t
9493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_s16(int32x4_t __a,int16x8_t __b)9494 vpadalq_s16 (int32x4_t __a, int16x8_t __b)
9495 {
9496 int32x4_t __result;
9497 __asm__ ("sadalp %0.4s,%2.8h"
9498 : "=w"(__result)
9499 : "0"(__a), "w"(__b)
9500 : /* No clobbers */);
9501 return __result;
9502 }
9503
9504 __extension__ extern __inline int64x2_t
9505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_s32(int64x2_t __a,int32x4_t __b)9506 vpadalq_s32 (int64x2_t __a, int32x4_t __b)
9507 {
9508 int64x2_t __result;
9509 __asm__ ("sadalp %0.2d,%2.4s"
9510 : "=w"(__result)
9511 : "0"(__a), "w"(__b)
9512 : /* No clobbers */);
9513 return __result;
9514 }
9515
9516 __extension__ extern __inline uint16x8_t
9517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_u8(uint16x8_t __a,uint8x16_t __b)9518 vpadalq_u8 (uint16x8_t __a, uint8x16_t __b)
9519 {
9520 uint16x8_t __result;
9521 __asm__ ("uadalp %0.8h,%2.16b"
9522 : "=w"(__result)
9523 : "0"(__a), "w"(__b)
9524 : /* No clobbers */);
9525 return __result;
9526 }
9527
9528 __extension__ extern __inline uint32x4_t
9529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_u16(uint32x4_t __a,uint16x8_t __b)9530 vpadalq_u16 (uint32x4_t __a, uint16x8_t __b)
9531 {
9532 uint32x4_t __result;
9533 __asm__ ("uadalp %0.4s,%2.8h"
9534 : "=w"(__result)
9535 : "0"(__a), "w"(__b)
9536 : /* No clobbers */);
9537 return __result;
9538 }
9539
9540 __extension__ extern __inline uint64x2_t
9541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadalq_u32(uint64x2_t __a,uint32x4_t __b)9542 vpadalq_u32 (uint64x2_t __a, uint32x4_t __b)
9543 {
9544 uint64x2_t __result;
9545 __asm__ ("uadalp %0.2d,%2.4s"
9546 : "=w"(__result)
9547 : "0"(__a), "w"(__b)
9548 : /* No clobbers */);
9549 return __result;
9550 }
9551
9552 __extension__ extern __inline int16x4_t
9553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_s8(int8x8_t __a)9554 vpaddl_s8 (int8x8_t __a)
9555 {
9556 int16x4_t __result;
9557 __asm__ ("saddlp %0.4h,%1.8b"
9558 : "=w"(__result)
9559 : "w"(__a)
9560 : /* No clobbers */);
9561 return __result;
9562 }
9563
9564 __extension__ extern __inline int32x2_t
9565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_s16(int16x4_t __a)9566 vpaddl_s16 (int16x4_t __a)
9567 {
9568 int32x2_t __result;
9569 __asm__ ("saddlp %0.2s,%1.4h"
9570 : "=w"(__result)
9571 : "w"(__a)
9572 : /* No clobbers */);
9573 return __result;
9574 }
9575
9576 __extension__ extern __inline int64x1_t
9577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_s32(int32x2_t __a)9578 vpaddl_s32 (int32x2_t __a)
9579 {
9580 int64x1_t __result;
9581 __asm__ ("saddlp %0.1d,%1.2s"
9582 : "=w"(__result)
9583 : "w"(__a)
9584 : /* No clobbers */);
9585 return __result;
9586 }
9587
9588 __extension__ extern __inline uint16x4_t
9589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_u8(uint8x8_t __a)9590 vpaddl_u8 (uint8x8_t __a)
9591 {
9592 uint16x4_t __result;
9593 __asm__ ("uaddlp %0.4h,%1.8b"
9594 : "=w"(__result)
9595 : "w"(__a)
9596 : /* No clobbers */);
9597 return __result;
9598 }
9599
9600 __extension__ extern __inline uint32x2_t
9601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_u16(uint16x4_t __a)9602 vpaddl_u16 (uint16x4_t __a)
9603 {
9604 uint32x2_t __result;
9605 __asm__ ("uaddlp %0.2s,%1.4h"
9606 : "=w"(__result)
9607 : "w"(__a)
9608 : /* No clobbers */);
9609 return __result;
9610 }
9611
9612 __extension__ extern __inline uint64x1_t
9613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddl_u32(uint32x2_t __a)9614 vpaddl_u32 (uint32x2_t __a)
9615 {
9616 uint64x1_t __result;
9617 __asm__ ("uaddlp %0.1d,%1.2s"
9618 : "=w"(__result)
9619 : "w"(__a)
9620 : /* No clobbers */);
9621 return __result;
9622 }
9623
9624 __extension__ extern __inline int16x8_t
9625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_s8(int8x16_t __a)9626 vpaddlq_s8 (int8x16_t __a)
9627 {
9628 int16x8_t __result;
9629 __asm__ ("saddlp %0.8h,%1.16b"
9630 : "=w"(__result)
9631 : "w"(__a)
9632 : /* No clobbers */);
9633 return __result;
9634 }
9635
9636 __extension__ extern __inline int32x4_t
9637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_s16(int16x8_t __a)9638 vpaddlq_s16 (int16x8_t __a)
9639 {
9640 int32x4_t __result;
9641 __asm__ ("saddlp %0.4s,%1.8h"
9642 : "=w"(__result)
9643 : "w"(__a)
9644 : /* No clobbers */);
9645 return __result;
9646 }
9647
9648 __extension__ extern __inline int64x2_t
9649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_s32(int32x4_t __a)9650 vpaddlq_s32 (int32x4_t __a)
9651 {
9652 int64x2_t __result;
9653 __asm__ ("saddlp %0.2d,%1.4s"
9654 : "=w"(__result)
9655 : "w"(__a)
9656 : /* No clobbers */);
9657 return __result;
9658 }
9659
9660 __extension__ extern __inline uint16x8_t
9661 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_u8(uint8x16_t __a)9662 vpaddlq_u8 (uint8x16_t __a)
9663 {
9664 uint16x8_t __result;
9665 __asm__ ("uaddlp %0.8h,%1.16b"
9666 : "=w"(__result)
9667 : "w"(__a)
9668 : /* No clobbers */);
9669 return __result;
9670 }
9671
9672 __extension__ extern __inline uint32x4_t
9673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_u16(uint16x8_t __a)9674 vpaddlq_u16 (uint16x8_t __a)
9675 {
9676 uint32x4_t __result;
9677 __asm__ ("uaddlp %0.4s,%1.8h"
9678 : "=w"(__result)
9679 : "w"(__a)
9680 : /* No clobbers */);
9681 return __result;
9682 }
9683
9684 __extension__ extern __inline uint64x2_t
9685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddlq_u32(uint32x4_t __a)9686 vpaddlq_u32 (uint32x4_t __a)
9687 {
9688 uint64x2_t __result;
9689 __asm__ ("uaddlp %0.2d,%1.4s"
9690 : "=w"(__result)
9691 : "w"(__a)
9692 : /* No clobbers */);
9693 return __result;
9694 }
9695
9696 __extension__ extern __inline int8x16_t
9697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_s8(int8x16_t __a,int8x16_t __b)9698 vpaddq_s8 (int8x16_t __a, int8x16_t __b)
9699 {
9700 int8x16_t __result;
9701 __asm__ ("addp %0.16b,%1.16b,%2.16b"
9702 : "=w"(__result)
9703 : "w"(__a), "w"(__b)
9704 : /* No clobbers */);
9705 return __result;
9706 }
9707
9708 __extension__ extern __inline int16x8_t
9709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_s16(int16x8_t __a,int16x8_t __b)9710 vpaddq_s16 (int16x8_t __a, int16x8_t __b)
9711 {
9712 int16x8_t __result;
9713 __asm__ ("addp %0.8h,%1.8h,%2.8h"
9714 : "=w"(__result)
9715 : "w"(__a), "w"(__b)
9716 : /* No clobbers */);
9717 return __result;
9718 }
9719
9720 __extension__ extern __inline int32x4_t
9721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_s32(int32x4_t __a,int32x4_t __b)9722 vpaddq_s32 (int32x4_t __a, int32x4_t __b)
9723 {
9724 int32x4_t __result;
9725 __asm__ ("addp %0.4s,%1.4s,%2.4s"
9726 : "=w"(__result)
9727 : "w"(__a), "w"(__b)
9728 : /* No clobbers */);
9729 return __result;
9730 }
9731
9732 __extension__ extern __inline int64x2_t
9733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_s64(int64x2_t __a,int64x2_t __b)9734 vpaddq_s64 (int64x2_t __a, int64x2_t __b)
9735 {
9736 int64x2_t __result;
9737 __asm__ ("addp %0.2d,%1.2d,%2.2d"
9738 : "=w"(__result)
9739 : "w"(__a), "w"(__b)
9740 : /* No clobbers */);
9741 return __result;
9742 }
9743
9744 __extension__ extern __inline uint8x16_t
9745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_u8(uint8x16_t __a,uint8x16_t __b)9746 vpaddq_u8 (uint8x16_t __a, uint8x16_t __b)
9747 {
9748 uint8x16_t __result;
9749 __asm__ ("addp %0.16b,%1.16b,%2.16b"
9750 : "=w"(__result)
9751 : "w"(__a), "w"(__b)
9752 : /* No clobbers */);
9753 return __result;
9754 }
9755
9756 __extension__ extern __inline uint16x8_t
9757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_u16(uint16x8_t __a,uint16x8_t __b)9758 vpaddq_u16 (uint16x8_t __a, uint16x8_t __b)
9759 {
9760 uint16x8_t __result;
9761 __asm__ ("addp %0.8h,%1.8h,%2.8h"
9762 : "=w"(__result)
9763 : "w"(__a), "w"(__b)
9764 : /* No clobbers */);
9765 return __result;
9766 }
9767
9768 __extension__ extern __inline uint32x4_t
9769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_u32(uint32x4_t __a,uint32x4_t __b)9770 vpaddq_u32 (uint32x4_t __a, uint32x4_t __b)
9771 {
9772 uint32x4_t __result;
9773 __asm__ ("addp %0.4s,%1.4s,%2.4s"
9774 : "=w"(__result)
9775 : "w"(__a), "w"(__b)
9776 : /* No clobbers */);
9777 return __result;
9778 }
9779
9780 __extension__ extern __inline uint64x2_t
9781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_u64(uint64x2_t __a,uint64x2_t __b)9782 vpaddq_u64 (uint64x2_t __a, uint64x2_t __b)
9783 {
9784 uint64x2_t __result;
9785 __asm__ ("addp %0.2d,%1.2d,%2.2d"
9786 : "=w"(__result)
9787 : "w"(__a), "w"(__b)
9788 : /* No clobbers */);
9789 return __result;
9790 }
9791
9792 __extension__ extern __inline int16x4_t
9793 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_n_s16(int16x4_t __a,int16_t __b)9794 vqdmulh_n_s16 (int16x4_t __a, int16_t __b)
9795 {
9796 int16x4_t __result;
9797 __asm__ ("sqdmulh %0.4h,%1.4h,%2.h[0]"
9798 : "=w"(__result)
9799 : "w"(__a), "x"(__b)
9800 : /* No clobbers */);
9801 return __result;
9802 }
9803
9804 __extension__ extern __inline int32x2_t
9805 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_n_s32(int32x2_t __a,int32_t __b)9806 vqdmulh_n_s32 (int32x2_t __a, int32_t __b)
9807 {
9808 int32x2_t __result;
9809 __asm__ ("sqdmulh %0.2s,%1.2s,%2.s[0]"
9810 : "=w"(__result)
9811 : "w"(__a), "w"(__b)
9812 : /* No clobbers */);
9813 return __result;
9814 }
9815
9816 __extension__ extern __inline int16x8_t
9817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_n_s16(int16x8_t __a,int16_t __b)9818 vqdmulhq_n_s16 (int16x8_t __a, int16_t __b)
9819 {
9820 int16x8_t __result;
9821 __asm__ ("sqdmulh %0.8h,%1.8h,%2.h[0]"
9822 : "=w"(__result)
9823 : "w"(__a), "x"(__b)
9824 : /* No clobbers */);
9825 return __result;
9826 }
9827
9828 __extension__ extern __inline int32x4_t
9829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_n_s32(int32x4_t __a,int32_t __b)9830 vqdmulhq_n_s32 (int32x4_t __a, int32_t __b)
9831 {
9832 int32x4_t __result;
9833 __asm__ ("sqdmulh %0.4s,%1.4s,%2.s[0]"
9834 : "=w"(__result)
9835 : "w"(__a), "w"(__b)
9836 : /* No clobbers */);
9837 return __result;
9838 }
9839
9840 __extension__ extern __inline int8x16_t
9841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_s16(int8x8_t __a,int16x8_t __b)9842 vqmovn_high_s16 (int8x8_t __a, int16x8_t __b)
9843 {
9844 int8x16_t __result = vcombine_s8 (__a, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
9845 __asm__ ("sqxtn2 %0.16b, %1.8h"
9846 : "+w"(__result)
9847 : "w"(__b)
9848 : /* No clobbers */);
9849 return __result;
9850 }
9851
9852 __extension__ extern __inline int16x8_t
9853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_s32(int16x4_t __a,int32x4_t __b)9854 vqmovn_high_s32 (int16x4_t __a, int32x4_t __b)
9855 {
9856 int16x8_t __result = vcombine_s16 (__a, vcreate_s16 (__AARCH64_UINT64_C (0x0)));
9857 __asm__ ("sqxtn2 %0.8h, %1.4s"
9858 : "+w"(__result)
9859 : "w"(__b)
9860 : /* No clobbers */);
9861 return __result;
9862 }
9863
9864 __extension__ extern __inline int32x4_t
9865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_s64(int32x2_t __a,int64x2_t __b)9866 vqmovn_high_s64 (int32x2_t __a, int64x2_t __b)
9867 {
9868 int32x4_t __result = vcombine_s32 (__a, vcreate_s32 (__AARCH64_UINT64_C (0x0)));
9869 __asm__ ("sqxtn2 %0.4s, %1.2d"
9870 : "+w"(__result)
9871 : "w"(__b)
9872 : /* No clobbers */);
9873 return __result;
9874 }
9875
9876 __extension__ extern __inline uint8x16_t
9877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_u16(uint8x8_t __a,uint16x8_t __b)9878 vqmovn_high_u16 (uint8x8_t __a, uint16x8_t __b)
9879 {
9880 uint8x16_t __result = vcombine_u8 (__a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
9881 __asm__ ("uqxtn2 %0.16b, %1.8h"
9882 : "+w"(__result)
9883 : "w"(__b)
9884 : /* No clobbers */);
9885 return __result;
9886 }
9887
9888 __extension__ extern __inline uint16x8_t
9889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_u32(uint16x4_t __a,uint32x4_t __b)9890 vqmovn_high_u32 (uint16x4_t __a, uint32x4_t __b)
9891 {
9892 uint16x8_t __result = vcombine_u16 (__a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
9893 __asm__ ("uqxtn2 %0.8h, %1.4s"
9894 : "+w"(__result)
9895 : "w"(__b)
9896 : /* No clobbers */);
9897 return __result;
9898 }
9899
9900 __extension__ extern __inline uint32x4_t
9901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_high_u64(uint32x2_t __a,uint64x2_t __b)9902 vqmovn_high_u64 (uint32x2_t __a, uint64x2_t __b)
9903 {
9904 uint32x4_t __result = vcombine_u32 (__a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
9905 __asm__ ("uqxtn2 %0.4s, %1.2d"
9906 : "+w"(__result)
9907 : "w"(__b)
9908 : /* No clobbers */);
9909 return __result;
9910 }
9911
9912 __extension__ extern __inline uint8x16_t
9913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_high_s16(uint8x8_t __a,int16x8_t __b)9914 vqmovun_high_s16 (uint8x8_t __a, int16x8_t __b)
9915 {
9916 uint8x16_t __result = vcombine_u8 (__a, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
9917 __asm__ ("sqxtun2 %0.16b, %1.8h"
9918 : "+w"(__result)
9919 : "w"(__b)
9920 : /* No clobbers */);
9921 return __result;
9922 }
9923
9924 __extension__ extern __inline uint16x8_t
9925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_high_s32(uint16x4_t __a,int32x4_t __b)9926 vqmovun_high_s32 (uint16x4_t __a, int32x4_t __b)
9927 {
9928 uint16x8_t __result = vcombine_u16 (__a, vcreate_u16 (__AARCH64_UINT64_C (0x0)));
9929 __asm__ ("sqxtun2 %0.8h, %1.4s"
9930 : "+w"(__result)
9931 : "w"(__b)
9932 : /* No clobbers */);
9933 return __result;
9934 }
9935
9936 __extension__ extern __inline uint32x4_t
9937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_high_s64(uint32x2_t __a,int64x2_t __b)9938 vqmovun_high_s64 (uint32x2_t __a, int64x2_t __b)
9939 {
9940 uint32x4_t __result = vcombine_u32 (__a, vcreate_u32 (__AARCH64_UINT64_C (0x0)));
9941 __asm__ ("sqxtun2 %0.4s, %1.2d"
9942 : "+w"(__result)
9943 : "w"(__b)
9944 : /* No clobbers */);
9945 return __result;
9946 }
9947
9948 __extension__ extern __inline int16x4_t
9949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_n_s16(int16x4_t __a,int16_t __b)9950 vqrdmulh_n_s16 (int16x4_t __a, int16_t __b)
9951 {
9952 int16x4_t __result;
9953 __asm__ ("sqrdmulh %0.4h,%1.4h,%2.h[0]"
9954 : "=w"(__result)
9955 : "w"(__a), "x"(__b)
9956 : /* No clobbers */);
9957 return __result;
9958 }
9959
9960 __extension__ extern __inline int32x2_t
9961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_n_s32(int32x2_t __a,int32_t __b)9962 vqrdmulh_n_s32 (int32x2_t __a, int32_t __b)
9963 {
9964 int32x2_t __result;
9965 __asm__ ("sqrdmulh %0.2s,%1.2s,%2.s[0]"
9966 : "=w"(__result)
9967 : "w"(__a), "w"(__b)
9968 : /* No clobbers */);
9969 return __result;
9970 }
9971
9972 __extension__ extern __inline int16x8_t
9973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_n_s16(int16x8_t __a,int16_t __b)9974 vqrdmulhq_n_s16 (int16x8_t __a, int16_t __b)
9975 {
9976 int16x8_t __result;
9977 __asm__ ("sqrdmulh %0.8h,%1.8h,%2.h[0]"
9978 : "=w"(__result)
9979 : "w"(__a), "x"(__b)
9980 : /* No clobbers */);
9981 return __result;
9982 }
9983
9984 __extension__ extern __inline int32x4_t
9985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_n_s32(int32x4_t __a,int32_t __b)9986 vqrdmulhq_n_s32 (int32x4_t __a, int32_t __b)
9987 {
9988 int32x4_t __result;
9989 __asm__ ("sqrdmulh %0.4s,%1.4s,%2.s[0]"
9990 : "=w"(__result)
9991 : "w"(__a), "w"(__b)
9992 : /* No clobbers */);
9993 return __result;
9994 }
9995
9996 #define vqrshrn_high_n_s16(a, b, c) \
9997 __extension__ \
9998 ({ \
9999 int16x8_t b_ = (b); \
10000 int8x8_t a_ = (a); \
10001 int8x16_t result = vcombine_s8 \
10002 (a_, vcreate_s8 \
10003 (__AARCH64_UINT64_C (0x0))); \
10004 __asm__ ("sqrshrn2 %0.16b, %1.8h, #%2" \
10005 : "+w"(result) \
10006 : "w"(b_), "i"(c) \
10007 : /* No clobbers */); \
10008 result; \
10009 })
10010
10011 #define vqrshrn_high_n_s32(a, b, c) \
10012 __extension__ \
10013 ({ \
10014 int32x4_t b_ = (b); \
10015 int16x4_t a_ = (a); \
10016 int16x8_t result = vcombine_s16 \
10017 (a_, vcreate_s16 \
10018 (__AARCH64_UINT64_C (0x0))); \
10019 __asm__ ("sqrshrn2 %0.8h, %1.4s, #%2" \
10020 : "+w"(result) \
10021 : "w"(b_), "i"(c) \
10022 : /* No clobbers */); \
10023 result; \
10024 })
10025
10026 #define vqrshrn_high_n_s64(a, b, c) \
10027 __extension__ \
10028 ({ \
10029 int64x2_t b_ = (b); \
10030 int32x2_t a_ = (a); \
10031 int32x4_t result = vcombine_s32 \
10032 (a_, vcreate_s32 \
10033 (__AARCH64_UINT64_C (0x0))); \
10034 __asm__ ("sqrshrn2 %0.4s, %1.2d, #%2" \
10035 : "+w"(result) \
10036 : "w"(b_), "i"(c) \
10037 : /* No clobbers */); \
10038 result; \
10039 })
10040
10041 #define vqrshrn_high_n_u16(a, b, c) \
10042 __extension__ \
10043 ({ \
10044 uint16x8_t b_ = (b); \
10045 uint8x8_t a_ = (a); \
10046 uint8x16_t result = vcombine_u8 \
10047 (a_, vcreate_u8 \
10048 (__AARCH64_UINT64_C (0x0))); \
10049 __asm__ ("uqrshrn2 %0.16b, %1.8h, #%2" \
10050 : "+w"(result) \
10051 : "w"(b_), "i"(c) \
10052 : /* No clobbers */); \
10053 result; \
10054 })
10055
10056 #define vqrshrn_high_n_u32(a, b, c) \
10057 __extension__ \
10058 ({ \
10059 uint32x4_t b_ = (b); \
10060 uint16x4_t a_ = (a); \
10061 uint16x8_t result = vcombine_u16 \
10062 (a_, vcreate_u16 \
10063 (__AARCH64_UINT64_C (0x0))); \
10064 __asm__ ("uqrshrn2 %0.8h, %1.4s, #%2" \
10065 : "+w"(result) \
10066 : "w"(b_), "i"(c) \
10067 : /* No clobbers */); \
10068 result; \
10069 })
10070
10071 #define vqrshrn_high_n_u64(a, b, c) \
10072 __extension__ \
10073 ({ \
10074 uint64x2_t b_ = (b); \
10075 uint32x2_t a_ = (a); \
10076 uint32x4_t result = vcombine_u32 \
10077 (a_, vcreate_u32 \
10078 (__AARCH64_UINT64_C (0x0))); \
10079 __asm__ ("uqrshrn2 %0.4s, %1.2d, #%2" \
10080 : "+w"(result) \
10081 : "w"(b_), "i"(c) \
10082 : /* No clobbers */); \
10083 result; \
10084 })
10085
10086 #define vqrshrun_high_n_s16(a, b, c) \
10087 __extension__ \
10088 ({ \
10089 int16x8_t b_ = (b); \
10090 uint8x8_t a_ = (a); \
10091 uint8x16_t result = vcombine_u8 \
10092 (a_, vcreate_u8 \
10093 (__AARCH64_UINT64_C (0x0))); \
10094 __asm__ ("sqrshrun2 %0.16b, %1.8h, #%2" \
10095 : "+w"(result) \
10096 : "w"(b_), "i"(c) \
10097 : /* No clobbers */); \
10098 result; \
10099 })
10100
10101 #define vqrshrun_high_n_s32(a, b, c) \
10102 __extension__ \
10103 ({ \
10104 int32x4_t b_ = (b); \
10105 uint16x4_t a_ = (a); \
10106 uint16x8_t result = vcombine_u16 \
10107 (a_, vcreate_u16 \
10108 (__AARCH64_UINT64_C (0x0))); \
10109 __asm__ ("sqrshrun2 %0.8h, %1.4s, #%2" \
10110 : "+w"(result) \
10111 : "w"(b_), "i"(c) \
10112 : /* No clobbers */); \
10113 result; \
10114 })
10115
10116 #define vqrshrun_high_n_s64(a, b, c) \
10117 __extension__ \
10118 ({ \
10119 int64x2_t b_ = (b); \
10120 uint32x2_t a_ = (a); \
10121 uint32x4_t result = vcombine_u32 \
10122 (a_, vcreate_u32 \
10123 (__AARCH64_UINT64_C (0x0))); \
10124 __asm__ ("sqrshrun2 %0.4s, %1.2d, #%2" \
10125 : "+w"(result) \
10126 : "w"(b_), "i"(c) \
10127 : /* No clobbers */); \
10128 result; \
10129 })
10130
10131 #define vqshrn_high_n_s16(a, b, c) \
10132 __extension__ \
10133 ({ \
10134 int16x8_t b_ = (b); \
10135 int8x8_t a_ = (a); \
10136 int8x16_t result = vcombine_s8 \
10137 (a_, vcreate_s8 \
10138 (__AARCH64_UINT64_C (0x0))); \
10139 __asm__ ("sqshrn2 %0.16b, %1.8h, #%2" \
10140 : "+w"(result) \
10141 : "w"(b_), "i"(c) \
10142 : /* No clobbers */); \
10143 result; \
10144 })
10145
10146 #define vqshrn_high_n_s32(a, b, c) \
10147 __extension__ \
10148 ({ \
10149 int32x4_t b_ = (b); \
10150 int16x4_t a_ = (a); \
10151 int16x8_t result = vcombine_s16 \
10152 (a_, vcreate_s16 \
10153 (__AARCH64_UINT64_C (0x0))); \
10154 __asm__ ("sqshrn2 %0.8h, %1.4s, #%2" \
10155 : "+w"(result) \
10156 : "w"(b_), "i"(c) \
10157 : /* No clobbers */); \
10158 result; \
10159 })
10160
10161 #define vqshrn_high_n_s64(a, b, c) \
10162 __extension__ \
10163 ({ \
10164 int64x2_t b_ = (b); \
10165 int32x2_t a_ = (a); \
10166 int32x4_t result = vcombine_s32 \
10167 (a_, vcreate_s32 \
10168 (__AARCH64_UINT64_C (0x0))); \
10169 __asm__ ("sqshrn2 %0.4s, %1.2d, #%2" \
10170 : "+w"(result) \
10171 : "w"(b_), "i"(c) \
10172 : /* No clobbers */); \
10173 result; \
10174 })
10175
10176 #define vqshrn_high_n_u16(a, b, c) \
10177 __extension__ \
10178 ({ \
10179 uint16x8_t b_ = (b); \
10180 uint8x8_t a_ = (a); \
10181 uint8x16_t result = vcombine_u8 \
10182 (a_, vcreate_u8 \
10183 (__AARCH64_UINT64_C (0x0))); \
10184 __asm__ ("uqshrn2 %0.16b, %1.8h, #%2" \
10185 : "+w"(result) \
10186 : "w"(b_), "i"(c) \
10187 : /* No clobbers */); \
10188 result; \
10189 })
10190
10191 #define vqshrn_high_n_u32(a, b, c) \
10192 __extension__ \
10193 ({ \
10194 uint32x4_t b_ = (b); \
10195 uint16x4_t a_ = (a); \
10196 uint16x8_t result = vcombine_u16 \
10197 (a_, vcreate_u16 \
10198 (__AARCH64_UINT64_C (0x0))); \
10199 __asm__ ("uqshrn2 %0.8h, %1.4s, #%2" \
10200 : "+w"(result) \
10201 : "w"(b_), "i"(c) \
10202 : /* No clobbers */); \
10203 result; \
10204 })
10205
10206 #define vqshrn_high_n_u64(a, b, c) \
10207 __extension__ \
10208 ({ \
10209 uint64x2_t b_ = (b); \
10210 uint32x2_t a_ = (a); \
10211 uint32x4_t result = vcombine_u32 \
10212 (a_, vcreate_u32 \
10213 (__AARCH64_UINT64_C (0x0))); \
10214 __asm__ ("uqshrn2 %0.4s, %1.2d, #%2" \
10215 : "+w"(result) \
10216 : "w"(b_), "i"(c) \
10217 : /* No clobbers */); \
10218 result; \
10219 })
10220
10221 #define vqshrun_high_n_s16(a, b, c) \
10222 __extension__ \
10223 ({ \
10224 int16x8_t b_ = (b); \
10225 uint8x8_t a_ = (a); \
10226 uint8x16_t result = vcombine_u8 \
10227 (a_, vcreate_u8 \
10228 (__AARCH64_UINT64_C (0x0))); \
10229 __asm__ ("sqshrun2 %0.16b, %1.8h, #%2" \
10230 : "+w"(result) \
10231 : "w"(b_), "i"(c) \
10232 : /* No clobbers */); \
10233 result; \
10234 })
10235
10236 #define vqshrun_high_n_s32(a, b, c) \
10237 __extension__ \
10238 ({ \
10239 int32x4_t b_ = (b); \
10240 uint16x4_t a_ = (a); \
10241 uint16x8_t result = vcombine_u16 \
10242 (a_, vcreate_u16 \
10243 (__AARCH64_UINT64_C (0x0))); \
10244 __asm__ ("sqshrun2 %0.8h, %1.4s, #%2" \
10245 : "+w"(result) \
10246 : "w"(b_), "i"(c) \
10247 : /* No clobbers */); \
10248 result; \
10249 })
10250
10251 #define vqshrun_high_n_s64(a, b, c) \
10252 __extension__ \
10253 ({ \
10254 int64x2_t b_ = (b); \
10255 uint32x2_t a_ = (a); \
10256 uint32x4_t result = vcombine_u32 \
10257 (a_, vcreate_u32 \
10258 (__AARCH64_UINT64_C (0x0))); \
10259 __asm__ ("sqshrun2 %0.4s, %1.2d, #%2" \
10260 : "+w"(result) \
10261 : "w"(b_), "i"(c) \
10262 : /* No clobbers */); \
10263 result; \
10264 })
10265
10266 #define vrshrn_high_n_s16(a, b, c) \
10267 __extension__ \
10268 ({ \
10269 int16x8_t b_ = (b); \
10270 int8x8_t a_ = (a); \
10271 int8x16_t result = vcombine_s8 \
10272 (a_, vcreate_s8 \
10273 (__AARCH64_UINT64_C (0x0))); \
10274 __asm__ ("rshrn2 %0.16b,%1.8h,#%2" \
10275 : "+w"(result) \
10276 : "w"(b_), "i"(c) \
10277 : /* No clobbers */); \
10278 result; \
10279 })
10280
10281 #define vrshrn_high_n_s32(a, b, c) \
10282 __extension__ \
10283 ({ \
10284 int32x4_t b_ = (b); \
10285 int16x4_t a_ = (a); \
10286 int16x8_t result = vcombine_s16 \
10287 (a_, vcreate_s16 \
10288 (__AARCH64_UINT64_C (0x0))); \
10289 __asm__ ("rshrn2 %0.8h,%1.4s,#%2" \
10290 : "+w"(result) \
10291 : "w"(b_), "i"(c) \
10292 : /* No clobbers */); \
10293 result; \
10294 })
10295
10296 #define vrshrn_high_n_s64(a, b, c) \
10297 __extension__ \
10298 ({ \
10299 int64x2_t b_ = (b); \
10300 int32x2_t a_ = (a); \
10301 int32x4_t result = vcombine_s32 \
10302 (a_, vcreate_s32 \
10303 (__AARCH64_UINT64_C (0x0))); \
10304 __asm__ ("rshrn2 %0.4s,%1.2d,#%2" \
10305 : "+w"(result) \
10306 : "w"(b_), "i"(c) \
10307 : /* No clobbers */); \
10308 result; \
10309 })
10310
10311 #define vrshrn_high_n_u16(a, b, c) \
10312 __extension__ \
10313 ({ \
10314 uint16x8_t b_ = (b); \
10315 uint8x8_t a_ = (a); \
10316 uint8x16_t result = vcombine_u8 \
10317 (a_, vcreate_u8 \
10318 (__AARCH64_UINT64_C (0x0))); \
10319 __asm__ ("rshrn2 %0.16b,%1.8h,#%2" \
10320 : "+w"(result) \
10321 : "w"(b_), "i"(c) \
10322 : /* No clobbers */); \
10323 result; \
10324 })
10325
10326 #define vrshrn_high_n_u32(a, b, c) \
10327 __extension__ \
10328 ({ \
10329 uint32x4_t b_ = (b); \
10330 uint16x4_t a_ = (a); \
10331 uint16x8_t result = vcombine_u16 \
10332 (a_, vcreate_u16 \
10333 (__AARCH64_UINT64_C (0x0))); \
10334 __asm__ ("rshrn2 %0.8h,%1.4s,#%2" \
10335 : "+w"(result) \
10336 : "w"(b_), "i"(c) \
10337 : /* No clobbers */); \
10338 result; \
10339 })
10340
10341 #define vrshrn_high_n_u64(a, b, c) \
10342 __extension__ \
10343 ({ \
10344 uint64x2_t b_ = (b); \
10345 uint32x2_t a_ = (a); \
10346 uint32x4_t result = vcombine_u32 \
10347 (a_, vcreate_u32 \
10348 (__AARCH64_UINT64_C (0x0))); \
10349 __asm__ ("rshrn2 %0.4s,%1.2d,#%2" \
10350 : "+w"(result) \
10351 : "w"(b_), "i"(c) \
10352 : /* No clobbers */); \
10353 result; \
10354 })
10355
10356 #define vrshrn_n_s16(a, b) \
10357 __extension__ \
10358 ({ \
10359 int16x8_t a_ = (a); \
10360 int8x8_t result; \
10361 __asm__ ("rshrn %0.8b,%1.8h,%2" \
10362 : "=w"(result) \
10363 : "w"(a_), "i"(b) \
10364 : /* No clobbers */); \
10365 result; \
10366 })
10367
10368 #define vrshrn_n_s32(a, b) \
10369 __extension__ \
10370 ({ \
10371 int32x4_t a_ = (a); \
10372 int16x4_t result; \
10373 __asm__ ("rshrn %0.4h,%1.4s,%2" \
10374 : "=w"(result) \
10375 : "w"(a_), "i"(b) \
10376 : /* No clobbers */); \
10377 result; \
10378 })
10379
10380 #define vrshrn_n_s64(a, b) \
10381 __extension__ \
10382 ({ \
10383 int64x2_t a_ = (a); \
10384 int32x2_t result; \
10385 __asm__ ("rshrn %0.2s,%1.2d,%2" \
10386 : "=w"(result) \
10387 : "w"(a_), "i"(b) \
10388 : /* No clobbers */); \
10389 result; \
10390 })
10391
10392 #define vrshrn_n_u16(a, b) \
10393 __extension__ \
10394 ({ \
10395 uint16x8_t a_ = (a); \
10396 uint8x8_t result; \
10397 __asm__ ("rshrn %0.8b,%1.8h,%2" \
10398 : "=w"(result) \
10399 : "w"(a_), "i"(b) \
10400 : /* No clobbers */); \
10401 result; \
10402 })
10403
10404 #define vrshrn_n_u32(a, b) \
10405 __extension__ \
10406 ({ \
10407 uint32x4_t a_ = (a); \
10408 uint16x4_t result; \
10409 __asm__ ("rshrn %0.4h,%1.4s,%2" \
10410 : "=w"(result) \
10411 : "w"(a_), "i"(b) \
10412 : /* No clobbers */); \
10413 result; \
10414 })
10415
10416 #define vrshrn_n_u64(a, b) \
10417 __extension__ \
10418 ({ \
10419 uint64x2_t a_ = (a); \
10420 uint32x2_t result; \
10421 __asm__ ("rshrn %0.2s,%1.2d,%2" \
10422 : "=w"(result) \
10423 : "w"(a_), "i"(b) \
10424 : /* No clobbers */); \
10425 result; \
10426 })
10427
10428 __extension__ extern __inline uint32x2_t
10429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrte_u32(uint32x2_t __a)10430 vrsqrte_u32 (uint32x2_t __a)
10431 {
10432 uint32x2_t __result;
10433 __asm__ ("ursqrte %0.2s,%1.2s"
10434 : "=w"(__result)
10435 : "w"(__a)
10436 : /* No clobbers */);
10437 return __result;
10438 }
10439
10440 __extension__ extern __inline uint32x4_t
10441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrteq_u32(uint32x4_t __a)10442 vrsqrteq_u32 (uint32x4_t __a)
10443 {
10444 uint32x4_t __result;
10445 __asm__ ("ursqrte %0.4s,%1.4s"
10446 : "=w"(__result)
10447 : "w"(__a)
10448 : /* No clobbers */);
10449 return __result;
10450 }
10451
10452 #define vshrn_high_n_s16(a, b, c) \
10453 __extension__ \
10454 ({ \
10455 int16x8_t b_ = (b); \
10456 int8x8_t a_ = (a); \
10457 int8x16_t result = vcombine_s8 \
10458 (a_, vcreate_s8 \
10459 (__AARCH64_UINT64_C (0x0))); \
10460 __asm__ ("shrn2 %0.16b,%1.8h,#%2" \
10461 : "+w"(result) \
10462 : "w"(b_), "i"(c) \
10463 : /* No clobbers */); \
10464 result; \
10465 })
10466
10467 #define vshrn_high_n_s32(a, b, c) \
10468 __extension__ \
10469 ({ \
10470 int32x4_t b_ = (b); \
10471 int16x4_t a_ = (a); \
10472 int16x8_t result = vcombine_s16 \
10473 (a_, vcreate_s16 \
10474 (__AARCH64_UINT64_C (0x0))); \
10475 __asm__ ("shrn2 %0.8h,%1.4s,#%2" \
10476 : "+w"(result) \
10477 : "w"(b_), "i"(c) \
10478 : /* No clobbers */); \
10479 result; \
10480 })
10481
10482 #define vshrn_high_n_s64(a, b, c) \
10483 __extension__ \
10484 ({ \
10485 int64x2_t b_ = (b); \
10486 int32x2_t a_ = (a); \
10487 int32x4_t result = vcombine_s32 \
10488 (a_, vcreate_s32 \
10489 (__AARCH64_UINT64_C (0x0))); \
10490 __asm__ ("shrn2 %0.4s,%1.2d,#%2" \
10491 : "+w"(result) \
10492 : "w"(b_), "i"(c) \
10493 : /* No clobbers */); \
10494 result; \
10495 })
10496
10497 #define vshrn_high_n_u16(a, b, c) \
10498 __extension__ \
10499 ({ \
10500 uint16x8_t b_ = (b); \
10501 uint8x8_t a_ = (a); \
10502 uint8x16_t result = vcombine_u8 \
10503 (a_, vcreate_u8 \
10504 (__AARCH64_UINT64_C (0x0))); \
10505 __asm__ ("shrn2 %0.16b,%1.8h,#%2" \
10506 : "+w"(result) \
10507 : "w"(b_), "i"(c) \
10508 : /* No clobbers */); \
10509 result; \
10510 })
10511
10512 #define vshrn_high_n_u32(a, b, c) \
10513 __extension__ \
10514 ({ \
10515 uint32x4_t b_ = (b); \
10516 uint16x4_t a_ = (a); \
10517 uint16x8_t result = vcombine_u16 \
10518 (a_, vcreate_u16 \
10519 (__AARCH64_UINT64_C (0x0))); \
10520 __asm__ ("shrn2 %0.8h,%1.4s,#%2" \
10521 : "+w"(result) \
10522 : "w"(b_), "i"(c) \
10523 : /* No clobbers */); \
10524 result; \
10525 })
10526
10527 #define vshrn_high_n_u64(a, b, c) \
10528 __extension__ \
10529 ({ \
10530 uint64x2_t b_ = (b); \
10531 uint32x2_t a_ = (a); \
10532 uint32x4_t result = vcombine_u32 \
10533 (a_, vcreate_u32 \
10534 (__AARCH64_UINT64_C (0x0))); \
10535 __asm__ ("shrn2 %0.4s,%1.2d,#%2" \
10536 : "+w"(result) \
10537 : "w"(b_), "i"(c) \
10538 : /* No clobbers */); \
10539 result; \
10540 })
10541
10542 #define vshrn_n_s16(a, b) \
10543 __extension__ \
10544 ({ \
10545 int16x8_t a_ = (a); \
10546 int8x8_t result; \
10547 __asm__ ("shrn %0.8b,%1.8h,%2" \
10548 : "=w"(result) \
10549 : "w"(a_), "i"(b) \
10550 : /* No clobbers */); \
10551 result; \
10552 })
10553
10554 #define vshrn_n_s32(a, b) \
10555 __extension__ \
10556 ({ \
10557 int32x4_t a_ = (a); \
10558 int16x4_t result; \
10559 __asm__ ("shrn %0.4h,%1.4s,%2" \
10560 : "=w"(result) \
10561 : "w"(a_), "i"(b) \
10562 : /* No clobbers */); \
10563 result; \
10564 })
10565
10566 #define vshrn_n_s64(a, b) \
10567 __extension__ \
10568 ({ \
10569 int64x2_t a_ = (a); \
10570 int32x2_t result; \
10571 __asm__ ("shrn %0.2s,%1.2d,%2" \
10572 : "=w"(result) \
10573 : "w"(a_), "i"(b) \
10574 : /* No clobbers */); \
10575 result; \
10576 })
10577
10578 #define vshrn_n_u16(a, b) \
10579 __extension__ \
10580 ({ \
10581 uint16x8_t a_ = (a); \
10582 uint8x8_t result; \
10583 __asm__ ("shrn %0.8b,%1.8h,%2" \
10584 : "=w"(result) \
10585 : "w"(a_), "i"(b) \
10586 : /* No clobbers */); \
10587 result; \
10588 })
10589
10590 #define vshrn_n_u32(a, b) \
10591 __extension__ \
10592 ({ \
10593 uint32x4_t a_ = (a); \
10594 uint16x4_t result; \
10595 __asm__ ("shrn %0.4h,%1.4s,%2" \
10596 : "=w"(result) \
10597 : "w"(a_), "i"(b) \
10598 : /* No clobbers */); \
10599 result; \
10600 })
10601
10602 #define vshrn_n_u64(a, b) \
10603 __extension__ \
10604 ({ \
10605 uint64x2_t a_ = (a); \
10606 uint32x2_t result; \
10607 __asm__ ("shrn %0.2s,%1.2d,%2" \
10608 : "=w"(result) \
10609 : "w"(a_), "i"(b) \
10610 : /* No clobbers */); \
10611 result; \
10612 })
10613
10614 #define vsli_n_p8(a, b, c) \
10615 __extension__ \
10616 ({ \
10617 poly8x8_t b_ = (b); \
10618 poly8x8_t a_ = (a); \
10619 poly8x8_t result; \
10620 __asm__ ("sli %0.8b,%2.8b,%3" \
10621 : "=w"(result) \
10622 : "0"(a_), "w"(b_), "i"(c) \
10623 : /* No clobbers */); \
10624 result; \
10625 })
10626
10627 #define vsli_n_p16(a, b, c) \
10628 __extension__ \
10629 ({ \
10630 poly16x4_t b_ = (b); \
10631 poly16x4_t a_ = (a); \
10632 poly16x4_t result; \
10633 __asm__ ("sli %0.4h,%2.4h,%3" \
10634 : "=w"(result) \
10635 : "0"(a_), "w"(b_), "i"(c) \
10636 : /* No clobbers */); \
10637 result; \
10638 })
10639
10640 #define vsliq_n_p8(a, b, c) \
10641 __extension__ \
10642 ({ \
10643 poly8x16_t b_ = (b); \
10644 poly8x16_t a_ = (a); \
10645 poly8x16_t result; \
10646 __asm__ ("sli %0.16b,%2.16b,%3" \
10647 : "=w"(result) \
10648 : "0"(a_), "w"(b_), "i"(c) \
10649 : /* No clobbers */); \
10650 result; \
10651 })
10652
10653 #define vsliq_n_p16(a, b, c) \
10654 __extension__ \
10655 ({ \
10656 poly16x8_t b_ = (b); \
10657 poly16x8_t a_ = (a); \
10658 poly16x8_t result; \
10659 __asm__ ("sli %0.8h,%2.8h,%3" \
10660 : "=w"(result) \
10661 : "0"(a_), "w"(b_), "i"(c) \
10662 : /* No clobbers */); \
10663 result; \
10664 })
10665
10666 #define vsri_n_p8(a, b, c) \
10667 __extension__ \
10668 ({ \
10669 poly8x8_t b_ = (b); \
10670 poly8x8_t a_ = (a); \
10671 poly8x8_t result; \
10672 __asm__ ("sri %0.8b,%2.8b,%3" \
10673 : "=w"(result) \
10674 : "0"(a_), "w"(b_), "i"(c) \
10675 : /* No clobbers */); \
10676 result; \
10677 })
10678
10679 #define vsri_n_p16(a, b, c) \
10680 __extension__ \
10681 ({ \
10682 poly16x4_t b_ = (b); \
10683 poly16x4_t a_ = (a); \
10684 poly16x4_t result; \
10685 __asm__ ("sri %0.4h,%2.4h,%3" \
10686 : "=w"(result) \
10687 : "0"(a_), "w"(b_), "i"(c) \
10688 : /* No clobbers */); \
10689 result; \
10690 })
10691
10692 #define vsri_n_p64(a, b, c) \
10693 __extension__ \
10694 ({ \
10695 poly64x1_t b_ = (b); \
10696 poly64x1_t a_ = (a); \
10697 poly64x1_t result; \
10698 __asm__ ("sri %d0,%d2,%3" \
10699 : "=w"(result) \
10700 : "0"(a_), "w"(b_), "i"(c) \
10701 : /* No clobbers. */); \
10702 result; \
10703 })
10704
10705 #define vsriq_n_p8(a, b, c) \
10706 __extension__ \
10707 ({ \
10708 poly8x16_t b_ = (b); \
10709 poly8x16_t a_ = (a); \
10710 poly8x16_t result; \
10711 __asm__ ("sri %0.16b,%2.16b,%3" \
10712 : "=w"(result) \
10713 : "0"(a_), "w"(b_), "i"(c) \
10714 : /* No clobbers */); \
10715 result; \
10716 })
10717
10718 #define vsriq_n_p16(a, b, c) \
10719 __extension__ \
10720 ({ \
10721 poly16x8_t b_ = (b); \
10722 poly16x8_t a_ = (a); \
10723 poly16x8_t result; \
10724 __asm__ ("sri %0.8h,%2.8h,%3" \
10725 : "=w"(result) \
10726 : "0"(a_), "w"(b_), "i"(c) \
10727 : /* No clobbers */); \
10728 result; \
10729 })
10730
10731 #define vsriq_n_p64(a, b, c) \
10732 __extension__ \
10733 ({ \
10734 poly64x2_t b_ = (b); \
10735 poly64x2_t a_ = (a); \
10736 poly64x2_t result; \
10737 __asm__ ("sri %0.2d,%2.2d,%3" \
10738 : "=w"(result) \
10739 : "0"(a_), "w"(b_), "i"(c) \
10740 : /* No clobbers. */); \
10741 result; \
10742 })
10743
10744 __extension__ extern __inline uint8x8_t
10745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_p8(poly8x8_t __a,poly8x8_t __b)10746 vtst_p8 (poly8x8_t __a, poly8x8_t __b)
10747 {
10748 return (uint8x8_t) ((((uint8x8_t) __a) & ((uint8x8_t) __b))
10749 != 0);
10750 }
10751
10752 __extension__ extern __inline uint16x4_t
10753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_p16(poly16x4_t __a,poly16x4_t __b)10754 vtst_p16 (poly16x4_t __a, poly16x4_t __b)
10755 {
10756 return (uint16x4_t) ((((uint16x4_t) __a) & ((uint16x4_t) __b))
10757 != 0);
10758 }
10759
10760 __extension__ extern __inline uint64x1_t
10761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_p64(poly64x1_t __a,poly64x1_t __b)10762 vtst_p64 (poly64x1_t __a, poly64x1_t __b)
10763 {
10764 return (uint64x1_t) ((__a & __b) != __AARCH64_INT64_C (0));
10765 }
10766
10767 __extension__ extern __inline uint8x16_t
10768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_p8(poly8x16_t __a,poly8x16_t __b)10769 vtstq_p8 (poly8x16_t __a, poly8x16_t __b)
10770 {
10771 return (uint8x16_t) ((((uint8x16_t) __a) & ((uint8x16_t) __b))
10772 != 0);
10773 }
10774
10775 __extension__ extern __inline uint16x8_t
10776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_p16(poly16x8_t __a,poly16x8_t __b)10777 vtstq_p16 (poly16x8_t __a, poly16x8_t __b)
10778 {
10779 return (uint16x8_t) ((((uint16x8_t) __a) & ((uint16x8_t) __b))
10780 != 0);
10781 }
10782
10783 __extension__ extern __inline uint64x2_t
10784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_p64(poly64x2_t __a,poly64x2_t __b)10785 vtstq_p64 (poly64x2_t __a, poly64x2_t __b)
10786 {
10787 return (uint64x2_t) ((((uint64x2_t) __a) & ((uint64x2_t) __b))
10788 != __AARCH64_INT64_C (0));
10789 }
10790
10791 /* End of temporary inline asm implementations. */
10792
10793 /* Start of temporary inline asm for vldn, vstn and friends. */
10794
10795 /* Create struct element types for duplicating loads.
10796
10797 Create 2 element structures of:
10798
10799 +------+----+----+----+----+
10800 | | 8 | 16 | 32 | 64 |
10801 +------+----+----+----+----+
10802 |int | Y | Y | N | N |
10803 +------+----+----+----+----+
10804 |uint | Y | Y | N | N |
10805 +------+----+----+----+----+
10806 |float | - | Y | N | N |
10807 +------+----+----+----+----+
10808 |poly | Y | Y | - | - |
10809 +------+----+----+----+----+
10810
10811 Create 3 element structures of:
10812
10813 +------+----+----+----+----+
10814 | | 8 | 16 | 32 | 64 |
10815 +------+----+----+----+----+
10816 |int | Y | Y | Y | Y |
10817 +------+----+----+----+----+
10818 |uint | Y | Y | Y | Y |
10819 +------+----+----+----+----+
10820 |float | - | Y | Y | Y |
10821 +------+----+----+----+----+
10822 |poly | Y | Y | - | - |
10823 +------+----+----+----+----+
10824
10825 Create 4 element structures of:
10826
10827 +------+----+----+----+----+
10828 | | 8 | 16 | 32 | 64 |
10829 +------+----+----+----+----+
10830 |int | Y | N | N | Y |
10831 +------+----+----+----+----+
10832 |uint | Y | N | N | Y |
10833 +------+----+----+----+----+
10834 |float | - | N | N | Y |
10835 +------+----+----+----+----+
10836 |poly | Y | N | - | - |
10837 +------+----+----+----+----+
10838
10839 This is required for casting memory reference. */
10840 #define __STRUCTN(t, sz, nelem) \
10841 typedef struct t ## sz ## x ## nelem ## _t { \
10842 t ## sz ## _t val[nelem]; \
10843 } t ## sz ## x ## nelem ## _t;
10844
10845 /* 2-element structs. */
10846 __STRUCTN (int, 8, 2)
10847 __STRUCTN (int, 16, 2)
10848 __STRUCTN (uint, 8, 2)
10849 __STRUCTN (uint, 16, 2)
10850 __STRUCTN (float, 16, 2)
10851 __STRUCTN (poly, 8, 2)
10852 __STRUCTN (poly, 16, 2)
10853 /* 3-element structs. */
10854 __STRUCTN (int, 8, 3)
10855 __STRUCTN (int, 16, 3)
10856 __STRUCTN (int, 32, 3)
10857 __STRUCTN (int, 64, 3)
10858 __STRUCTN (uint, 8, 3)
10859 __STRUCTN (uint, 16, 3)
10860 __STRUCTN (uint, 32, 3)
10861 __STRUCTN (uint, 64, 3)
10862 __STRUCTN (float, 16, 3)
10863 __STRUCTN (float, 32, 3)
10864 __STRUCTN (float, 64, 3)
10865 __STRUCTN (poly, 8, 3)
10866 __STRUCTN (poly, 16, 3)
10867 /* 4-element structs. */
10868 __STRUCTN (int, 8, 4)
10869 __STRUCTN (int, 64, 4)
10870 __STRUCTN (uint, 8, 4)
10871 __STRUCTN (uint, 64, 4)
10872 __STRUCTN (poly, 8, 4)
10873 __STRUCTN (float, 64, 4)
10874 #undef __STRUCTN
10875
10876
10877 #define __ST2_LANE_FUNC(intype, largetype, ptrtype, mode, \
10878 qmode, ptr_mode, funcsuffix, signedtype) \
10879 __extension__ extern __inline void \
10880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10881 vst2_lane_ ## funcsuffix (ptrtype *__ptr, \
10882 intype __b, const int __c) \
10883 { \
10884 __builtin_aarch64_simd_oi __o; \
10885 largetype __temp; \
10886 __temp.val[0] \
10887 = vcombine_##funcsuffix (__b.val[0], \
10888 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10889 __temp.val[1] \
10890 = vcombine_##funcsuffix (__b.val[1], \
10891 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10892 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
10893 (signedtype) __temp.val[0], 0); \
10894 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
10895 (signedtype) __temp.val[1], 1); \
10896 __builtin_aarch64_st2_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
10897 __ptr, __o, __c); \
10898 }
10899
__ST2_LANE_FUNC(float16x4x2_t,float16x8x2_t,float16_t,v4hf,v8hf,hf,f16,float16x8_t)10900 __ST2_LANE_FUNC (float16x4x2_t, float16x8x2_t, float16_t, v4hf, v8hf, hf, f16,
10901 float16x8_t)
10902 __ST2_LANE_FUNC (float32x2x2_t, float32x4x2_t, float32_t, v2sf, v4sf, sf, f32,
10903 float32x4_t)
10904 __ST2_LANE_FUNC (float64x1x2_t, float64x2x2_t, float64_t, df, v2df, df, f64,
10905 float64x2_t)
10906 __ST2_LANE_FUNC (poly8x8x2_t, poly8x16x2_t, poly8_t, v8qi, v16qi, qi, p8,
10907 int8x16_t)
10908 __ST2_LANE_FUNC (poly16x4x2_t, poly16x8x2_t, poly16_t, v4hi, v8hi, hi, p16,
10909 int16x8_t)
10910 __ST2_LANE_FUNC (poly64x1x2_t, poly64x2x2_t, poly64_t, di, v2di_ssps, di, p64,
10911 poly64x2_t)
10912 __ST2_LANE_FUNC (int8x8x2_t, int8x16x2_t, int8_t, v8qi, v16qi, qi, s8,
10913 int8x16_t)
10914 __ST2_LANE_FUNC (int16x4x2_t, int16x8x2_t, int16_t, v4hi, v8hi, hi, s16,
10915 int16x8_t)
10916 __ST2_LANE_FUNC (int32x2x2_t, int32x4x2_t, int32_t, v2si, v4si, si, s32,
10917 int32x4_t)
10918 __ST2_LANE_FUNC (int64x1x2_t, int64x2x2_t, int64_t, di, v2di, di, s64,
10919 int64x2_t)
10920 __ST2_LANE_FUNC (uint8x8x2_t, uint8x16x2_t, uint8_t, v8qi, v16qi, qi, u8,
10921 int8x16_t)
10922 __ST2_LANE_FUNC (uint16x4x2_t, uint16x8x2_t, uint16_t, v4hi, v8hi, hi, u16,
10923 int16x8_t)
10924 __ST2_LANE_FUNC (uint32x2x2_t, uint32x4x2_t, uint32_t, v2si, v4si, si, u32,
10925 int32x4_t)
10926 __ST2_LANE_FUNC (uint64x1x2_t, uint64x2x2_t, uint64_t, di, v2di, di, u64,
10927 int64x2_t)
10928
10929 #define __ST2Q_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix) \
10930 __extension__ extern __inline void \
10931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10932 vst2q_lane_ ## funcsuffix (ptrtype *__ptr, \
10933 intype __b, const int __c) \
10934 { \
10935 union { intype __i; \
10936 __builtin_aarch64_simd_oi __o; } __temp = { __b }; \
10937 __builtin_aarch64_st2_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
10938 __ptr, __temp.__o, __c); \
10939 }
10940
10941 __ST2Q_LANE_FUNC (float16x8x2_t, float16_t, v8hf, hf, f16)
10942 __ST2Q_LANE_FUNC (float32x4x2_t, float32_t, v4sf, sf, f32)
10943 __ST2Q_LANE_FUNC (float64x2x2_t, float64_t, v2df, df, f64)
10944 __ST2Q_LANE_FUNC (poly8x16x2_t, poly8_t, v16qi, qi, p8)
10945 __ST2Q_LANE_FUNC (poly16x8x2_t, poly16_t, v8hi, hi, p16)
10946 __ST2Q_LANE_FUNC (poly64x2x2_t, poly64_t, v2di, di, p64)
10947 __ST2Q_LANE_FUNC (int8x16x2_t, int8_t, v16qi, qi, s8)
10948 __ST2Q_LANE_FUNC (int16x8x2_t, int16_t, v8hi, hi, s16)
10949 __ST2Q_LANE_FUNC (int32x4x2_t, int32_t, v4si, si, s32)
10950 __ST2Q_LANE_FUNC (int64x2x2_t, int64_t, v2di, di, s64)
10951 __ST2Q_LANE_FUNC (uint8x16x2_t, uint8_t, v16qi, qi, u8)
10952 __ST2Q_LANE_FUNC (uint16x8x2_t, uint16_t, v8hi, hi, u16)
10953 __ST2Q_LANE_FUNC (uint32x4x2_t, uint32_t, v4si, si, u32)
10954 __ST2Q_LANE_FUNC (uint64x2x2_t, uint64_t, v2di, di, u64)
10955
10956 #define __ST3_LANE_FUNC(intype, largetype, ptrtype, mode, \
10957 qmode, ptr_mode, funcsuffix, signedtype) \
10958 __extension__ extern __inline void \
10959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
10960 vst3_lane_ ## funcsuffix (ptrtype *__ptr, \
10961 intype __b, const int __c) \
10962 { \
10963 __builtin_aarch64_simd_ci __o; \
10964 largetype __temp; \
10965 __temp.val[0] \
10966 = vcombine_##funcsuffix (__b.val[0], \
10967 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10968 __temp.val[1] \
10969 = vcombine_##funcsuffix (__b.val[1], \
10970 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10971 __temp.val[2] \
10972 = vcombine_##funcsuffix (__b.val[2], \
10973 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
10974 __o = __builtin_aarch64_set_qregci##qmode (__o, \
10975 (signedtype) __temp.val[0], 0); \
10976 __o = __builtin_aarch64_set_qregci##qmode (__o, \
10977 (signedtype) __temp.val[1], 1); \
10978 __o = __builtin_aarch64_set_qregci##qmode (__o, \
10979 (signedtype) __temp.val[2], 2); \
10980 __builtin_aarch64_st3_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
10981 __ptr, __o, __c); \
10982 }
10983
10984 __ST3_LANE_FUNC (float16x4x3_t, float16x8x3_t, float16_t, v4hf, v8hf, hf, f16,
10985 float16x8_t)
10986 __ST3_LANE_FUNC (float32x2x3_t, float32x4x3_t, float32_t, v2sf, v4sf, sf, f32,
10987 float32x4_t)
10988 __ST3_LANE_FUNC (float64x1x3_t, float64x2x3_t, float64_t, df, v2df, df, f64,
10989 float64x2_t)
10990 __ST3_LANE_FUNC (poly8x8x3_t, poly8x16x3_t, poly8_t, v8qi, v16qi, qi, p8,
10991 int8x16_t)
10992 __ST3_LANE_FUNC (poly16x4x3_t, poly16x8x3_t, poly16_t, v4hi, v8hi, hi, p16,
10993 int16x8_t)
10994 __ST3_LANE_FUNC (poly64x1x3_t, poly64x2x3_t, poly64_t, di, v2di_ssps, di, p64,
10995 poly64x2_t)
10996 __ST3_LANE_FUNC (int8x8x3_t, int8x16x3_t, int8_t, v8qi, v16qi, qi, s8,
10997 int8x16_t)
10998 __ST3_LANE_FUNC (int16x4x3_t, int16x8x3_t, int16_t, v4hi, v8hi, hi, s16,
10999 int16x8_t)
11000 __ST3_LANE_FUNC (int32x2x3_t, int32x4x3_t, int32_t, v2si, v4si, si, s32,
11001 int32x4_t)
11002 __ST3_LANE_FUNC (int64x1x3_t, int64x2x3_t, int64_t, di, v2di, di, s64,
11003 int64x2_t)
11004 __ST3_LANE_FUNC (uint8x8x3_t, uint8x16x3_t, uint8_t, v8qi, v16qi, qi, u8,
11005 int8x16_t)
11006 __ST3_LANE_FUNC (uint16x4x3_t, uint16x8x3_t, uint16_t, v4hi, v8hi, hi, u16,
11007 int16x8_t)
11008 __ST3_LANE_FUNC (uint32x2x3_t, uint32x4x3_t, uint32_t, v2si, v4si, si, u32,
11009 int32x4_t)
11010 __ST3_LANE_FUNC (uint64x1x3_t, uint64x2x3_t, uint64_t, di, v2di, di, u64,
11011 int64x2_t)
11012
11013 #define __ST3Q_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix) \
11014 __extension__ extern __inline void \
11015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11016 vst3q_lane_ ## funcsuffix (ptrtype *__ptr, \
11017 intype __b, const int __c) \
11018 { \
11019 union { intype __i; \
11020 __builtin_aarch64_simd_ci __o; } __temp = { __b }; \
11021 __builtin_aarch64_st3_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11022 __ptr, __temp.__o, __c); \
11023 }
11024
11025 __ST3Q_LANE_FUNC (float16x8x3_t, float16_t, v8hf, hf, f16)
11026 __ST3Q_LANE_FUNC (float32x4x3_t, float32_t, v4sf, sf, f32)
11027 __ST3Q_LANE_FUNC (float64x2x3_t, float64_t, v2df, df, f64)
11028 __ST3Q_LANE_FUNC (poly8x16x3_t, poly8_t, v16qi, qi, p8)
11029 __ST3Q_LANE_FUNC (poly16x8x3_t, poly16_t, v8hi, hi, p16)
11030 __ST3Q_LANE_FUNC (poly64x2x3_t, poly64_t, v2di, di, p64)
11031 __ST3Q_LANE_FUNC (int8x16x3_t, int8_t, v16qi, qi, s8)
11032 __ST3Q_LANE_FUNC (int16x8x3_t, int16_t, v8hi, hi, s16)
11033 __ST3Q_LANE_FUNC (int32x4x3_t, int32_t, v4si, si, s32)
11034 __ST3Q_LANE_FUNC (int64x2x3_t, int64_t, v2di, di, s64)
11035 __ST3Q_LANE_FUNC (uint8x16x3_t, uint8_t, v16qi, qi, u8)
11036 __ST3Q_LANE_FUNC (uint16x8x3_t, uint16_t, v8hi, hi, u16)
11037 __ST3Q_LANE_FUNC (uint32x4x3_t, uint32_t, v4si, si, u32)
11038 __ST3Q_LANE_FUNC (uint64x2x3_t, uint64_t, v2di, di, u64)
11039
11040 #define __ST4_LANE_FUNC(intype, largetype, ptrtype, mode, \
11041 qmode, ptr_mode, funcsuffix, signedtype) \
11042 __extension__ extern __inline void \
11043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11044 vst4_lane_ ## funcsuffix (ptrtype *__ptr, \
11045 intype __b, const int __c) \
11046 { \
11047 __builtin_aarch64_simd_xi __o; \
11048 largetype __temp; \
11049 __temp.val[0] \
11050 = vcombine_##funcsuffix (__b.val[0], \
11051 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11052 __temp.val[1] \
11053 = vcombine_##funcsuffix (__b.val[1], \
11054 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11055 __temp.val[2] \
11056 = vcombine_##funcsuffix (__b.val[2], \
11057 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11058 __temp.val[3] \
11059 = vcombine_##funcsuffix (__b.val[3], \
11060 vcreate_##funcsuffix (__AARCH64_UINT64_C (0))); \
11061 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
11062 (signedtype) __temp.val[0], 0); \
11063 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
11064 (signedtype) __temp.val[1], 1); \
11065 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
11066 (signedtype) __temp.val[2], 2); \
11067 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
11068 (signedtype) __temp.val[3], 3); \
11069 __builtin_aarch64_st4_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11070 __ptr, __o, __c); \
11071 }
11072
11073 __ST4_LANE_FUNC (float16x4x4_t, float16x8x4_t, float16_t, v4hf, v8hf, hf, f16,
11074 float16x8_t)
11075 __ST4_LANE_FUNC (float32x2x4_t, float32x4x4_t, float32_t, v2sf, v4sf, sf, f32,
11076 float32x4_t)
11077 __ST4_LANE_FUNC (float64x1x4_t, float64x2x4_t, float64_t, df, v2df, df, f64,
11078 float64x2_t)
11079 __ST4_LANE_FUNC (poly8x8x4_t, poly8x16x4_t, poly8_t, v8qi, v16qi, qi, p8,
11080 int8x16_t)
11081 __ST4_LANE_FUNC (poly16x4x4_t, poly16x8x4_t, poly16_t, v4hi, v8hi, hi, p16,
11082 int16x8_t)
11083 __ST4_LANE_FUNC (poly64x1x4_t, poly64x2x4_t, poly64_t, di, v2di_ssps, di, p64,
11084 poly64x2_t)
11085 __ST4_LANE_FUNC (int8x8x4_t, int8x16x4_t, int8_t, v8qi, v16qi, qi, s8,
11086 int8x16_t)
11087 __ST4_LANE_FUNC (int16x4x4_t, int16x8x4_t, int16_t, v4hi, v8hi, hi, s16,
11088 int16x8_t)
11089 __ST4_LANE_FUNC (int32x2x4_t, int32x4x4_t, int32_t, v2si, v4si, si, s32,
11090 int32x4_t)
11091 __ST4_LANE_FUNC (int64x1x4_t, int64x2x4_t, int64_t, di, v2di, di, s64,
11092 int64x2_t)
11093 __ST4_LANE_FUNC (uint8x8x4_t, uint8x16x4_t, uint8_t, v8qi, v16qi, qi, u8,
11094 int8x16_t)
11095 __ST4_LANE_FUNC (uint16x4x4_t, uint16x8x4_t, uint16_t, v4hi, v8hi, hi, u16,
11096 int16x8_t)
11097 __ST4_LANE_FUNC (uint32x2x4_t, uint32x4x4_t, uint32_t, v2si, v4si, si, u32,
11098 int32x4_t)
11099 __ST4_LANE_FUNC (uint64x1x4_t, uint64x2x4_t, uint64_t, di, v2di, di, u64,
11100 int64x2_t)
11101
11102 #define __ST4Q_LANE_FUNC(intype, ptrtype, mode, ptr_mode, funcsuffix) \
11103 __extension__ extern __inline void \
11104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
11105 vst4q_lane_ ## funcsuffix (ptrtype *__ptr, \
11106 intype __b, const int __c) \
11107 { \
11108 union { intype __i; \
11109 __builtin_aarch64_simd_xi __o; } __temp = { __b }; \
11110 __builtin_aarch64_st4_lane##mode ((__builtin_aarch64_simd_ ## ptr_mode *) \
11111 __ptr, __temp.__o, __c); \
11112 }
11113
11114 __ST4Q_LANE_FUNC (float16x8x4_t, float16_t, v8hf, hf, f16)
11115 __ST4Q_LANE_FUNC (float32x4x4_t, float32_t, v4sf, sf, f32)
11116 __ST4Q_LANE_FUNC (float64x2x4_t, float64_t, v2df, df, f64)
11117 __ST4Q_LANE_FUNC (poly8x16x4_t, poly8_t, v16qi, qi, p8)
11118 __ST4Q_LANE_FUNC (poly16x8x4_t, poly16_t, v8hi, hi, p16)
11119 __ST4Q_LANE_FUNC (poly64x2x4_t, poly64_t, v2di, di, p64)
11120 __ST4Q_LANE_FUNC (int8x16x4_t, int8_t, v16qi, qi, s8)
11121 __ST4Q_LANE_FUNC (int16x8x4_t, int16_t, v8hi, hi, s16)
11122 __ST4Q_LANE_FUNC (int32x4x4_t, int32_t, v4si, si, s32)
11123 __ST4Q_LANE_FUNC (int64x2x4_t, int64_t, v2di, di, s64)
11124 __ST4Q_LANE_FUNC (uint8x16x4_t, uint8_t, v16qi, qi, u8)
11125 __ST4Q_LANE_FUNC (uint16x8x4_t, uint16_t, v8hi, hi, u16)
11126 __ST4Q_LANE_FUNC (uint32x4x4_t, uint32_t, v4si, si, u32)
11127 __ST4Q_LANE_FUNC (uint64x2x4_t, uint64_t, v2di, di, u64)
11128
11129 __extension__ extern __inline int64_t
11130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11131 vaddlv_s32 (int32x2_t __a)
11132 {
11133 int64_t __result;
11134 __asm__ ("saddlp %0.1d, %1.2s" : "=w"(__result) : "w"(__a) : );
11135 return __result;
11136 }
11137
11138 __extension__ extern __inline uint64_t
11139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddlv_u32(uint32x2_t __a)11140 vaddlv_u32 (uint32x2_t __a)
11141 {
11142 uint64_t __result;
11143 __asm__ ("uaddlp %0.1d, %1.2s" : "=w"(__result) : "w"(__a) : );
11144 return __result;
11145 }
11146
11147 __extension__ extern __inline int16x4_t
11148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_laneq_s16(int16x4_t __a,int16x8_t __b,const int __c)11149 vqdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
11150 {
11151 return __builtin_aarch64_sqdmulh_laneqv4hi (__a, __b, __c);
11152 }
11153
11154 __extension__ extern __inline int32x2_t
11155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_laneq_s32(int32x2_t __a,int32x4_t __b,const int __c)11156 vqdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
11157 {
11158 return __builtin_aarch64_sqdmulh_laneqv2si (__a, __b, __c);
11159 }
11160
11161 __extension__ extern __inline int16x8_t
11162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_laneq_s16(int16x8_t __a,int16x8_t __b,const int __c)11163 vqdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
11164 {
11165 return __builtin_aarch64_sqdmulh_laneqv8hi (__a, __b, __c);
11166 }
11167
11168 __extension__ extern __inline int32x4_t
11169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_laneq_s32(int32x4_t __a,int32x4_t __b,const int __c)11170 vqdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
11171 {
11172 return __builtin_aarch64_sqdmulh_laneqv4si (__a, __b, __c);
11173 }
11174
11175 __extension__ extern __inline int16x4_t
11176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_laneq_s16(int16x4_t __a,int16x8_t __b,const int __c)11177 vqrdmulh_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __c)
11178 {
11179 return __builtin_aarch64_sqrdmulh_laneqv4hi (__a, __b, __c);
11180 }
11181
11182 __extension__ extern __inline int32x2_t
11183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_laneq_s32(int32x2_t __a,int32x4_t __b,const int __c)11184 vqrdmulh_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __c)
11185 {
11186 return __builtin_aarch64_sqrdmulh_laneqv2si (__a, __b, __c);
11187 }
11188
11189 __extension__ extern __inline int16x8_t
11190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_laneq_s16(int16x8_t __a,int16x8_t __b,const int __c)11191 vqrdmulhq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __c)
11192 {
11193 return __builtin_aarch64_sqrdmulh_laneqv8hi (__a, __b, __c);
11194 }
11195
11196 __extension__ extern __inline int32x4_t
11197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_laneq_s32(int32x4_t __a,int32x4_t __b,const int __c)11198 vqrdmulhq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __c)
11199 {
11200 return __builtin_aarch64_sqrdmulh_laneqv4si (__a, __b, __c);
11201 }
11202
11203 /* Table intrinsics. */
11204
11205 __extension__ extern __inline poly8x8_t
11206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1_p8(poly8x16_t __a,uint8x8_t __b)11207 vqtbl1_p8 (poly8x16_t __a, uint8x8_t __b)
11208 {
11209 poly8x8_t __result;
11210 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11211 : "=w"(__result)
11212 : "w"(__a), "w"(__b)
11213 : /* No clobbers */);
11214 return __result;
11215 }
11216
11217 __extension__ extern __inline int8x8_t
11218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1_s8(int8x16_t __a,uint8x8_t __b)11219 vqtbl1_s8 (int8x16_t __a, uint8x8_t __b)
11220 {
11221 int8x8_t __result;
11222 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11223 : "=w"(__result)
11224 : "w"(__a), "w"(__b)
11225 : /* No clobbers */);
11226 return __result;
11227 }
11228
11229 __extension__ extern __inline uint8x8_t
11230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1_u8(uint8x16_t __a,uint8x8_t __b)11231 vqtbl1_u8 (uint8x16_t __a, uint8x8_t __b)
11232 {
11233 uint8x8_t __result;
11234 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11235 : "=w"(__result)
11236 : "w"(__a), "w"(__b)
11237 : /* No clobbers */);
11238 return __result;
11239 }
11240
11241 __extension__ extern __inline poly8x16_t
11242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1q_p8(poly8x16_t __a,uint8x16_t __b)11243 vqtbl1q_p8 (poly8x16_t __a, uint8x16_t __b)
11244 {
11245 poly8x16_t __result;
11246 __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11247 : "=w"(__result)
11248 : "w"(__a), "w"(__b)
11249 : /* No clobbers */);
11250 return __result;
11251 }
11252
11253 __extension__ extern __inline int8x16_t
11254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1q_s8(int8x16_t __a,uint8x16_t __b)11255 vqtbl1q_s8 (int8x16_t __a, uint8x16_t __b)
11256 {
11257 int8x16_t __result;
11258 __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11259 : "=w"(__result)
11260 : "w"(__a), "w"(__b)
11261 : /* No clobbers */);
11262 return __result;
11263 }
11264
11265 __extension__ extern __inline uint8x16_t
11266 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl1q_u8(uint8x16_t __a,uint8x16_t __b)11267 vqtbl1q_u8 (uint8x16_t __a, uint8x16_t __b)
11268 {
11269 uint8x16_t __result;
11270 __asm__ ("tbl %0.16b, {%1.16b}, %2.16b"
11271 : "=w"(__result)
11272 : "w"(__a), "w"(__b)
11273 : /* No clobbers */);
11274 return __result;
11275 }
11276
11277 __extension__ extern __inline int8x8_t
11278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1_s8(int8x8_t __r,int8x16_t __tab,uint8x8_t __idx)11279 vqtbx1_s8 (int8x8_t __r, int8x16_t __tab, uint8x8_t __idx)
11280 {
11281 int8x8_t __result = __r;
11282 __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11283 : "+w"(__result)
11284 : "w"(__tab), "w"(__idx)
11285 : /* No clobbers */);
11286 return __result;
11287 }
11288
11289 __extension__ extern __inline uint8x8_t
11290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1_u8(uint8x8_t __r,uint8x16_t __tab,uint8x8_t __idx)11291 vqtbx1_u8 (uint8x8_t __r, uint8x16_t __tab, uint8x8_t __idx)
11292 {
11293 uint8x8_t __result = __r;
11294 __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11295 : "+w"(__result)
11296 : "w"(__tab), "w"(__idx)
11297 : /* No clobbers */);
11298 return __result;
11299 }
11300
11301 __extension__ extern __inline poly8x8_t
11302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1_p8(poly8x8_t __r,poly8x16_t __tab,uint8x8_t __idx)11303 vqtbx1_p8 (poly8x8_t __r, poly8x16_t __tab, uint8x8_t __idx)
11304 {
11305 poly8x8_t __result = __r;
11306 __asm__ ("tbx %0.8b,{%1.16b},%2.8b"
11307 : "+w"(__result)
11308 : "w"(__tab), "w"(__idx)
11309 : /* No clobbers */);
11310 return __result;
11311 }
11312
11313 __extension__ extern __inline int8x16_t
11314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1q_s8(int8x16_t __r,int8x16_t __tab,uint8x16_t __idx)11315 vqtbx1q_s8 (int8x16_t __r, int8x16_t __tab, uint8x16_t __idx)
11316 {
11317 int8x16_t __result = __r;
11318 __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11319 : "+w"(__result)
11320 : "w"(__tab), "w"(__idx)
11321 : /* No clobbers */);
11322 return __result;
11323 }
11324
11325 __extension__ extern __inline uint8x16_t
11326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1q_u8(uint8x16_t __r,uint8x16_t __tab,uint8x16_t __idx)11327 vqtbx1q_u8 (uint8x16_t __r, uint8x16_t __tab, uint8x16_t __idx)
11328 {
11329 uint8x16_t __result = __r;
11330 __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11331 : "+w"(__result)
11332 : "w"(__tab), "w"(__idx)
11333 : /* No clobbers */);
11334 return __result;
11335 }
11336
11337 __extension__ extern __inline poly8x16_t
11338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx1q_p8(poly8x16_t __r,poly8x16_t __tab,uint8x16_t __idx)11339 vqtbx1q_p8 (poly8x16_t __r, poly8x16_t __tab, uint8x16_t __idx)
11340 {
11341 poly8x16_t __result = __r;
11342 __asm__ ("tbx %0.16b,{%1.16b},%2.16b"
11343 : "+w"(__result)
11344 : "w"(__tab), "w"(__idx)
11345 : /* No clobbers */);
11346 return __result;
11347 }
11348
11349 /* V7 legacy table intrinsics. */
11350
11351 __extension__ extern __inline int8x8_t
11352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl1_s8(int8x8_t __tab,int8x8_t __idx)11353 vtbl1_s8 (int8x8_t __tab, int8x8_t __idx)
11354 {
11355 int8x8_t __result;
11356 int8x16_t __temp = vcombine_s8 (__tab, vcreate_s8 (__AARCH64_UINT64_C (0x0)));
11357 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11358 : "=w"(__result)
11359 : "w"(__temp), "w"(__idx)
11360 : /* No clobbers */);
11361 return __result;
11362 }
11363
11364 __extension__ extern __inline uint8x8_t
11365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl1_u8(uint8x8_t __tab,uint8x8_t __idx)11366 vtbl1_u8 (uint8x8_t __tab, uint8x8_t __idx)
11367 {
11368 uint8x8_t __result;
11369 uint8x16_t __temp = vcombine_u8 (__tab, vcreate_u8 (__AARCH64_UINT64_C (0x0)));
11370 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11371 : "=w"(__result)
11372 : "w"(__temp), "w"(__idx)
11373 : /* No clobbers */);
11374 return __result;
11375 }
11376
11377 __extension__ extern __inline poly8x8_t
11378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl1_p8(poly8x8_t __tab,uint8x8_t __idx)11379 vtbl1_p8 (poly8x8_t __tab, uint8x8_t __idx)
11380 {
11381 poly8x8_t __result;
11382 poly8x16_t __temp = vcombine_p8 (__tab, vcreate_p8 (__AARCH64_UINT64_C (0x0)));
11383 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11384 : "=w"(__result)
11385 : "w"(__temp), "w"(__idx)
11386 : /* No clobbers */);
11387 return __result;
11388 }
11389
11390 __extension__ extern __inline int8x8_t
11391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl2_s8(int8x8x2_t __tab,int8x8_t __idx)11392 vtbl2_s8 (int8x8x2_t __tab, int8x8_t __idx)
11393 {
11394 int8x8_t __result;
11395 int8x16_t __temp = vcombine_s8 (__tab.val[0], __tab.val[1]);
11396 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11397 : "=w"(__result)
11398 : "w"(__temp), "w"(__idx)
11399 : /* No clobbers */);
11400 return __result;
11401 }
11402
11403 __extension__ extern __inline uint8x8_t
11404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl2_u8(uint8x8x2_t __tab,uint8x8_t __idx)11405 vtbl2_u8 (uint8x8x2_t __tab, uint8x8_t __idx)
11406 {
11407 uint8x8_t __result;
11408 uint8x16_t __temp = vcombine_u8 (__tab.val[0], __tab.val[1]);
11409 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11410 : "=w"(__result)
11411 : "w"(__temp), "w"(__idx)
11412 : /* No clobbers */);
11413 return __result;
11414 }
11415
11416 __extension__ extern __inline poly8x8_t
11417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl2_p8(poly8x8x2_t __tab,uint8x8_t __idx)11418 vtbl2_p8 (poly8x8x2_t __tab, uint8x8_t __idx)
11419 {
11420 poly8x8_t __result;
11421 poly8x16_t __temp = vcombine_p8 (__tab.val[0], __tab.val[1]);
11422 __asm__ ("tbl %0.8b, {%1.16b}, %2.8b"
11423 : "=w"(__result)
11424 : "w"(__temp), "w"(__idx)
11425 : /* No clobbers */);
11426 return __result;
11427 }
11428
11429 __extension__ extern __inline int8x8_t
11430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl3_s8(int8x8x3_t __tab,int8x8_t __idx)11431 vtbl3_s8 (int8x8x3_t __tab, int8x8_t __idx)
11432 {
11433 int8x8_t __result;
11434 int8x16x2_t __temp;
11435 __builtin_aarch64_simd_oi __o;
11436 __temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
11437 __temp.val[1] = vcombine_s8 (__tab.val[2], vcreate_s8 (__AARCH64_UINT64_C (0x0)));
11438 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11439 (int8x16_t) __temp.val[0], 0);
11440 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11441 (int8x16_t) __temp.val[1], 1);
11442 __result = __builtin_aarch64_tbl3v8qi (__o, __idx);
11443 return __result;
11444 }
11445
11446 __extension__ extern __inline uint8x8_t
11447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl3_u8(uint8x8x3_t __tab,uint8x8_t __idx)11448 vtbl3_u8 (uint8x8x3_t __tab, uint8x8_t __idx)
11449 {
11450 uint8x8_t __result;
11451 uint8x16x2_t __temp;
11452 __builtin_aarch64_simd_oi __o;
11453 __temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
11454 __temp.val[1] = vcombine_u8 (__tab.val[2], vcreate_u8 (__AARCH64_UINT64_C (0x0)));
11455 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11456 (int8x16_t) __temp.val[0], 0);
11457 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11458 (int8x16_t) __temp.val[1], 1);
11459 __result = (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)__idx);
11460 return __result;
11461 }
11462
11463 __extension__ extern __inline poly8x8_t
11464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl3_p8(poly8x8x3_t __tab,uint8x8_t __idx)11465 vtbl3_p8 (poly8x8x3_t __tab, uint8x8_t __idx)
11466 {
11467 poly8x8_t __result;
11468 poly8x16x2_t __temp;
11469 __builtin_aarch64_simd_oi __o;
11470 __temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
11471 __temp.val[1] = vcombine_p8 (__tab.val[2], vcreate_p8 (__AARCH64_UINT64_C (0x0)));
11472 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11473 (int8x16_t) __temp.val[0], 0);
11474 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11475 (int8x16_t) __temp.val[1], 1);
11476 __result = (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)__idx);
11477 return __result;
11478 }
11479
11480 __extension__ extern __inline int8x8_t
11481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl4_s8(int8x8x4_t __tab,int8x8_t __idx)11482 vtbl4_s8 (int8x8x4_t __tab, int8x8_t __idx)
11483 {
11484 int8x8_t __result;
11485 int8x16x2_t __temp;
11486 __builtin_aarch64_simd_oi __o;
11487 __temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
11488 __temp.val[1] = vcombine_s8 (__tab.val[2], __tab.val[3]);
11489 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11490 (int8x16_t) __temp.val[0], 0);
11491 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11492 (int8x16_t) __temp.val[1], 1);
11493 __result = __builtin_aarch64_tbl3v8qi (__o, __idx);
11494 return __result;
11495 }
11496
11497 __extension__ extern __inline uint8x8_t
11498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl4_u8(uint8x8x4_t __tab,uint8x8_t __idx)11499 vtbl4_u8 (uint8x8x4_t __tab, uint8x8_t __idx)
11500 {
11501 uint8x8_t __result;
11502 uint8x16x2_t __temp;
11503 __builtin_aarch64_simd_oi __o;
11504 __temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
11505 __temp.val[1] = vcombine_u8 (__tab.val[2], __tab.val[3]);
11506 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11507 (int8x16_t) __temp.val[0], 0);
11508 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11509 (int8x16_t) __temp.val[1], 1);
11510 __result = (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)__idx);
11511 return __result;
11512 }
11513
11514 __extension__ extern __inline poly8x8_t
11515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbl4_p8(poly8x8x4_t __tab,uint8x8_t __idx)11516 vtbl4_p8 (poly8x8x4_t __tab, uint8x8_t __idx)
11517 {
11518 poly8x8_t __result;
11519 poly8x16x2_t __temp;
11520 __builtin_aarch64_simd_oi __o;
11521 __temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
11522 __temp.val[1] = vcombine_p8 (__tab.val[2], __tab.val[3]);
11523 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11524 (int8x16_t) __temp.val[0], 0);
11525 __o = __builtin_aarch64_set_qregoiv16qi (__o,
11526 (int8x16_t) __temp.val[1], 1);
11527 __result = (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)__idx);
11528 return __result;
11529 }
11530
11531 __extension__ extern __inline int8x8_t
11532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx2_s8(int8x8_t __r,int8x8x2_t __tab,int8x8_t __idx)11533 vtbx2_s8 (int8x8_t __r, int8x8x2_t __tab, int8x8_t __idx)
11534 {
11535 int8x8_t __result = __r;
11536 int8x16_t __temp = vcombine_s8 (__tab.val[0], __tab.val[1]);
11537 __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11538 : "+w"(__result)
11539 : "w"(__temp), "w"(__idx)
11540 : /* No clobbers */);
11541 return __result;
11542 }
11543
11544 __extension__ extern __inline uint8x8_t
11545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx2_u8(uint8x8_t __r,uint8x8x2_t __tab,uint8x8_t __idx)11546 vtbx2_u8 (uint8x8_t __r, uint8x8x2_t __tab, uint8x8_t __idx)
11547 {
11548 uint8x8_t __result = __r;
11549 uint8x16_t __temp = vcombine_u8 (__tab.val[0], __tab.val[1]);
11550 __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11551 : "+w"(__result)
11552 : "w"(__temp), "w"(__idx)
11553 : /* No clobbers */);
11554 return __result;
11555 }
11556
11557 __extension__ extern __inline poly8x8_t
11558 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx2_p8(poly8x8_t __r,poly8x8x2_t __tab,uint8x8_t __idx)11559 vtbx2_p8 (poly8x8_t __r, poly8x8x2_t __tab, uint8x8_t __idx)
11560 {
11561 poly8x8_t __result = __r;
11562 poly8x16_t __temp = vcombine_p8 (__tab.val[0], __tab.val[1]);
11563 __asm__ ("tbx %0.8b, {%1.16b}, %2.8b"
11564 : "+w"(__result)
11565 : "w"(__temp), "w"(__idx)
11566 : /* No clobbers */);
11567 return __result;
11568 }
11569
11570 /* End of temporary inline asm. */
11571
11572 /* Start of optimal implementations in approved order. */
11573
11574 /* vabd. */
11575
11576 __extension__ extern __inline float32_t
11577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabds_f32(float32_t __a,float32_t __b)11578 vabds_f32 (float32_t __a, float32_t __b)
11579 {
11580 return __builtin_aarch64_fabdsf (__a, __b);
11581 }
11582
11583 __extension__ extern __inline float64_t
11584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdd_f64(float64_t __a,float64_t __b)11585 vabdd_f64 (float64_t __a, float64_t __b)
11586 {
11587 return __builtin_aarch64_fabddf (__a, __b);
11588 }
11589
11590 __extension__ extern __inline float32x2_t
11591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_f32(float32x2_t __a,float32x2_t __b)11592 vabd_f32 (float32x2_t __a, float32x2_t __b)
11593 {
11594 return __builtin_aarch64_fabdv2sf (__a, __b);
11595 }
11596
11597 __extension__ extern __inline float64x1_t
11598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_f64(float64x1_t __a,float64x1_t __b)11599 vabd_f64 (float64x1_t __a, float64x1_t __b)
11600 {
11601 return (float64x1_t) {vabdd_f64 (vget_lane_f64 (__a, 0),
11602 vget_lane_f64 (__b, 0))};
11603 }
11604
11605 __extension__ extern __inline float32x4_t
11606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_f32(float32x4_t __a,float32x4_t __b)11607 vabdq_f32 (float32x4_t __a, float32x4_t __b)
11608 {
11609 return __builtin_aarch64_fabdv4sf (__a, __b);
11610 }
11611
11612 __extension__ extern __inline float64x2_t
11613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_f64(float64x2_t __a,float64x2_t __b)11614 vabdq_f64 (float64x2_t __a, float64x2_t __b)
11615 {
11616 return __builtin_aarch64_fabdv2df (__a, __b);
11617 }
11618
11619 /* vabs */
11620
11621 __extension__ extern __inline float32x2_t
11622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_f32(float32x2_t __a)11623 vabs_f32 (float32x2_t __a)
11624 {
11625 return __builtin_aarch64_absv2sf (__a);
11626 }
11627
11628 __extension__ extern __inline float64x1_t
11629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_f64(float64x1_t __a)11630 vabs_f64 (float64x1_t __a)
11631 {
11632 return (float64x1_t) {__builtin_fabs (__a[0])};
11633 }
11634
11635 __extension__ extern __inline int8x8_t
11636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_s8(int8x8_t __a)11637 vabs_s8 (int8x8_t __a)
11638 {
11639 return __builtin_aarch64_absv8qi (__a);
11640 }
11641
11642 __extension__ extern __inline int16x4_t
11643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_s16(int16x4_t __a)11644 vabs_s16 (int16x4_t __a)
11645 {
11646 return __builtin_aarch64_absv4hi (__a);
11647 }
11648
11649 __extension__ extern __inline int32x2_t
11650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_s32(int32x2_t __a)11651 vabs_s32 (int32x2_t __a)
11652 {
11653 return __builtin_aarch64_absv2si (__a);
11654 }
11655
11656 __extension__ extern __inline int64x1_t
11657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabs_s64(int64x1_t __a)11658 vabs_s64 (int64x1_t __a)
11659 {
11660 return (int64x1_t) {__builtin_aarch64_absdi (__a[0])};
11661 }
11662
11663 __extension__ extern __inline float32x4_t
11664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_f32(float32x4_t __a)11665 vabsq_f32 (float32x4_t __a)
11666 {
11667 return __builtin_aarch64_absv4sf (__a);
11668 }
11669
11670 __extension__ extern __inline float64x2_t
11671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_f64(float64x2_t __a)11672 vabsq_f64 (float64x2_t __a)
11673 {
11674 return __builtin_aarch64_absv2df (__a);
11675 }
11676
11677 __extension__ extern __inline int8x16_t
11678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_s8(int8x16_t __a)11679 vabsq_s8 (int8x16_t __a)
11680 {
11681 return __builtin_aarch64_absv16qi (__a);
11682 }
11683
11684 __extension__ extern __inline int16x8_t
11685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_s16(int16x8_t __a)11686 vabsq_s16 (int16x8_t __a)
11687 {
11688 return __builtin_aarch64_absv8hi (__a);
11689 }
11690
11691 __extension__ extern __inline int32x4_t
11692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_s32(int32x4_t __a)11693 vabsq_s32 (int32x4_t __a)
11694 {
11695 return __builtin_aarch64_absv4si (__a);
11696 }
11697
11698 __extension__ extern __inline int64x2_t
11699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_s64(int64x2_t __a)11700 vabsq_s64 (int64x2_t __a)
11701 {
11702 return __builtin_aarch64_absv2di (__a);
11703 }
11704
11705 /* Try to avoid moving between integer and vector registers.
11706 For why the cast to unsigned is needed check the vnegd_s64 intrinsic.
11707 There is a testcase related to this issue:
11708 gcc.target/aarch64/vabsd_s64.c. */
11709
11710 __extension__ extern __inline int64_t
11711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsd_s64(int64_t __a)11712 vabsd_s64 (int64_t __a)
11713 {
11714 return __a < 0 ? - (uint64_t) __a : __a;
11715 }
11716
11717 /* vadd */
11718
11719 __extension__ extern __inline int64_t
11720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddd_s64(int64_t __a,int64_t __b)11721 vaddd_s64 (int64_t __a, int64_t __b)
11722 {
11723 return __a + __b;
11724 }
11725
11726 __extension__ extern __inline uint64_t
11727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddd_u64(uint64_t __a,uint64_t __b)11728 vaddd_u64 (uint64_t __a, uint64_t __b)
11729 {
11730 return __a + __b;
11731 }
11732
11733 /* vaddv */
11734
11735 __extension__ extern __inline int8_t
11736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_s8(int8x8_t __a)11737 vaddv_s8 (int8x8_t __a)
11738 {
11739 return __builtin_aarch64_reduc_plus_scal_v8qi (__a);
11740 }
11741
11742 __extension__ extern __inline int16_t
11743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_s16(int16x4_t __a)11744 vaddv_s16 (int16x4_t __a)
11745 {
11746 return __builtin_aarch64_reduc_plus_scal_v4hi (__a);
11747 }
11748
11749 __extension__ extern __inline int32_t
11750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_s32(int32x2_t __a)11751 vaddv_s32 (int32x2_t __a)
11752 {
11753 return __builtin_aarch64_reduc_plus_scal_v2si (__a);
11754 }
11755
11756 __extension__ extern __inline uint8_t
11757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_u8(uint8x8_t __a)11758 vaddv_u8 (uint8x8_t __a)
11759 {
11760 return (uint8_t) __builtin_aarch64_reduc_plus_scal_v8qi ((int8x8_t) __a);
11761 }
11762
11763 __extension__ extern __inline uint16_t
11764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_u16(uint16x4_t __a)11765 vaddv_u16 (uint16x4_t __a)
11766 {
11767 return (uint16_t) __builtin_aarch64_reduc_plus_scal_v4hi ((int16x4_t) __a);
11768 }
11769
11770 __extension__ extern __inline uint32_t
11771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_u32(uint32x2_t __a)11772 vaddv_u32 (uint32x2_t __a)
11773 {
11774 return (int32_t) __builtin_aarch64_reduc_plus_scal_v2si ((int32x2_t) __a);
11775 }
11776
11777 __extension__ extern __inline int8_t
11778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_s8(int8x16_t __a)11779 vaddvq_s8 (int8x16_t __a)
11780 {
11781 return __builtin_aarch64_reduc_plus_scal_v16qi (__a);
11782 }
11783
11784 __extension__ extern __inline int16_t
11785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_s16(int16x8_t __a)11786 vaddvq_s16 (int16x8_t __a)
11787 {
11788 return __builtin_aarch64_reduc_plus_scal_v8hi (__a);
11789 }
11790
11791 __extension__ extern __inline int32_t
11792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_s32(int32x4_t __a)11793 vaddvq_s32 (int32x4_t __a)
11794 {
11795 return __builtin_aarch64_reduc_plus_scal_v4si (__a);
11796 }
11797
11798 __extension__ extern __inline int64_t
11799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_s64(int64x2_t __a)11800 vaddvq_s64 (int64x2_t __a)
11801 {
11802 return __builtin_aarch64_reduc_plus_scal_v2di (__a);
11803 }
11804
11805 __extension__ extern __inline uint8_t
11806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_u8(uint8x16_t __a)11807 vaddvq_u8 (uint8x16_t __a)
11808 {
11809 return (uint8_t) __builtin_aarch64_reduc_plus_scal_v16qi ((int8x16_t) __a);
11810 }
11811
11812 __extension__ extern __inline uint16_t
11813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_u16(uint16x8_t __a)11814 vaddvq_u16 (uint16x8_t __a)
11815 {
11816 return (uint16_t) __builtin_aarch64_reduc_plus_scal_v8hi ((int16x8_t) __a);
11817 }
11818
11819 __extension__ extern __inline uint32_t
11820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_u32(uint32x4_t __a)11821 vaddvq_u32 (uint32x4_t __a)
11822 {
11823 return (uint32_t) __builtin_aarch64_reduc_plus_scal_v4si ((int32x4_t) __a);
11824 }
11825
11826 __extension__ extern __inline uint64_t
11827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_u64(uint64x2_t __a)11828 vaddvq_u64 (uint64x2_t __a)
11829 {
11830 return (uint64_t) __builtin_aarch64_reduc_plus_scal_v2di ((int64x2_t) __a);
11831 }
11832
11833 __extension__ extern __inline float32_t
11834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddv_f32(float32x2_t __a)11835 vaddv_f32 (float32x2_t __a)
11836 {
11837 return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
11838 }
11839
11840 __extension__ extern __inline float32_t
11841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_f32(float32x4_t __a)11842 vaddvq_f32 (float32x4_t __a)
11843 {
11844 return __builtin_aarch64_reduc_plus_scal_v4sf (__a);
11845 }
11846
11847 __extension__ extern __inline float64_t
11848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddvq_f64(float64x2_t __a)11849 vaddvq_f64 (float64x2_t __a)
11850 {
11851 return __builtin_aarch64_reduc_plus_scal_v2df (__a);
11852 }
11853
11854 /* vbsl */
11855
11856 __extension__ extern __inline float16x4_t
11857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_f16(uint16x4_t __a,float16x4_t __b,float16x4_t __c)11858 vbsl_f16 (uint16x4_t __a, float16x4_t __b, float16x4_t __c)
11859 {
11860 return __builtin_aarch64_simd_bslv4hf_suss (__a, __b, __c);
11861 }
11862
11863 __extension__ extern __inline float32x2_t
11864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_f32(uint32x2_t __a,float32x2_t __b,float32x2_t __c)11865 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c)
11866 {
11867 return __builtin_aarch64_simd_bslv2sf_suss (__a, __b, __c);
11868 }
11869
11870 __extension__ extern __inline float64x1_t
11871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_f64(uint64x1_t __a,float64x1_t __b,float64x1_t __c)11872 vbsl_f64 (uint64x1_t __a, float64x1_t __b, float64x1_t __c)
11873 {
11874 return (float64x1_t)
11875 { __builtin_aarch64_simd_bsldf_suss (__a[0], __b[0], __c[0]) };
11876 }
11877
11878 __extension__ extern __inline poly8x8_t
11879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_p8(uint8x8_t __a,poly8x8_t __b,poly8x8_t __c)11880 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c)
11881 {
11882 return __builtin_aarch64_simd_bslv8qi_pupp (__a, __b, __c);
11883 }
11884
11885 __extension__ extern __inline poly16x4_t
11886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_p16(uint16x4_t __a,poly16x4_t __b,poly16x4_t __c)11887 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c)
11888 {
11889 return __builtin_aarch64_simd_bslv4hi_pupp (__a, __b, __c);
11890 }
11891 __extension__ extern __inline poly64x1_t
11892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_p64(uint64x1_t __a,poly64x1_t __b,poly64x1_t __c)11893 vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c)
11894 {
11895 return (poly64x1_t)
11896 {__builtin_aarch64_simd_bsldi_pupp (__a[0], __b[0], __c[0])};
11897 }
11898
11899 __extension__ extern __inline int8x8_t
11900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_s8(uint8x8_t __a,int8x8_t __b,int8x8_t __c)11901 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c)
11902 {
11903 return __builtin_aarch64_simd_bslv8qi_suss (__a, __b, __c);
11904 }
11905
11906 __extension__ extern __inline int16x4_t
11907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_s16(uint16x4_t __a,int16x4_t __b,int16x4_t __c)11908 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c)
11909 {
11910 return __builtin_aarch64_simd_bslv4hi_suss (__a, __b, __c);
11911 }
11912
11913 __extension__ extern __inline int32x2_t
11914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_s32(uint32x2_t __a,int32x2_t __b,int32x2_t __c)11915 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c)
11916 {
11917 return __builtin_aarch64_simd_bslv2si_suss (__a, __b, __c);
11918 }
11919
11920 __extension__ extern __inline int64x1_t
11921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_s64(uint64x1_t __a,int64x1_t __b,int64x1_t __c)11922 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c)
11923 {
11924 return (int64x1_t)
11925 {__builtin_aarch64_simd_bsldi_suss (__a[0], __b[0], __c[0])};
11926 }
11927
11928 __extension__ extern __inline uint8x8_t
11929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_u8(uint8x8_t __a,uint8x8_t __b,uint8x8_t __c)11930 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c)
11931 {
11932 return __builtin_aarch64_simd_bslv8qi_uuuu (__a, __b, __c);
11933 }
11934
11935 __extension__ extern __inline uint16x4_t
11936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c)11937 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c)
11938 {
11939 return __builtin_aarch64_simd_bslv4hi_uuuu (__a, __b, __c);
11940 }
11941
11942 __extension__ extern __inline uint32x2_t
11943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c)11944 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c)
11945 {
11946 return __builtin_aarch64_simd_bslv2si_uuuu (__a, __b, __c);
11947 }
11948
11949 __extension__ extern __inline uint64x1_t
11950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbsl_u64(uint64x1_t __a,uint64x1_t __b,uint64x1_t __c)11951 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c)
11952 {
11953 return (uint64x1_t)
11954 {__builtin_aarch64_simd_bsldi_uuuu (__a[0], __b[0], __c[0])};
11955 }
11956
11957 __extension__ extern __inline float16x8_t
11958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_f16(uint16x8_t __a,float16x8_t __b,float16x8_t __c)11959 vbslq_f16 (uint16x8_t __a, float16x8_t __b, float16x8_t __c)
11960 {
11961 return __builtin_aarch64_simd_bslv8hf_suss (__a, __b, __c);
11962 }
11963
11964 __extension__ extern __inline float32x4_t
11965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_f32(uint32x4_t __a,float32x4_t __b,float32x4_t __c)11966 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c)
11967 {
11968 return __builtin_aarch64_simd_bslv4sf_suss (__a, __b, __c);
11969 }
11970
11971 __extension__ extern __inline float64x2_t
11972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_f64(uint64x2_t __a,float64x2_t __b,float64x2_t __c)11973 vbslq_f64 (uint64x2_t __a, float64x2_t __b, float64x2_t __c)
11974 {
11975 return __builtin_aarch64_simd_bslv2df_suss (__a, __b, __c);
11976 }
11977
11978 __extension__ extern __inline poly8x16_t
11979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_p8(uint8x16_t __a,poly8x16_t __b,poly8x16_t __c)11980 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c)
11981 {
11982 return __builtin_aarch64_simd_bslv16qi_pupp (__a, __b, __c);
11983 }
11984
11985 __extension__ extern __inline poly16x8_t
11986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_p16(uint16x8_t __a,poly16x8_t __b,poly16x8_t __c)11987 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c)
11988 {
11989 return __builtin_aarch64_simd_bslv8hi_pupp (__a, __b, __c);
11990 }
11991
11992 __extension__ extern __inline int8x16_t
11993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_s8(uint8x16_t __a,int8x16_t __b,int8x16_t __c)11994 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c)
11995 {
11996 return __builtin_aarch64_simd_bslv16qi_suss (__a, __b, __c);
11997 }
11998
11999 __extension__ extern __inline int16x8_t
12000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_s16(uint16x8_t __a,int16x8_t __b,int16x8_t __c)12001 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c)
12002 {
12003 return __builtin_aarch64_simd_bslv8hi_suss (__a, __b, __c);
12004 }
12005
12006 __extension__ extern __inline poly64x2_t
12007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_p64(uint64x2_t __a,poly64x2_t __b,poly64x2_t __c)12008 vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c)
12009 {
12010 return __builtin_aarch64_simd_bslv2di_pupp (__a, __b, __c);
12011 }
12012
12013 __extension__ extern __inline int32x4_t
12014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_s32(uint32x4_t __a,int32x4_t __b,int32x4_t __c)12015 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c)
12016 {
12017 return __builtin_aarch64_simd_bslv4si_suss (__a, __b, __c);
12018 }
12019
12020 __extension__ extern __inline int64x2_t
12021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_s64(uint64x2_t __a,int64x2_t __b,int64x2_t __c)12022 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c)
12023 {
12024 return __builtin_aarch64_simd_bslv2di_suss (__a, __b, __c);
12025 }
12026
12027 __extension__ extern __inline uint8x16_t
12028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)12029 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
12030 {
12031 return __builtin_aarch64_simd_bslv16qi_uuuu (__a, __b, __c);
12032 }
12033
12034 __extension__ extern __inline uint16x8_t
12035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)12036 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
12037 {
12038 return __builtin_aarch64_simd_bslv8hi_uuuu (__a, __b, __c);
12039 }
12040
12041 __extension__ extern __inline uint32x4_t
12042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)12043 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
12044 {
12045 return __builtin_aarch64_simd_bslv4si_uuuu (__a, __b, __c);
12046 }
12047
12048 __extension__ extern __inline uint64x2_t
12049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbslq_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)12050 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
12051 {
12052 return __builtin_aarch64_simd_bslv2di_uuuu (__a, __b, __c);
12053 }
12054
12055 /* ARMv8.1-A instrinsics. */
12056 #pragma GCC push_options
12057 #pragma GCC target ("+nothing+rdma")
12058
12059 __extension__ extern __inline int16x4_t
12060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)12061 vqrdmlah_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
12062 {
12063 return __builtin_aarch64_sqrdmlahv4hi (__a, __b, __c);
12064 }
12065
12066 __extension__ extern __inline int32x2_t
12067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)12068 vqrdmlah_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
12069 {
12070 return __builtin_aarch64_sqrdmlahv2si (__a, __b, __c);
12071 }
12072
12073 __extension__ extern __inline int16x8_t
12074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)12075 vqrdmlahq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
12076 {
12077 return __builtin_aarch64_sqrdmlahv8hi (__a, __b, __c);
12078 }
12079
12080 __extension__ extern __inline int32x4_t
12081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)12082 vqrdmlahq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
12083 {
12084 return __builtin_aarch64_sqrdmlahv4si (__a, __b, __c);
12085 }
12086
12087 __extension__ extern __inline int16x4_t
12088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c)12089 vqrdmlsh_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c)
12090 {
12091 return __builtin_aarch64_sqrdmlshv4hi (__a, __b, __c);
12092 }
12093
12094 __extension__ extern __inline int32x2_t
12095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c)12096 vqrdmlsh_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c)
12097 {
12098 return __builtin_aarch64_sqrdmlshv2si (__a, __b, __c);
12099 }
12100
12101 __extension__ extern __inline int16x8_t
12102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)12103 vqrdmlshq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
12104 {
12105 return __builtin_aarch64_sqrdmlshv8hi (__a, __b, __c);
12106 }
12107
12108 __extension__ extern __inline int32x4_t
12109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)12110 vqrdmlshq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
12111 {
12112 return __builtin_aarch64_sqrdmlshv4si (__a, __b, __c);
12113 }
12114
12115 __extension__ extern __inline int16x4_t
12116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_laneq_s16(int16x4_t __a,int16x4_t __b,int16x8_t __c,const int __d)12117 vqrdmlah_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
12118 {
12119 return __builtin_aarch64_sqrdmlah_laneqv4hi (__a, __b, __c, __d);
12120 }
12121
12122 __extension__ extern __inline int32x2_t
12123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_laneq_s32(int32x2_t __a,int32x2_t __b,int32x4_t __c,const int __d)12124 vqrdmlah_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
12125 {
12126 return __builtin_aarch64_sqrdmlah_laneqv2si (__a, __b, __c, __d);
12127 }
12128
12129 __extension__ extern __inline int16x8_t
12130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_laneq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c,const int __d)12131 vqrdmlahq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
12132 {
12133 return __builtin_aarch64_sqrdmlah_laneqv8hi (__a, __b, __c, __d);
12134 }
12135
12136 __extension__ extern __inline int32x4_t
12137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_laneq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c,const int __d)12138 vqrdmlahq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
12139 {
12140 return __builtin_aarch64_sqrdmlah_laneqv4si (__a, __b, __c, __d);
12141 }
12142
12143 __extension__ extern __inline int16x4_t
12144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_laneq_s16(int16x4_t __a,int16x4_t __b,int16x8_t __c,const int __d)12145 vqrdmlsh_laneq_s16 (int16x4_t __a, int16x4_t __b, int16x8_t __c, const int __d)
12146 {
12147 return __builtin_aarch64_sqrdmlsh_laneqv4hi (__a, __b, __c, __d);
12148 }
12149
12150 __extension__ extern __inline int32x2_t
12151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_laneq_s32(int32x2_t __a,int32x2_t __b,int32x4_t __c,const int __d)12152 vqrdmlsh_laneq_s32 (int32x2_t __a, int32x2_t __b, int32x4_t __c, const int __d)
12153 {
12154 return __builtin_aarch64_sqrdmlsh_laneqv2si (__a, __b, __c, __d);
12155 }
12156
12157 __extension__ extern __inline int16x8_t
12158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_laneq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c,const int __d)12159 vqrdmlshq_laneq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c, const int __d)
12160 {
12161 return __builtin_aarch64_sqrdmlsh_laneqv8hi (__a, __b, __c, __d);
12162 }
12163
12164 __extension__ extern __inline int32x4_t
12165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_laneq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c,const int __d)12166 vqrdmlshq_laneq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c, const int __d)
12167 {
12168 return __builtin_aarch64_sqrdmlsh_laneqv4si (__a, __b, __c, __d);
12169 }
12170
12171 __extension__ extern __inline int16x4_t
12172 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)12173 vqrdmlah_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
12174 {
12175 return __builtin_aarch64_sqrdmlah_lanev4hi (__a, __b, __c, __d);
12176 }
12177
12178 __extension__ extern __inline int32x2_t
12179 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlah_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)12180 vqrdmlah_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
12181 {
12182 return __builtin_aarch64_sqrdmlah_lanev2si (__a, __b, __c, __d);
12183 }
12184
12185 __extension__ extern __inline int16x8_t
12186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __d)12187 vqrdmlahq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
12188 {
12189 return __builtin_aarch64_sqrdmlah_lanev8hi (__a, __b, __c, __d);
12190 }
12191
12192 __extension__ extern __inline int32x4_t
12193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __d)12194 vqrdmlahq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
12195 {
12196 return __builtin_aarch64_sqrdmlah_lanev4si (__a, __b, __c, __d);
12197 }
12198
12199 __extension__ extern __inline int16_t
12200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahh_s16(int16_t __a,int16_t __b,int16_t __c)12201 vqrdmlahh_s16 (int16_t __a, int16_t __b, int16_t __c)
12202 {
12203 return (int16_t) __builtin_aarch64_sqrdmlahhi (__a, __b, __c);
12204 }
12205
12206 __extension__ extern __inline int16_t
12207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahh_lane_s16(int16_t __a,int16_t __b,int16x4_t __c,const int __d)12208 vqrdmlahh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
12209 {
12210 return __builtin_aarch64_sqrdmlah_lanehi (__a, __b, __c, __d);
12211 }
12212
12213 __extension__ extern __inline int16_t
12214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahh_laneq_s16(int16_t __a,int16_t __b,int16x8_t __c,const int __d)12215 vqrdmlahh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
12216 {
12217 return __builtin_aarch64_sqrdmlah_laneqhi (__a, __b, __c, __d);
12218 }
12219
12220 __extension__ extern __inline int32_t
12221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahs_s32(int32_t __a,int32_t __b,int32_t __c)12222 vqrdmlahs_s32 (int32_t __a, int32_t __b, int32_t __c)
12223 {
12224 return (int32_t) __builtin_aarch64_sqrdmlahsi (__a, __b, __c);
12225 }
12226
12227 __extension__ extern __inline int32_t
12228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahs_lane_s32(int32_t __a,int32_t __b,int32x2_t __c,const int __d)12229 vqrdmlahs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
12230 {
12231 return __builtin_aarch64_sqrdmlah_lanesi (__a, __b, __c, __d);
12232 }
12233
12234 __extension__ extern __inline int32_t
12235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlahs_laneq_s32(int32_t __a,int32_t __b,int32x4_t __c,const int __d)12236 vqrdmlahs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
12237 {
12238 return __builtin_aarch64_sqrdmlah_laneqsi (__a, __b, __c, __d);
12239 }
12240
12241 __extension__ extern __inline int16x4_t
12242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __d)12243 vqrdmlsh_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d)
12244 {
12245 return __builtin_aarch64_sqrdmlsh_lanev4hi (__a, __b, __c, __d);
12246 }
12247
12248 __extension__ extern __inline int32x2_t
12249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlsh_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __d)12250 vqrdmlsh_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d)
12251 {
12252 return __builtin_aarch64_sqrdmlsh_lanev2si (__a, __b, __c, __d);
12253 }
12254
12255 __extension__ extern __inline int16x8_t
12256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __d)12257 vqrdmlshq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d)
12258 {
12259 return __builtin_aarch64_sqrdmlsh_lanev8hi (__a, __b, __c, __d);
12260 }
12261
12262 __extension__ extern __inline int32x4_t
12263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __d)12264 vqrdmlshq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d)
12265 {
12266 return __builtin_aarch64_sqrdmlsh_lanev4si (__a, __b, __c, __d);
12267 }
12268
12269 __extension__ extern __inline int16_t
12270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshh_s16(int16_t __a,int16_t __b,int16_t __c)12271 vqrdmlshh_s16 (int16_t __a, int16_t __b, int16_t __c)
12272 {
12273 return (int16_t) __builtin_aarch64_sqrdmlshhi (__a, __b, __c);
12274 }
12275
12276 __extension__ extern __inline int16_t
12277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshh_lane_s16(int16_t __a,int16_t __b,int16x4_t __c,const int __d)12278 vqrdmlshh_lane_s16 (int16_t __a, int16_t __b, int16x4_t __c, const int __d)
12279 {
12280 return __builtin_aarch64_sqrdmlsh_lanehi (__a, __b, __c, __d);
12281 }
12282
12283 __extension__ extern __inline int16_t
12284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshh_laneq_s16(int16_t __a,int16_t __b,int16x8_t __c,const int __d)12285 vqrdmlshh_laneq_s16 (int16_t __a, int16_t __b, int16x8_t __c, const int __d)
12286 {
12287 return __builtin_aarch64_sqrdmlsh_laneqhi (__a, __b, __c, __d);
12288 }
12289
12290 __extension__ extern __inline int32_t
12291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshs_s32(int32_t __a,int32_t __b,int32_t __c)12292 vqrdmlshs_s32 (int32_t __a, int32_t __b, int32_t __c)
12293 {
12294 return (int32_t) __builtin_aarch64_sqrdmlshsi (__a, __b, __c);
12295 }
12296
12297 __extension__ extern __inline int32_t
12298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshs_lane_s32(int32_t __a,int32_t __b,int32x2_t __c,const int __d)12299 vqrdmlshs_lane_s32 (int32_t __a, int32_t __b, int32x2_t __c, const int __d)
12300 {
12301 return __builtin_aarch64_sqrdmlsh_lanesi (__a, __b, __c, __d);
12302 }
12303
12304 __extension__ extern __inline int32_t
12305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmlshs_laneq_s32(int32_t __a,int32_t __b,int32x4_t __c,const int __d)12306 vqrdmlshs_laneq_s32 (int32_t __a, int32_t __b, int32x4_t __c, const int __d)
12307 {
12308 return __builtin_aarch64_sqrdmlsh_laneqsi (__a, __b, __c, __d);
12309 }
12310 #pragma GCC pop_options
12311
12312 #pragma GCC push_options
12313 #pragma GCC target ("+nothing+crypto")
12314 /* vaes */
12315
12316 __extension__ extern __inline uint8x16_t
12317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaeseq_u8(uint8x16_t data,uint8x16_t key)12318 vaeseq_u8 (uint8x16_t data, uint8x16_t key)
12319 {
12320 return __builtin_aarch64_crypto_aesev16qi_uuu (data, key);
12321 }
12322
12323 __extension__ extern __inline uint8x16_t
12324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaesdq_u8(uint8x16_t data,uint8x16_t key)12325 vaesdq_u8 (uint8x16_t data, uint8x16_t key)
12326 {
12327 return __builtin_aarch64_crypto_aesdv16qi_uuu (data, key);
12328 }
12329
12330 __extension__ extern __inline uint8x16_t
12331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaesmcq_u8(uint8x16_t data)12332 vaesmcq_u8 (uint8x16_t data)
12333 {
12334 return __builtin_aarch64_crypto_aesmcv16qi_uu (data);
12335 }
12336
12337 __extension__ extern __inline uint8x16_t
12338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaesimcq_u8(uint8x16_t data)12339 vaesimcq_u8 (uint8x16_t data)
12340 {
12341 return __builtin_aarch64_crypto_aesimcv16qi_uu (data);
12342 }
12343 #pragma GCC pop_options
12344
12345 /* vcage */
12346
12347 __extension__ extern __inline uint64x1_t
12348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcage_f64(float64x1_t __a,float64x1_t __b)12349 vcage_f64 (float64x1_t __a, float64x1_t __b)
12350 {
12351 return vabs_f64 (__a) >= vabs_f64 (__b);
12352 }
12353
12354 __extension__ extern __inline uint32_t
12355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcages_f32(float32_t __a,float32_t __b)12356 vcages_f32 (float32_t __a, float32_t __b)
12357 {
12358 return __builtin_fabsf (__a) >= __builtin_fabsf (__b) ? -1 : 0;
12359 }
12360
12361 __extension__ extern __inline uint32x2_t
12362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcage_f32(float32x2_t __a,float32x2_t __b)12363 vcage_f32 (float32x2_t __a, float32x2_t __b)
12364 {
12365 return vabs_f32 (__a) >= vabs_f32 (__b);
12366 }
12367
12368 __extension__ extern __inline uint32x4_t
12369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcageq_f32(float32x4_t __a,float32x4_t __b)12370 vcageq_f32 (float32x4_t __a, float32x4_t __b)
12371 {
12372 return vabsq_f32 (__a) >= vabsq_f32 (__b);
12373 }
12374
12375 __extension__ extern __inline uint64_t
12376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaged_f64(float64_t __a,float64_t __b)12377 vcaged_f64 (float64_t __a, float64_t __b)
12378 {
12379 return __builtin_fabs (__a) >= __builtin_fabs (__b) ? -1 : 0;
12380 }
12381
12382 __extension__ extern __inline uint64x2_t
12383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcageq_f64(float64x2_t __a,float64x2_t __b)12384 vcageq_f64 (float64x2_t __a, float64x2_t __b)
12385 {
12386 return vabsq_f64 (__a) >= vabsq_f64 (__b);
12387 }
12388
12389 /* vcagt */
12390
12391 __extension__ extern __inline uint32_t
12392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagts_f32(float32_t __a,float32_t __b)12393 vcagts_f32 (float32_t __a, float32_t __b)
12394 {
12395 return __builtin_fabsf (__a) > __builtin_fabsf (__b) ? -1 : 0;
12396 }
12397
12398 __extension__ extern __inline uint32x2_t
12399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagt_f32(float32x2_t __a,float32x2_t __b)12400 vcagt_f32 (float32x2_t __a, float32x2_t __b)
12401 {
12402 return vabs_f32 (__a) > vabs_f32 (__b);
12403 }
12404
12405 __extension__ extern __inline uint64x1_t
12406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagt_f64(float64x1_t __a,float64x1_t __b)12407 vcagt_f64 (float64x1_t __a, float64x1_t __b)
12408 {
12409 return vabs_f64 (__a) > vabs_f64 (__b);
12410 }
12411
12412 __extension__ extern __inline uint32x4_t
12413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagtq_f32(float32x4_t __a,float32x4_t __b)12414 vcagtq_f32 (float32x4_t __a, float32x4_t __b)
12415 {
12416 return vabsq_f32 (__a) > vabsq_f32 (__b);
12417 }
12418
12419 __extension__ extern __inline uint64_t
12420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagtd_f64(float64_t __a,float64_t __b)12421 vcagtd_f64 (float64_t __a, float64_t __b)
12422 {
12423 return __builtin_fabs (__a) > __builtin_fabs (__b) ? -1 : 0;
12424 }
12425
12426 __extension__ extern __inline uint64x2_t
12427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagtq_f64(float64x2_t __a,float64x2_t __b)12428 vcagtq_f64 (float64x2_t __a, float64x2_t __b)
12429 {
12430 return vabsq_f64 (__a) > vabsq_f64 (__b);
12431 }
12432
12433 /* vcale */
12434
12435 __extension__ extern __inline uint32x2_t
12436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcale_f32(float32x2_t __a,float32x2_t __b)12437 vcale_f32 (float32x2_t __a, float32x2_t __b)
12438 {
12439 return vabs_f32 (__a) <= vabs_f32 (__b);
12440 }
12441
12442 __extension__ extern __inline uint64x1_t
12443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcale_f64(float64x1_t __a,float64x1_t __b)12444 vcale_f64 (float64x1_t __a, float64x1_t __b)
12445 {
12446 return vabs_f64 (__a) <= vabs_f64 (__b);
12447 }
12448
12449 __extension__ extern __inline uint64_t
12450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaled_f64(float64_t __a,float64_t __b)12451 vcaled_f64 (float64_t __a, float64_t __b)
12452 {
12453 return __builtin_fabs (__a) <= __builtin_fabs (__b) ? -1 : 0;
12454 }
12455
12456 __extension__ extern __inline uint32_t
12457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcales_f32(float32_t __a,float32_t __b)12458 vcales_f32 (float32_t __a, float32_t __b)
12459 {
12460 return __builtin_fabsf (__a) <= __builtin_fabsf (__b) ? -1 : 0;
12461 }
12462
12463 __extension__ extern __inline uint32x4_t
12464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaleq_f32(float32x4_t __a,float32x4_t __b)12465 vcaleq_f32 (float32x4_t __a, float32x4_t __b)
12466 {
12467 return vabsq_f32 (__a) <= vabsq_f32 (__b);
12468 }
12469
12470 __extension__ extern __inline uint64x2_t
12471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaleq_f64(float64x2_t __a,float64x2_t __b)12472 vcaleq_f64 (float64x2_t __a, float64x2_t __b)
12473 {
12474 return vabsq_f64 (__a) <= vabsq_f64 (__b);
12475 }
12476
12477 /* vcalt */
12478
12479 __extension__ extern __inline uint32x2_t
12480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcalt_f32(float32x2_t __a,float32x2_t __b)12481 vcalt_f32 (float32x2_t __a, float32x2_t __b)
12482 {
12483 return vabs_f32 (__a) < vabs_f32 (__b);
12484 }
12485
12486 __extension__ extern __inline uint64x1_t
12487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcalt_f64(float64x1_t __a,float64x1_t __b)12488 vcalt_f64 (float64x1_t __a, float64x1_t __b)
12489 {
12490 return vabs_f64 (__a) < vabs_f64 (__b);
12491 }
12492
12493 __extension__ extern __inline uint64_t
12494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaltd_f64(float64_t __a,float64_t __b)12495 vcaltd_f64 (float64_t __a, float64_t __b)
12496 {
12497 return __builtin_fabs (__a) < __builtin_fabs (__b) ? -1 : 0;
12498 }
12499
12500 __extension__ extern __inline uint32x4_t
12501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaltq_f32(float32x4_t __a,float32x4_t __b)12502 vcaltq_f32 (float32x4_t __a, float32x4_t __b)
12503 {
12504 return vabsq_f32 (__a) < vabsq_f32 (__b);
12505 }
12506
12507 __extension__ extern __inline uint64x2_t
12508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaltq_f64(float64x2_t __a,float64x2_t __b)12509 vcaltq_f64 (float64x2_t __a, float64x2_t __b)
12510 {
12511 return vabsq_f64 (__a) < vabsq_f64 (__b);
12512 }
12513
12514 __extension__ extern __inline uint32_t
12515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcalts_f32(float32_t __a,float32_t __b)12516 vcalts_f32 (float32_t __a, float32_t __b)
12517 {
12518 return __builtin_fabsf (__a) < __builtin_fabsf (__b) ? -1 : 0;
12519 }
12520
12521 /* vceq - vector. */
12522
12523 __extension__ extern __inline uint32x2_t
12524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_f32(float32x2_t __a,float32x2_t __b)12525 vceq_f32 (float32x2_t __a, float32x2_t __b)
12526 {
12527 return (uint32x2_t) (__a == __b);
12528 }
12529
12530 __extension__ extern __inline uint64x1_t
12531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_f64(float64x1_t __a,float64x1_t __b)12532 vceq_f64 (float64x1_t __a, float64x1_t __b)
12533 {
12534 return (uint64x1_t) (__a == __b);
12535 }
12536
12537 __extension__ extern __inline uint8x8_t
12538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_p8(poly8x8_t __a,poly8x8_t __b)12539 vceq_p8 (poly8x8_t __a, poly8x8_t __b)
12540 {
12541 return (uint8x8_t) (__a == __b);
12542 }
12543
12544 __extension__ extern __inline uint64x1_t
12545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_p64(poly64x1_t __a,poly64x1_t __b)12546 vceq_p64 (poly64x1_t __a, poly64x1_t __b)
12547 {
12548 return (uint64x1_t) (__a == __b);
12549 }
12550
12551 __extension__ extern __inline uint8x8_t
12552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_s8(int8x8_t __a,int8x8_t __b)12553 vceq_s8 (int8x8_t __a, int8x8_t __b)
12554 {
12555 return (uint8x8_t) (__a == __b);
12556 }
12557
12558 __extension__ extern __inline uint16x4_t
12559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_s16(int16x4_t __a,int16x4_t __b)12560 vceq_s16 (int16x4_t __a, int16x4_t __b)
12561 {
12562 return (uint16x4_t) (__a == __b);
12563 }
12564
12565 __extension__ extern __inline uint32x2_t
12566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_s32(int32x2_t __a,int32x2_t __b)12567 vceq_s32 (int32x2_t __a, int32x2_t __b)
12568 {
12569 return (uint32x2_t) (__a == __b);
12570 }
12571
12572 __extension__ extern __inline uint64x1_t
12573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_s64(int64x1_t __a,int64x1_t __b)12574 vceq_s64 (int64x1_t __a, int64x1_t __b)
12575 {
12576 return (uint64x1_t) (__a == __b);
12577 }
12578
12579 __extension__ extern __inline uint8x8_t
12580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_u8(uint8x8_t __a,uint8x8_t __b)12581 vceq_u8 (uint8x8_t __a, uint8x8_t __b)
12582 {
12583 return (__a == __b);
12584 }
12585
12586 __extension__ extern __inline uint16x4_t
12587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_u16(uint16x4_t __a,uint16x4_t __b)12588 vceq_u16 (uint16x4_t __a, uint16x4_t __b)
12589 {
12590 return (__a == __b);
12591 }
12592
12593 __extension__ extern __inline uint32x2_t
12594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_u32(uint32x2_t __a,uint32x2_t __b)12595 vceq_u32 (uint32x2_t __a, uint32x2_t __b)
12596 {
12597 return (__a == __b);
12598 }
12599
12600 __extension__ extern __inline uint64x1_t
12601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_u64(uint64x1_t __a,uint64x1_t __b)12602 vceq_u64 (uint64x1_t __a, uint64x1_t __b)
12603 {
12604 return (__a == __b);
12605 }
12606
12607 __extension__ extern __inline uint32x4_t
12608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_f32(float32x4_t __a,float32x4_t __b)12609 vceqq_f32 (float32x4_t __a, float32x4_t __b)
12610 {
12611 return (uint32x4_t) (__a == __b);
12612 }
12613
12614 __extension__ extern __inline uint64x2_t
12615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_f64(float64x2_t __a,float64x2_t __b)12616 vceqq_f64 (float64x2_t __a, float64x2_t __b)
12617 {
12618 return (uint64x2_t) (__a == __b);
12619 }
12620
12621 __extension__ extern __inline uint8x16_t
12622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_p8(poly8x16_t __a,poly8x16_t __b)12623 vceqq_p8 (poly8x16_t __a, poly8x16_t __b)
12624 {
12625 return (uint8x16_t) (__a == __b);
12626 }
12627
12628 __extension__ extern __inline uint8x16_t
12629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_s8(int8x16_t __a,int8x16_t __b)12630 vceqq_s8 (int8x16_t __a, int8x16_t __b)
12631 {
12632 return (uint8x16_t) (__a == __b);
12633 }
12634
12635 __extension__ extern __inline uint16x8_t
12636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_s16(int16x8_t __a,int16x8_t __b)12637 vceqq_s16 (int16x8_t __a, int16x8_t __b)
12638 {
12639 return (uint16x8_t) (__a == __b);
12640 }
12641
12642 __extension__ extern __inline uint32x4_t
12643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_s32(int32x4_t __a,int32x4_t __b)12644 vceqq_s32 (int32x4_t __a, int32x4_t __b)
12645 {
12646 return (uint32x4_t) (__a == __b);
12647 }
12648
12649 __extension__ extern __inline uint64x2_t
12650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_s64(int64x2_t __a,int64x2_t __b)12651 vceqq_s64 (int64x2_t __a, int64x2_t __b)
12652 {
12653 return (uint64x2_t) (__a == __b);
12654 }
12655
12656 __extension__ extern __inline uint8x16_t
12657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_u8(uint8x16_t __a,uint8x16_t __b)12658 vceqq_u8 (uint8x16_t __a, uint8x16_t __b)
12659 {
12660 return (__a == __b);
12661 }
12662
12663 __extension__ extern __inline uint16x8_t
12664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_u16(uint16x8_t __a,uint16x8_t __b)12665 vceqq_u16 (uint16x8_t __a, uint16x8_t __b)
12666 {
12667 return (__a == __b);
12668 }
12669
12670 __extension__ extern __inline uint32x4_t
12671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_u32(uint32x4_t __a,uint32x4_t __b)12672 vceqq_u32 (uint32x4_t __a, uint32x4_t __b)
12673 {
12674 return (__a == __b);
12675 }
12676
12677 __extension__ extern __inline uint64x2_t
12678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_u64(uint64x2_t __a,uint64x2_t __b)12679 vceqq_u64 (uint64x2_t __a, uint64x2_t __b)
12680 {
12681 return (__a == __b);
12682 }
12683
12684 __extension__ extern __inline uint64x2_t
12685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_p64(poly64x2_t __a,poly64x2_t __b)12686 vceqq_p64 (poly64x2_t __a, poly64x2_t __b)
12687 {
12688 return (__a == __b);
12689 }
12690
12691 /* vceq - scalar. */
12692
12693 __extension__ extern __inline uint32_t
12694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqs_f32(float32_t __a,float32_t __b)12695 vceqs_f32 (float32_t __a, float32_t __b)
12696 {
12697 return __a == __b ? -1 : 0;
12698 }
12699
12700 __extension__ extern __inline uint64_t
12701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqd_s64(int64_t __a,int64_t __b)12702 vceqd_s64 (int64_t __a, int64_t __b)
12703 {
12704 return __a == __b ? -1ll : 0ll;
12705 }
12706
12707 __extension__ extern __inline uint64_t
12708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqd_u64(uint64_t __a,uint64_t __b)12709 vceqd_u64 (uint64_t __a, uint64_t __b)
12710 {
12711 return __a == __b ? -1ll : 0ll;
12712 }
12713
12714 __extension__ extern __inline uint64_t
12715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqd_f64(float64_t __a,float64_t __b)12716 vceqd_f64 (float64_t __a, float64_t __b)
12717 {
12718 return __a == __b ? -1ll : 0ll;
12719 }
12720
12721 /* vceqz - vector. */
12722
12723 __extension__ extern __inline uint32x2_t
12724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_f32(float32x2_t __a)12725 vceqz_f32 (float32x2_t __a)
12726 {
12727 return (uint32x2_t) (__a == 0.0f);
12728 }
12729
12730 __extension__ extern __inline uint64x1_t
12731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_f64(float64x1_t __a)12732 vceqz_f64 (float64x1_t __a)
12733 {
12734 return (uint64x1_t) (__a == (float64x1_t) {0.0});
12735 }
12736
12737 __extension__ extern __inline uint8x8_t
12738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_p8(poly8x8_t __a)12739 vceqz_p8 (poly8x8_t __a)
12740 {
12741 return (uint8x8_t) (__a == 0);
12742 }
12743
12744 __extension__ extern __inline uint8x8_t
12745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_s8(int8x8_t __a)12746 vceqz_s8 (int8x8_t __a)
12747 {
12748 return (uint8x8_t) (__a == 0);
12749 }
12750
12751 __extension__ extern __inline uint16x4_t
12752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_s16(int16x4_t __a)12753 vceqz_s16 (int16x4_t __a)
12754 {
12755 return (uint16x4_t) (__a == 0);
12756 }
12757
12758 __extension__ extern __inline uint32x2_t
12759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_s32(int32x2_t __a)12760 vceqz_s32 (int32x2_t __a)
12761 {
12762 return (uint32x2_t) (__a == 0);
12763 }
12764
12765 __extension__ extern __inline uint64x1_t
12766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_s64(int64x1_t __a)12767 vceqz_s64 (int64x1_t __a)
12768 {
12769 return (uint64x1_t) (__a == __AARCH64_INT64_C (0));
12770 }
12771
12772 __extension__ extern __inline uint8x8_t
12773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_u8(uint8x8_t __a)12774 vceqz_u8 (uint8x8_t __a)
12775 {
12776 return (__a == 0);
12777 }
12778
12779 __extension__ extern __inline uint16x4_t
12780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_u16(uint16x4_t __a)12781 vceqz_u16 (uint16x4_t __a)
12782 {
12783 return (__a == 0);
12784 }
12785
12786 __extension__ extern __inline uint32x2_t
12787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_u32(uint32x2_t __a)12788 vceqz_u32 (uint32x2_t __a)
12789 {
12790 return (__a == 0);
12791 }
12792
12793 __extension__ extern __inline uint64x1_t
12794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_u64(uint64x1_t __a)12795 vceqz_u64 (uint64x1_t __a)
12796 {
12797 return (__a == __AARCH64_UINT64_C (0));
12798 }
12799
12800 __extension__ extern __inline uint64x1_t
12801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_p64(poly64x1_t __a)12802 vceqz_p64 (poly64x1_t __a)
12803 {
12804 return (__a == __AARCH64_UINT64_C (0));
12805 }
12806
12807 __extension__ extern __inline uint32x4_t
12808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_f32(float32x4_t __a)12809 vceqzq_f32 (float32x4_t __a)
12810 {
12811 return (uint32x4_t) (__a == 0.0f);
12812 }
12813
12814 __extension__ extern __inline uint64x2_t
12815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_f64(float64x2_t __a)12816 vceqzq_f64 (float64x2_t __a)
12817 {
12818 return (uint64x2_t) (__a == 0.0f);
12819 }
12820
12821 __extension__ extern __inline uint8x16_t
12822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_p8(poly8x16_t __a)12823 vceqzq_p8 (poly8x16_t __a)
12824 {
12825 return (uint8x16_t) (__a == 0);
12826 }
12827
12828 __extension__ extern __inline uint8x16_t
12829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_s8(int8x16_t __a)12830 vceqzq_s8 (int8x16_t __a)
12831 {
12832 return (uint8x16_t) (__a == 0);
12833 }
12834
12835 __extension__ extern __inline uint16x8_t
12836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_s16(int16x8_t __a)12837 vceqzq_s16 (int16x8_t __a)
12838 {
12839 return (uint16x8_t) (__a == 0);
12840 }
12841
12842 __extension__ extern __inline uint32x4_t
12843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_s32(int32x4_t __a)12844 vceqzq_s32 (int32x4_t __a)
12845 {
12846 return (uint32x4_t) (__a == 0);
12847 }
12848
12849 __extension__ extern __inline uint64x2_t
12850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_s64(int64x2_t __a)12851 vceqzq_s64 (int64x2_t __a)
12852 {
12853 return (uint64x2_t) (__a == __AARCH64_INT64_C (0));
12854 }
12855
12856 __extension__ extern __inline uint8x16_t
12857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_u8(uint8x16_t __a)12858 vceqzq_u8 (uint8x16_t __a)
12859 {
12860 return (__a == 0);
12861 }
12862
12863 __extension__ extern __inline uint16x8_t
12864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_u16(uint16x8_t __a)12865 vceqzq_u16 (uint16x8_t __a)
12866 {
12867 return (__a == 0);
12868 }
12869
12870 __extension__ extern __inline uint32x4_t
12871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_u32(uint32x4_t __a)12872 vceqzq_u32 (uint32x4_t __a)
12873 {
12874 return (__a == 0);
12875 }
12876
12877 __extension__ extern __inline uint64x2_t
12878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_u64(uint64x2_t __a)12879 vceqzq_u64 (uint64x2_t __a)
12880 {
12881 return (__a == __AARCH64_UINT64_C (0));
12882 }
12883
12884 __extension__ extern __inline uint64x2_t
12885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_p64(poly64x2_t __a)12886 vceqzq_p64 (poly64x2_t __a)
12887 {
12888 return (__a == __AARCH64_UINT64_C (0));
12889 }
12890
12891 /* vceqz - scalar. */
12892
12893 __extension__ extern __inline uint32_t
12894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzs_f32(float32_t __a)12895 vceqzs_f32 (float32_t __a)
12896 {
12897 return __a == 0.0f ? -1 : 0;
12898 }
12899
12900 __extension__ extern __inline uint64_t
12901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzd_s64(int64_t __a)12902 vceqzd_s64 (int64_t __a)
12903 {
12904 return __a == 0 ? -1ll : 0ll;
12905 }
12906
12907 __extension__ extern __inline uint64_t
12908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzd_u64(uint64_t __a)12909 vceqzd_u64 (uint64_t __a)
12910 {
12911 return __a == 0 ? -1ll : 0ll;
12912 }
12913
12914 __extension__ extern __inline uint64_t
12915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzd_f64(float64_t __a)12916 vceqzd_f64 (float64_t __a)
12917 {
12918 return __a == 0.0 ? -1ll : 0ll;
12919 }
12920
12921 /* vcge - vector. */
12922
12923 __extension__ extern __inline uint32x2_t
12924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_f32(float32x2_t __a,float32x2_t __b)12925 vcge_f32 (float32x2_t __a, float32x2_t __b)
12926 {
12927 return (uint32x2_t) (__a >= __b);
12928 }
12929
12930 __extension__ extern __inline uint64x1_t
12931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_f64(float64x1_t __a,float64x1_t __b)12932 vcge_f64 (float64x1_t __a, float64x1_t __b)
12933 {
12934 return (uint64x1_t) (__a >= __b);
12935 }
12936
12937 __extension__ extern __inline uint8x8_t
12938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_s8(int8x8_t __a,int8x8_t __b)12939 vcge_s8 (int8x8_t __a, int8x8_t __b)
12940 {
12941 return (uint8x8_t) (__a >= __b);
12942 }
12943
12944 __extension__ extern __inline uint16x4_t
12945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_s16(int16x4_t __a,int16x4_t __b)12946 vcge_s16 (int16x4_t __a, int16x4_t __b)
12947 {
12948 return (uint16x4_t) (__a >= __b);
12949 }
12950
12951 __extension__ extern __inline uint32x2_t
12952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_s32(int32x2_t __a,int32x2_t __b)12953 vcge_s32 (int32x2_t __a, int32x2_t __b)
12954 {
12955 return (uint32x2_t) (__a >= __b);
12956 }
12957
12958 __extension__ extern __inline uint64x1_t
12959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_s64(int64x1_t __a,int64x1_t __b)12960 vcge_s64 (int64x1_t __a, int64x1_t __b)
12961 {
12962 return (uint64x1_t) (__a >= __b);
12963 }
12964
12965 __extension__ extern __inline uint8x8_t
12966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_u8(uint8x8_t __a,uint8x8_t __b)12967 vcge_u8 (uint8x8_t __a, uint8x8_t __b)
12968 {
12969 return (__a >= __b);
12970 }
12971
12972 __extension__ extern __inline uint16x4_t
12973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_u16(uint16x4_t __a,uint16x4_t __b)12974 vcge_u16 (uint16x4_t __a, uint16x4_t __b)
12975 {
12976 return (__a >= __b);
12977 }
12978
12979 __extension__ extern __inline uint32x2_t
12980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_u32(uint32x2_t __a,uint32x2_t __b)12981 vcge_u32 (uint32x2_t __a, uint32x2_t __b)
12982 {
12983 return (__a >= __b);
12984 }
12985
12986 __extension__ extern __inline uint64x1_t
12987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_u64(uint64x1_t __a,uint64x1_t __b)12988 vcge_u64 (uint64x1_t __a, uint64x1_t __b)
12989 {
12990 return (__a >= __b);
12991 }
12992
12993 __extension__ extern __inline uint32x4_t
12994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_f32(float32x4_t __a,float32x4_t __b)12995 vcgeq_f32 (float32x4_t __a, float32x4_t __b)
12996 {
12997 return (uint32x4_t) (__a >= __b);
12998 }
12999
13000 __extension__ extern __inline uint64x2_t
13001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_f64(float64x2_t __a,float64x2_t __b)13002 vcgeq_f64 (float64x2_t __a, float64x2_t __b)
13003 {
13004 return (uint64x2_t) (__a >= __b);
13005 }
13006
13007 __extension__ extern __inline uint8x16_t
13008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_s8(int8x16_t __a,int8x16_t __b)13009 vcgeq_s8 (int8x16_t __a, int8x16_t __b)
13010 {
13011 return (uint8x16_t) (__a >= __b);
13012 }
13013
13014 __extension__ extern __inline uint16x8_t
13015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_s16(int16x8_t __a,int16x8_t __b)13016 vcgeq_s16 (int16x8_t __a, int16x8_t __b)
13017 {
13018 return (uint16x8_t) (__a >= __b);
13019 }
13020
13021 __extension__ extern __inline uint32x4_t
13022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_s32(int32x4_t __a,int32x4_t __b)13023 vcgeq_s32 (int32x4_t __a, int32x4_t __b)
13024 {
13025 return (uint32x4_t) (__a >= __b);
13026 }
13027
13028 __extension__ extern __inline uint64x2_t
13029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_s64(int64x2_t __a,int64x2_t __b)13030 vcgeq_s64 (int64x2_t __a, int64x2_t __b)
13031 {
13032 return (uint64x2_t) (__a >= __b);
13033 }
13034
13035 __extension__ extern __inline uint8x16_t
13036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_u8(uint8x16_t __a,uint8x16_t __b)13037 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
13038 {
13039 return (__a >= __b);
13040 }
13041
13042 __extension__ extern __inline uint16x8_t
13043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_u16(uint16x8_t __a,uint16x8_t __b)13044 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
13045 {
13046 return (__a >= __b);
13047 }
13048
13049 __extension__ extern __inline uint32x4_t
13050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_u32(uint32x4_t __a,uint32x4_t __b)13051 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
13052 {
13053 return (__a >= __b);
13054 }
13055
13056 __extension__ extern __inline uint64x2_t
13057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_u64(uint64x2_t __a,uint64x2_t __b)13058 vcgeq_u64 (uint64x2_t __a, uint64x2_t __b)
13059 {
13060 return (__a >= __b);
13061 }
13062
13063 /* vcge - scalar. */
13064
13065 __extension__ extern __inline uint32_t
13066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcges_f32(float32_t __a,float32_t __b)13067 vcges_f32 (float32_t __a, float32_t __b)
13068 {
13069 return __a >= __b ? -1 : 0;
13070 }
13071
13072 __extension__ extern __inline uint64_t
13073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcged_s64(int64_t __a,int64_t __b)13074 vcged_s64 (int64_t __a, int64_t __b)
13075 {
13076 return __a >= __b ? -1ll : 0ll;
13077 }
13078
13079 __extension__ extern __inline uint64_t
13080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcged_u64(uint64_t __a,uint64_t __b)13081 vcged_u64 (uint64_t __a, uint64_t __b)
13082 {
13083 return __a >= __b ? -1ll : 0ll;
13084 }
13085
13086 __extension__ extern __inline uint64_t
13087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcged_f64(float64_t __a,float64_t __b)13088 vcged_f64 (float64_t __a, float64_t __b)
13089 {
13090 return __a >= __b ? -1ll : 0ll;
13091 }
13092
13093 /* vcgez - vector. */
13094
13095 __extension__ extern __inline uint32x2_t
13096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_f32(float32x2_t __a)13097 vcgez_f32 (float32x2_t __a)
13098 {
13099 return (uint32x2_t) (__a >= 0.0f);
13100 }
13101
13102 __extension__ extern __inline uint64x1_t
13103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_f64(float64x1_t __a)13104 vcgez_f64 (float64x1_t __a)
13105 {
13106 return (uint64x1_t) (__a[0] >= (float64x1_t) {0.0});
13107 }
13108
13109 __extension__ extern __inline uint8x8_t
13110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_s8(int8x8_t __a)13111 vcgez_s8 (int8x8_t __a)
13112 {
13113 return (uint8x8_t) (__a >= 0);
13114 }
13115
13116 __extension__ extern __inline uint16x4_t
13117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_s16(int16x4_t __a)13118 vcgez_s16 (int16x4_t __a)
13119 {
13120 return (uint16x4_t) (__a >= 0);
13121 }
13122
13123 __extension__ extern __inline uint32x2_t
13124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_s32(int32x2_t __a)13125 vcgez_s32 (int32x2_t __a)
13126 {
13127 return (uint32x2_t) (__a >= 0);
13128 }
13129
13130 __extension__ extern __inline uint64x1_t
13131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_s64(int64x1_t __a)13132 vcgez_s64 (int64x1_t __a)
13133 {
13134 return (uint64x1_t) (__a >= __AARCH64_INT64_C (0));
13135 }
13136
13137 __extension__ extern __inline uint32x4_t
13138 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_f32(float32x4_t __a)13139 vcgezq_f32 (float32x4_t __a)
13140 {
13141 return (uint32x4_t) (__a >= 0.0f);
13142 }
13143
13144 __extension__ extern __inline uint64x2_t
13145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_f64(float64x2_t __a)13146 vcgezq_f64 (float64x2_t __a)
13147 {
13148 return (uint64x2_t) (__a >= 0.0);
13149 }
13150
13151 __extension__ extern __inline uint8x16_t
13152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_s8(int8x16_t __a)13153 vcgezq_s8 (int8x16_t __a)
13154 {
13155 return (uint8x16_t) (__a >= 0);
13156 }
13157
13158 __extension__ extern __inline uint16x8_t
13159 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_s16(int16x8_t __a)13160 vcgezq_s16 (int16x8_t __a)
13161 {
13162 return (uint16x8_t) (__a >= 0);
13163 }
13164
13165 __extension__ extern __inline uint32x4_t
13166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_s32(int32x4_t __a)13167 vcgezq_s32 (int32x4_t __a)
13168 {
13169 return (uint32x4_t) (__a >= 0);
13170 }
13171
13172 __extension__ extern __inline uint64x2_t
13173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_s64(int64x2_t __a)13174 vcgezq_s64 (int64x2_t __a)
13175 {
13176 return (uint64x2_t) (__a >= __AARCH64_INT64_C (0));
13177 }
13178
13179 /* vcgez - scalar. */
13180
13181 __extension__ extern __inline uint32_t
13182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezs_f32(float32_t __a)13183 vcgezs_f32 (float32_t __a)
13184 {
13185 return __a >= 0.0f ? -1 : 0;
13186 }
13187
13188 __extension__ extern __inline uint64_t
13189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezd_s64(int64_t __a)13190 vcgezd_s64 (int64_t __a)
13191 {
13192 return __a >= 0 ? -1ll : 0ll;
13193 }
13194
13195 __extension__ extern __inline uint64_t
13196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezd_f64(float64_t __a)13197 vcgezd_f64 (float64_t __a)
13198 {
13199 return __a >= 0.0 ? -1ll : 0ll;
13200 }
13201
13202 /* vcgt - vector. */
13203
13204 __extension__ extern __inline uint32x2_t
13205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_f32(float32x2_t __a,float32x2_t __b)13206 vcgt_f32 (float32x2_t __a, float32x2_t __b)
13207 {
13208 return (uint32x2_t) (__a > __b);
13209 }
13210
13211 __extension__ extern __inline uint64x1_t
13212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_f64(float64x1_t __a,float64x1_t __b)13213 vcgt_f64 (float64x1_t __a, float64x1_t __b)
13214 {
13215 return (uint64x1_t) (__a > __b);
13216 }
13217
13218 __extension__ extern __inline uint8x8_t
13219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_s8(int8x8_t __a,int8x8_t __b)13220 vcgt_s8 (int8x8_t __a, int8x8_t __b)
13221 {
13222 return (uint8x8_t) (__a > __b);
13223 }
13224
13225 __extension__ extern __inline uint16x4_t
13226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_s16(int16x4_t __a,int16x4_t __b)13227 vcgt_s16 (int16x4_t __a, int16x4_t __b)
13228 {
13229 return (uint16x4_t) (__a > __b);
13230 }
13231
13232 __extension__ extern __inline uint32x2_t
13233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_s32(int32x2_t __a,int32x2_t __b)13234 vcgt_s32 (int32x2_t __a, int32x2_t __b)
13235 {
13236 return (uint32x2_t) (__a > __b);
13237 }
13238
13239 __extension__ extern __inline uint64x1_t
13240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_s64(int64x1_t __a,int64x1_t __b)13241 vcgt_s64 (int64x1_t __a, int64x1_t __b)
13242 {
13243 return (uint64x1_t) (__a > __b);
13244 }
13245
13246 __extension__ extern __inline uint8x8_t
13247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_u8(uint8x8_t __a,uint8x8_t __b)13248 vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
13249 {
13250 return (__a > __b);
13251 }
13252
13253 __extension__ extern __inline uint16x4_t
13254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_u16(uint16x4_t __a,uint16x4_t __b)13255 vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
13256 {
13257 return (__a > __b);
13258 }
13259
13260 __extension__ extern __inline uint32x2_t
13261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_u32(uint32x2_t __a,uint32x2_t __b)13262 vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
13263 {
13264 return (__a > __b);
13265 }
13266
13267 __extension__ extern __inline uint64x1_t
13268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_u64(uint64x1_t __a,uint64x1_t __b)13269 vcgt_u64 (uint64x1_t __a, uint64x1_t __b)
13270 {
13271 return (__a > __b);
13272 }
13273
13274 __extension__ extern __inline uint32x4_t
13275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_f32(float32x4_t __a,float32x4_t __b)13276 vcgtq_f32 (float32x4_t __a, float32x4_t __b)
13277 {
13278 return (uint32x4_t) (__a > __b);
13279 }
13280
13281 __extension__ extern __inline uint64x2_t
13282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_f64(float64x2_t __a,float64x2_t __b)13283 vcgtq_f64 (float64x2_t __a, float64x2_t __b)
13284 {
13285 return (uint64x2_t) (__a > __b);
13286 }
13287
13288 __extension__ extern __inline uint8x16_t
13289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_s8(int8x16_t __a,int8x16_t __b)13290 vcgtq_s8 (int8x16_t __a, int8x16_t __b)
13291 {
13292 return (uint8x16_t) (__a > __b);
13293 }
13294
13295 __extension__ extern __inline uint16x8_t
13296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_s16(int16x8_t __a,int16x8_t __b)13297 vcgtq_s16 (int16x8_t __a, int16x8_t __b)
13298 {
13299 return (uint16x8_t) (__a > __b);
13300 }
13301
13302 __extension__ extern __inline uint32x4_t
13303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_s32(int32x4_t __a,int32x4_t __b)13304 vcgtq_s32 (int32x4_t __a, int32x4_t __b)
13305 {
13306 return (uint32x4_t) (__a > __b);
13307 }
13308
13309 __extension__ extern __inline uint64x2_t
13310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_s64(int64x2_t __a,int64x2_t __b)13311 vcgtq_s64 (int64x2_t __a, int64x2_t __b)
13312 {
13313 return (uint64x2_t) (__a > __b);
13314 }
13315
13316 __extension__ extern __inline uint8x16_t
13317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_u8(uint8x16_t __a,uint8x16_t __b)13318 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
13319 {
13320 return (__a > __b);
13321 }
13322
13323 __extension__ extern __inline uint16x8_t
13324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_u16(uint16x8_t __a,uint16x8_t __b)13325 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
13326 {
13327 return (__a > __b);
13328 }
13329
13330 __extension__ extern __inline uint32x4_t
13331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_u32(uint32x4_t __a,uint32x4_t __b)13332 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
13333 {
13334 return (__a > __b);
13335 }
13336
13337 __extension__ extern __inline uint64x2_t
13338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_u64(uint64x2_t __a,uint64x2_t __b)13339 vcgtq_u64 (uint64x2_t __a, uint64x2_t __b)
13340 {
13341 return (__a > __b);
13342 }
13343
13344 /* vcgt - scalar. */
13345
13346 __extension__ extern __inline uint32_t
13347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgts_f32(float32_t __a,float32_t __b)13348 vcgts_f32 (float32_t __a, float32_t __b)
13349 {
13350 return __a > __b ? -1 : 0;
13351 }
13352
13353 __extension__ extern __inline uint64_t
13354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtd_s64(int64_t __a,int64_t __b)13355 vcgtd_s64 (int64_t __a, int64_t __b)
13356 {
13357 return __a > __b ? -1ll : 0ll;
13358 }
13359
13360 __extension__ extern __inline uint64_t
13361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtd_u64(uint64_t __a,uint64_t __b)13362 vcgtd_u64 (uint64_t __a, uint64_t __b)
13363 {
13364 return __a > __b ? -1ll : 0ll;
13365 }
13366
13367 __extension__ extern __inline uint64_t
13368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtd_f64(float64_t __a,float64_t __b)13369 vcgtd_f64 (float64_t __a, float64_t __b)
13370 {
13371 return __a > __b ? -1ll : 0ll;
13372 }
13373
13374 /* vcgtz - vector. */
13375
13376 __extension__ extern __inline uint32x2_t
13377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_f32(float32x2_t __a)13378 vcgtz_f32 (float32x2_t __a)
13379 {
13380 return (uint32x2_t) (__a > 0.0f);
13381 }
13382
13383 __extension__ extern __inline uint64x1_t
13384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_f64(float64x1_t __a)13385 vcgtz_f64 (float64x1_t __a)
13386 {
13387 return (uint64x1_t) (__a > (float64x1_t) {0.0});
13388 }
13389
13390 __extension__ extern __inline uint8x8_t
13391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_s8(int8x8_t __a)13392 vcgtz_s8 (int8x8_t __a)
13393 {
13394 return (uint8x8_t) (__a > 0);
13395 }
13396
13397 __extension__ extern __inline uint16x4_t
13398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_s16(int16x4_t __a)13399 vcgtz_s16 (int16x4_t __a)
13400 {
13401 return (uint16x4_t) (__a > 0);
13402 }
13403
13404 __extension__ extern __inline uint32x2_t
13405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_s32(int32x2_t __a)13406 vcgtz_s32 (int32x2_t __a)
13407 {
13408 return (uint32x2_t) (__a > 0);
13409 }
13410
13411 __extension__ extern __inline uint64x1_t
13412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_s64(int64x1_t __a)13413 vcgtz_s64 (int64x1_t __a)
13414 {
13415 return (uint64x1_t) (__a > __AARCH64_INT64_C (0));
13416 }
13417
13418 __extension__ extern __inline uint32x4_t
13419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_f32(float32x4_t __a)13420 vcgtzq_f32 (float32x4_t __a)
13421 {
13422 return (uint32x4_t) (__a > 0.0f);
13423 }
13424
13425 __extension__ extern __inline uint64x2_t
13426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_f64(float64x2_t __a)13427 vcgtzq_f64 (float64x2_t __a)
13428 {
13429 return (uint64x2_t) (__a > 0.0);
13430 }
13431
13432 __extension__ extern __inline uint8x16_t
13433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_s8(int8x16_t __a)13434 vcgtzq_s8 (int8x16_t __a)
13435 {
13436 return (uint8x16_t) (__a > 0);
13437 }
13438
13439 __extension__ extern __inline uint16x8_t
13440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_s16(int16x8_t __a)13441 vcgtzq_s16 (int16x8_t __a)
13442 {
13443 return (uint16x8_t) (__a > 0);
13444 }
13445
13446 __extension__ extern __inline uint32x4_t
13447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_s32(int32x4_t __a)13448 vcgtzq_s32 (int32x4_t __a)
13449 {
13450 return (uint32x4_t) (__a > 0);
13451 }
13452
13453 __extension__ extern __inline uint64x2_t
13454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_s64(int64x2_t __a)13455 vcgtzq_s64 (int64x2_t __a)
13456 {
13457 return (uint64x2_t) (__a > __AARCH64_INT64_C (0));
13458 }
13459
13460 /* vcgtz - scalar. */
13461
13462 __extension__ extern __inline uint32_t
13463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzs_f32(float32_t __a)13464 vcgtzs_f32 (float32_t __a)
13465 {
13466 return __a > 0.0f ? -1 : 0;
13467 }
13468
13469 __extension__ extern __inline uint64_t
13470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzd_s64(int64_t __a)13471 vcgtzd_s64 (int64_t __a)
13472 {
13473 return __a > 0 ? -1ll : 0ll;
13474 }
13475
13476 __extension__ extern __inline uint64_t
13477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzd_f64(float64_t __a)13478 vcgtzd_f64 (float64_t __a)
13479 {
13480 return __a > 0.0 ? -1ll : 0ll;
13481 }
13482
13483 /* vcle - vector. */
13484
13485 __extension__ extern __inline uint32x2_t
13486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_f32(float32x2_t __a,float32x2_t __b)13487 vcle_f32 (float32x2_t __a, float32x2_t __b)
13488 {
13489 return (uint32x2_t) (__a <= __b);
13490 }
13491
13492 __extension__ extern __inline uint64x1_t
13493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_f64(float64x1_t __a,float64x1_t __b)13494 vcle_f64 (float64x1_t __a, float64x1_t __b)
13495 {
13496 return (uint64x1_t) (__a <= __b);
13497 }
13498
13499 __extension__ extern __inline uint8x8_t
13500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_s8(int8x8_t __a,int8x8_t __b)13501 vcle_s8 (int8x8_t __a, int8x8_t __b)
13502 {
13503 return (uint8x8_t) (__a <= __b);
13504 }
13505
13506 __extension__ extern __inline uint16x4_t
13507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_s16(int16x4_t __a,int16x4_t __b)13508 vcle_s16 (int16x4_t __a, int16x4_t __b)
13509 {
13510 return (uint16x4_t) (__a <= __b);
13511 }
13512
13513 __extension__ extern __inline uint32x2_t
13514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_s32(int32x2_t __a,int32x2_t __b)13515 vcle_s32 (int32x2_t __a, int32x2_t __b)
13516 {
13517 return (uint32x2_t) (__a <= __b);
13518 }
13519
13520 __extension__ extern __inline uint64x1_t
13521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_s64(int64x1_t __a,int64x1_t __b)13522 vcle_s64 (int64x1_t __a, int64x1_t __b)
13523 {
13524 return (uint64x1_t) (__a <= __b);
13525 }
13526
13527 __extension__ extern __inline uint8x8_t
13528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_u8(uint8x8_t __a,uint8x8_t __b)13529 vcle_u8 (uint8x8_t __a, uint8x8_t __b)
13530 {
13531 return (__a <= __b);
13532 }
13533
13534 __extension__ extern __inline uint16x4_t
13535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_u16(uint16x4_t __a,uint16x4_t __b)13536 vcle_u16 (uint16x4_t __a, uint16x4_t __b)
13537 {
13538 return (__a <= __b);
13539 }
13540
13541 __extension__ extern __inline uint32x2_t
13542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_u32(uint32x2_t __a,uint32x2_t __b)13543 vcle_u32 (uint32x2_t __a, uint32x2_t __b)
13544 {
13545 return (__a <= __b);
13546 }
13547
13548 __extension__ extern __inline uint64x1_t
13549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_u64(uint64x1_t __a,uint64x1_t __b)13550 vcle_u64 (uint64x1_t __a, uint64x1_t __b)
13551 {
13552 return (__a <= __b);
13553 }
13554
13555 __extension__ extern __inline uint32x4_t
13556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_f32(float32x4_t __a,float32x4_t __b)13557 vcleq_f32 (float32x4_t __a, float32x4_t __b)
13558 {
13559 return (uint32x4_t) (__a <= __b);
13560 }
13561
13562 __extension__ extern __inline uint64x2_t
13563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_f64(float64x2_t __a,float64x2_t __b)13564 vcleq_f64 (float64x2_t __a, float64x2_t __b)
13565 {
13566 return (uint64x2_t) (__a <= __b);
13567 }
13568
13569 __extension__ extern __inline uint8x16_t
13570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_s8(int8x16_t __a,int8x16_t __b)13571 vcleq_s8 (int8x16_t __a, int8x16_t __b)
13572 {
13573 return (uint8x16_t) (__a <= __b);
13574 }
13575
13576 __extension__ extern __inline uint16x8_t
13577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_s16(int16x8_t __a,int16x8_t __b)13578 vcleq_s16 (int16x8_t __a, int16x8_t __b)
13579 {
13580 return (uint16x8_t) (__a <= __b);
13581 }
13582
13583 __extension__ extern __inline uint32x4_t
13584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_s32(int32x4_t __a,int32x4_t __b)13585 vcleq_s32 (int32x4_t __a, int32x4_t __b)
13586 {
13587 return (uint32x4_t) (__a <= __b);
13588 }
13589
13590 __extension__ extern __inline uint64x2_t
13591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_s64(int64x2_t __a,int64x2_t __b)13592 vcleq_s64 (int64x2_t __a, int64x2_t __b)
13593 {
13594 return (uint64x2_t) (__a <= __b);
13595 }
13596
13597 __extension__ extern __inline uint8x16_t
13598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_u8(uint8x16_t __a,uint8x16_t __b)13599 vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
13600 {
13601 return (__a <= __b);
13602 }
13603
13604 __extension__ extern __inline uint16x8_t
13605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_u16(uint16x8_t __a,uint16x8_t __b)13606 vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
13607 {
13608 return (__a <= __b);
13609 }
13610
13611 __extension__ extern __inline uint32x4_t
13612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_u32(uint32x4_t __a,uint32x4_t __b)13613 vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
13614 {
13615 return (__a <= __b);
13616 }
13617
13618 __extension__ extern __inline uint64x2_t
13619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_u64(uint64x2_t __a,uint64x2_t __b)13620 vcleq_u64 (uint64x2_t __a, uint64x2_t __b)
13621 {
13622 return (__a <= __b);
13623 }
13624
13625 /* vcle - scalar. */
13626
13627 __extension__ extern __inline uint32_t
13628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcles_f32(float32_t __a,float32_t __b)13629 vcles_f32 (float32_t __a, float32_t __b)
13630 {
13631 return __a <= __b ? -1 : 0;
13632 }
13633
13634 __extension__ extern __inline uint64_t
13635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcled_s64(int64_t __a,int64_t __b)13636 vcled_s64 (int64_t __a, int64_t __b)
13637 {
13638 return __a <= __b ? -1ll : 0ll;
13639 }
13640
13641 __extension__ extern __inline uint64_t
13642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcled_u64(uint64_t __a,uint64_t __b)13643 vcled_u64 (uint64_t __a, uint64_t __b)
13644 {
13645 return __a <= __b ? -1ll : 0ll;
13646 }
13647
13648 __extension__ extern __inline uint64_t
13649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcled_f64(float64_t __a,float64_t __b)13650 vcled_f64 (float64_t __a, float64_t __b)
13651 {
13652 return __a <= __b ? -1ll : 0ll;
13653 }
13654
13655 /* vclez - vector. */
13656
13657 __extension__ extern __inline uint32x2_t
13658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_f32(float32x2_t __a)13659 vclez_f32 (float32x2_t __a)
13660 {
13661 return (uint32x2_t) (__a <= 0.0f);
13662 }
13663
13664 __extension__ extern __inline uint64x1_t
13665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_f64(float64x1_t __a)13666 vclez_f64 (float64x1_t __a)
13667 {
13668 return (uint64x1_t) (__a <= (float64x1_t) {0.0});
13669 }
13670
13671 __extension__ extern __inline uint8x8_t
13672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_s8(int8x8_t __a)13673 vclez_s8 (int8x8_t __a)
13674 {
13675 return (uint8x8_t) (__a <= 0);
13676 }
13677
13678 __extension__ extern __inline uint16x4_t
13679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_s16(int16x4_t __a)13680 vclez_s16 (int16x4_t __a)
13681 {
13682 return (uint16x4_t) (__a <= 0);
13683 }
13684
13685 __extension__ extern __inline uint32x2_t
13686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_s32(int32x2_t __a)13687 vclez_s32 (int32x2_t __a)
13688 {
13689 return (uint32x2_t) (__a <= 0);
13690 }
13691
13692 __extension__ extern __inline uint64x1_t
13693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_s64(int64x1_t __a)13694 vclez_s64 (int64x1_t __a)
13695 {
13696 return (uint64x1_t) (__a <= __AARCH64_INT64_C (0));
13697 }
13698
13699 __extension__ extern __inline uint32x4_t
13700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_f32(float32x4_t __a)13701 vclezq_f32 (float32x4_t __a)
13702 {
13703 return (uint32x4_t) (__a <= 0.0f);
13704 }
13705
13706 __extension__ extern __inline uint64x2_t
13707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_f64(float64x2_t __a)13708 vclezq_f64 (float64x2_t __a)
13709 {
13710 return (uint64x2_t) (__a <= 0.0);
13711 }
13712
13713 __extension__ extern __inline uint8x16_t
13714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_s8(int8x16_t __a)13715 vclezq_s8 (int8x16_t __a)
13716 {
13717 return (uint8x16_t) (__a <= 0);
13718 }
13719
13720 __extension__ extern __inline uint16x8_t
13721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_s16(int16x8_t __a)13722 vclezq_s16 (int16x8_t __a)
13723 {
13724 return (uint16x8_t) (__a <= 0);
13725 }
13726
13727 __extension__ extern __inline uint32x4_t
13728 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_s32(int32x4_t __a)13729 vclezq_s32 (int32x4_t __a)
13730 {
13731 return (uint32x4_t) (__a <= 0);
13732 }
13733
13734 __extension__ extern __inline uint64x2_t
13735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_s64(int64x2_t __a)13736 vclezq_s64 (int64x2_t __a)
13737 {
13738 return (uint64x2_t) (__a <= __AARCH64_INT64_C (0));
13739 }
13740
13741 /* vclez - scalar. */
13742
13743 __extension__ extern __inline uint32_t
13744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezs_f32(float32_t __a)13745 vclezs_f32 (float32_t __a)
13746 {
13747 return __a <= 0.0f ? -1 : 0;
13748 }
13749
13750 __extension__ extern __inline uint64_t
13751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezd_s64(int64_t __a)13752 vclezd_s64 (int64_t __a)
13753 {
13754 return __a <= 0 ? -1ll : 0ll;
13755 }
13756
13757 __extension__ extern __inline uint64_t
13758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezd_f64(float64_t __a)13759 vclezd_f64 (float64_t __a)
13760 {
13761 return __a <= 0.0 ? -1ll : 0ll;
13762 }
13763
13764 /* vclt - vector. */
13765
13766 __extension__ extern __inline uint32x2_t
13767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_f32(float32x2_t __a,float32x2_t __b)13768 vclt_f32 (float32x2_t __a, float32x2_t __b)
13769 {
13770 return (uint32x2_t) (__a < __b);
13771 }
13772
13773 __extension__ extern __inline uint64x1_t
13774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_f64(float64x1_t __a,float64x1_t __b)13775 vclt_f64 (float64x1_t __a, float64x1_t __b)
13776 {
13777 return (uint64x1_t) (__a < __b);
13778 }
13779
13780 __extension__ extern __inline uint8x8_t
13781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_s8(int8x8_t __a,int8x8_t __b)13782 vclt_s8 (int8x8_t __a, int8x8_t __b)
13783 {
13784 return (uint8x8_t) (__a < __b);
13785 }
13786
13787 __extension__ extern __inline uint16x4_t
13788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_s16(int16x4_t __a,int16x4_t __b)13789 vclt_s16 (int16x4_t __a, int16x4_t __b)
13790 {
13791 return (uint16x4_t) (__a < __b);
13792 }
13793
13794 __extension__ extern __inline uint32x2_t
13795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_s32(int32x2_t __a,int32x2_t __b)13796 vclt_s32 (int32x2_t __a, int32x2_t __b)
13797 {
13798 return (uint32x2_t) (__a < __b);
13799 }
13800
13801 __extension__ extern __inline uint64x1_t
13802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_s64(int64x1_t __a,int64x1_t __b)13803 vclt_s64 (int64x1_t __a, int64x1_t __b)
13804 {
13805 return (uint64x1_t) (__a < __b);
13806 }
13807
13808 __extension__ extern __inline uint8x8_t
13809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_u8(uint8x8_t __a,uint8x8_t __b)13810 vclt_u8 (uint8x8_t __a, uint8x8_t __b)
13811 {
13812 return (__a < __b);
13813 }
13814
13815 __extension__ extern __inline uint16x4_t
13816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_u16(uint16x4_t __a,uint16x4_t __b)13817 vclt_u16 (uint16x4_t __a, uint16x4_t __b)
13818 {
13819 return (__a < __b);
13820 }
13821
13822 __extension__ extern __inline uint32x2_t
13823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_u32(uint32x2_t __a,uint32x2_t __b)13824 vclt_u32 (uint32x2_t __a, uint32x2_t __b)
13825 {
13826 return (__a < __b);
13827 }
13828
13829 __extension__ extern __inline uint64x1_t
13830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_u64(uint64x1_t __a,uint64x1_t __b)13831 vclt_u64 (uint64x1_t __a, uint64x1_t __b)
13832 {
13833 return (__a < __b);
13834 }
13835
13836 __extension__ extern __inline uint32x4_t
13837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_f32(float32x4_t __a,float32x4_t __b)13838 vcltq_f32 (float32x4_t __a, float32x4_t __b)
13839 {
13840 return (uint32x4_t) (__a < __b);
13841 }
13842
13843 __extension__ extern __inline uint64x2_t
13844 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_f64(float64x2_t __a,float64x2_t __b)13845 vcltq_f64 (float64x2_t __a, float64x2_t __b)
13846 {
13847 return (uint64x2_t) (__a < __b);
13848 }
13849
13850 __extension__ extern __inline uint8x16_t
13851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_s8(int8x16_t __a,int8x16_t __b)13852 vcltq_s8 (int8x16_t __a, int8x16_t __b)
13853 {
13854 return (uint8x16_t) (__a < __b);
13855 }
13856
13857 __extension__ extern __inline uint16x8_t
13858 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_s16(int16x8_t __a,int16x8_t __b)13859 vcltq_s16 (int16x8_t __a, int16x8_t __b)
13860 {
13861 return (uint16x8_t) (__a < __b);
13862 }
13863
13864 __extension__ extern __inline uint32x4_t
13865 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_s32(int32x4_t __a,int32x4_t __b)13866 vcltq_s32 (int32x4_t __a, int32x4_t __b)
13867 {
13868 return (uint32x4_t) (__a < __b);
13869 }
13870
13871 __extension__ extern __inline uint64x2_t
13872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_s64(int64x2_t __a,int64x2_t __b)13873 vcltq_s64 (int64x2_t __a, int64x2_t __b)
13874 {
13875 return (uint64x2_t) (__a < __b);
13876 }
13877
13878 __extension__ extern __inline uint8x16_t
13879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_u8(uint8x16_t __a,uint8x16_t __b)13880 vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
13881 {
13882 return (__a < __b);
13883 }
13884
13885 __extension__ extern __inline uint16x8_t
13886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_u16(uint16x8_t __a,uint16x8_t __b)13887 vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
13888 {
13889 return (__a < __b);
13890 }
13891
13892 __extension__ extern __inline uint32x4_t
13893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_u32(uint32x4_t __a,uint32x4_t __b)13894 vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
13895 {
13896 return (__a < __b);
13897 }
13898
13899 __extension__ extern __inline uint64x2_t
13900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_u64(uint64x2_t __a,uint64x2_t __b)13901 vcltq_u64 (uint64x2_t __a, uint64x2_t __b)
13902 {
13903 return (__a < __b);
13904 }
13905
13906 /* vclt - scalar. */
13907
13908 __extension__ extern __inline uint32_t
13909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclts_f32(float32_t __a,float32_t __b)13910 vclts_f32 (float32_t __a, float32_t __b)
13911 {
13912 return __a < __b ? -1 : 0;
13913 }
13914
13915 __extension__ extern __inline uint64_t
13916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltd_s64(int64_t __a,int64_t __b)13917 vcltd_s64 (int64_t __a, int64_t __b)
13918 {
13919 return __a < __b ? -1ll : 0ll;
13920 }
13921
13922 __extension__ extern __inline uint64_t
13923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltd_u64(uint64_t __a,uint64_t __b)13924 vcltd_u64 (uint64_t __a, uint64_t __b)
13925 {
13926 return __a < __b ? -1ll : 0ll;
13927 }
13928
13929 __extension__ extern __inline uint64_t
13930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltd_f64(float64_t __a,float64_t __b)13931 vcltd_f64 (float64_t __a, float64_t __b)
13932 {
13933 return __a < __b ? -1ll : 0ll;
13934 }
13935
13936 /* vcltz - vector. */
13937
13938 __extension__ extern __inline uint32x2_t
13939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_f32(float32x2_t __a)13940 vcltz_f32 (float32x2_t __a)
13941 {
13942 return (uint32x2_t) (__a < 0.0f);
13943 }
13944
13945 __extension__ extern __inline uint64x1_t
13946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_f64(float64x1_t __a)13947 vcltz_f64 (float64x1_t __a)
13948 {
13949 return (uint64x1_t) (__a < (float64x1_t) {0.0});
13950 }
13951
13952 __extension__ extern __inline uint8x8_t
13953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_s8(int8x8_t __a)13954 vcltz_s8 (int8x8_t __a)
13955 {
13956 return (uint8x8_t) (__a < 0);
13957 }
13958
13959 __extension__ extern __inline uint16x4_t
13960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_s16(int16x4_t __a)13961 vcltz_s16 (int16x4_t __a)
13962 {
13963 return (uint16x4_t) (__a < 0);
13964 }
13965
13966 __extension__ extern __inline uint32x2_t
13967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_s32(int32x2_t __a)13968 vcltz_s32 (int32x2_t __a)
13969 {
13970 return (uint32x2_t) (__a < 0);
13971 }
13972
13973 __extension__ extern __inline uint64x1_t
13974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_s64(int64x1_t __a)13975 vcltz_s64 (int64x1_t __a)
13976 {
13977 return (uint64x1_t) (__a < __AARCH64_INT64_C (0));
13978 }
13979
13980 __extension__ extern __inline uint32x4_t
13981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_f32(float32x4_t __a)13982 vcltzq_f32 (float32x4_t __a)
13983 {
13984 return (uint32x4_t) (__a < 0.0f);
13985 }
13986
13987 __extension__ extern __inline uint64x2_t
13988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_f64(float64x2_t __a)13989 vcltzq_f64 (float64x2_t __a)
13990 {
13991 return (uint64x2_t) (__a < 0.0);
13992 }
13993
13994 __extension__ extern __inline uint8x16_t
13995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_s8(int8x16_t __a)13996 vcltzq_s8 (int8x16_t __a)
13997 {
13998 return (uint8x16_t) (__a < 0);
13999 }
14000
14001 __extension__ extern __inline uint16x8_t
14002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_s16(int16x8_t __a)14003 vcltzq_s16 (int16x8_t __a)
14004 {
14005 return (uint16x8_t) (__a < 0);
14006 }
14007
14008 __extension__ extern __inline uint32x4_t
14009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_s32(int32x4_t __a)14010 vcltzq_s32 (int32x4_t __a)
14011 {
14012 return (uint32x4_t) (__a < 0);
14013 }
14014
14015 __extension__ extern __inline uint64x2_t
14016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_s64(int64x2_t __a)14017 vcltzq_s64 (int64x2_t __a)
14018 {
14019 return (uint64x2_t) (__a < __AARCH64_INT64_C (0));
14020 }
14021
14022 /* vcltz - scalar. */
14023
14024 __extension__ extern __inline uint32_t
14025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzs_f32(float32_t __a)14026 vcltzs_f32 (float32_t __a)
14027 {
14028 return __a < 0.0f ? -1 : 0;
14029 }
14030
14031 __extension__ extern __inline uint64_t
14032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzd_s64(int64_t __a)14033 vcltzd_s64 (int64_t __a)
14034 {
14035 return __a < 0 ? -1ll : 0ll;
14036 }
14037
14038 __extension__ extern __inline uint64_t
14039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzd_f64(float64_t __a)14040 vcltzd_f64 (float64_t __a)
14041 {
14042 return __a < 0.0 ? -1ll : 0ll;
14043 }
14044
14045 /* vcls. */
14046
14047 __extension__ extern __inline int8x8_t
14048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_s8(int8x8_t __a)14049 vcls_s8 (int8x8_t __a)
14050 {
14051 return __builtin_aarch64_clrsbv8qi (__a);
14052 }
14053
14054 __extension__ extern __inline int16x4_t
14055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_s16(int16x4_t __a)14056 vcls_s16 (int16x4_t __a)
14057 {
14058 return __builtin_aarch64_clrsbv4hi (__a);
14059 }
14060
14061 __extension__ extern __inline int32x2_t
14062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_s32(int32x2_t __a)14063 vcls_s32 (int32x2_t __a)
14064 {
14065 return __builtin_aarch64_clrsbv2si (__a);
14066 }
14067
14068 __extension__ extern __inline int8x16_t
14069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_s8(int8x16_t __a)14070 vclsq_s8 (int8x16_t __a)
14071 {
14072 return __builtin_aarch64_clrsbv16qi (__a);
14073 }
14074
14075 __extension__ extern __inline int16x8_t
14076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_s16(int16x8_t __a)14077 vclsq_s16 (int16x8_t __a)
14078 {
14079 return __builtin_aarch64_clrsbv8hi (__a);
14080 }
14081
14082 __extension__ extern __inline int32x4_t
14083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_s32(int32x4_t __a)14084 vclsq_s32 (int32x4_t __a)
14085 {
14086 return __builtin_aarch64_clrsbv4si (__a);
14087 }
14088
14089 __extension__ extern __inline int8x8_t
14090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_u8(uint8x8_t __a)14091 vcls_u8 (uint8x8_t __a)
14092 {
14093 return __builtin_aarch64_clrsbv8qi ((int8x8_t) __a);
14094 }
14095
14096 __extension__ extern __inline int16x4_t
14097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_u16(uint16x4_t __a)14098 vcls_u16 (uint16x4_t __a)
14099 {
14100 return __builtin_aarch64_clrsbv4hi ((int16x4_t) __a);
14101 }
14102
14103 __extension__ extern __inline int32x2_t
14104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcls_u32(uint32x2_t __a)14105 vcls_u32 (uint32x2_t __a)
14106 {
14107 return __builtin_aarch64_clrsbv2si ((int32x2_t) __a);
14108 }
14109
14110 __extension__ extern __inline int8x16_t
14111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_u8(uint8x16_t __a)14112 vclsq_u8 (uint8x16_t __a)
14113 {
14114 return __builtin_aarch64_clrsbv16qi ((int8x16_t) __a);
14115 }
14116
14117 __extension__ extern __inline int16x8_t
14118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_u16(uint16x8_t __a)14119 vclsq_u16 (uint16x8_t __a)
14120 {
14121 return __builtin_aarch64_clrsbv8hi ((int16x8_t) __a);
14122 }
14123
14124 __extension__ extern __inline int32x4_t
14125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclsq_u32(uint32x4_t __a)14126 vclsq_u32 (uint32x4_t __a)
14127 {
14128 return __builtin_aarch64_clrsbv4si ((int32x4_t) __a);
14129 }
14130
14131 /* vclz. */
14132
14133 __extension__ extern __inline int8x8_t
14134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_s8(int8x8_t __a)14135 vclz_s8 (int8x8_t __a)
14136 {
14137 return __builtin_aarch64_clzv8qi (__a);
14138 }
14139
14140 __extension__ extern __inline int16x4_t
14141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_s16(int16x4_t __a)14142 vclz_s16 (int16x4_t __a)
14143 {
14144 return __builtin_aarch64_clzv4hi (__a);
14145 }
14146
14147 __extension__ extern __inline int32x2_t
14148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_s32(int32x2_t __a)14149 vclz_s32 (int32x2_t __a)
14150 {
14151 return __builtin_aarch64_clzv2si (__a);
14152 }
14153
14154 __extension__ extern __inline uint8x8_t
14155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_u8(uint8x8_t __a)14156 vclz_u8 (uint8x8_t __a)
14157 {
14158 return (uint8x8_t)__builtin_aarch64_clzv8qi ((int8x8_t)__a);
14159 }
14160
14161 __extension__ extern __inline uint16x4_t
14162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_u16(uint16x4_t __a)14163 vclz_u16 (uint16x4_t __a)
14164 {
14165 return (uint16x4_t)__builtin_aarch64_clzv4hi ((int16x4_t)__a);
14166 }
14167
14168 __extension__ extern __inline uint32x2_t
14169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclz_u32(uint32x2_t __a)14170 vclz_u32 (uint32x2_t __a)
14171 {
14172 return (uint32x2_t)__builtin_aarch64_clzv2si ((int32x2_t)__a);
14173 }
14174
14175 __extension__ extern __inline int8x16_t
14176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_s8(int8x16_t __a)14177 vclzq_s8 (int8x16_t __a)
14178 {
14179 return __builtin_aarch64_clzv16qi (__a);
14180 }
14181
14182 __extension__ extern __inline int16x8_t
14183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_s16(int16x8_t __a)14184 vclzq_s16 (int16x8_t __a)
14185 {
14186 return __builtin_aarch64_clzv8hi (__a);
14187 }
14188
14189 __extension__ extern __inline int32x4_t
14190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_s32(int32x4_t __a)14191 vclzq_s32 (int32x4_t __a)
14192 {
14193 return __builtin_aarch64_clzv4si (__a);
14194 }
14195
14196 __extension__ extern __inline uint8x16_t
14197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_u8(uint8x16_t __a)14198 vclzq_u8 (uint8x16_t __a)
14199 {
14200 return (uint8x16_t)__builtin_aarch64_clzv16qi ((int8x16_t)__a);
14201 }
14202
14203 __extension__ extern __inline uint16x8_t
14204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_u16(uint16x8_t __a)14205 vclzq_u16 (uint16x8_t __a)
14206 {
14207 return (uint16x8_t)__builtin_aarch64_clzv8hi ((int16x8_t)__a);
14208 }
14209
14210 __extension__ extern __inline uint32x4_t
14211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclzq_u32(uint32x4_t __a)14212 vclzq_u32 (uint32x4_t __a)
14213 {
14214 return (uint32x4_t)__builtin_aarch64_clzv4si ((int32x4_t)__a);
14215 }
14216
14217 /* vcnt. */
14218
14219 __extension__ extern __inline poly8x8_t
14220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcnt_p8(poly8x8_t __a)14221 vcnt_p8 (poly8x8_t __a)
14222 {
14223 return (poly8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
14224 }
14225
14226 __extension__ extern __inline int8x8_t
14227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcnt_s8(int8x8_t __a)14228 vcnt_s8 (int8x8_t __a)
14229 {
14230 return __builtin_aarch64_popcountv8qi (__a);
14231 }
14232
14233 __extension__ extern __inline uint8x8_t
14234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcnt_u8(uint8x8_t __a)14235 vcnt_u8 (uint8x8_t __a)
14236 {
14237 return (uint8x8_t) __builtin_aarch64_popcountv8qi ((int8x8_t) __a);
14238 }
14239
14240 __extension__ extern __inline poly8x16_t
14241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcntq_p8(poly8x16_t __a)14242 vcntq_p8 (poly8x16_t __a)
14243 {
14244 return (poly8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
14245 }
14246
14247 __extension__ extern __inline int8x16_t
14248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcntq_s8(int8x16_t __a)14249 vcntq_s8 (int8x16_t __a)
14250 {
14251 return __builtin_aarch64_popcountv16qi (__a);
14252 }
14253
14254 __extension__ extern __inline uint8x16_t
14255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcntq_u8(uint8x16_t __a)14256 vcntq_u8 (uint8x16_t __a)
14257 {
14258 return (uint8x16_t) __builtin_aarch64_popcountv16qi ((int8x16_t) __a);
14259 }
14260
14261 /* vcopy_lane. */
14262
14263 __extension__ extern __inline float32x2_t
14264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_f32(float32x2_t __a,const int __lane1,float32x2_t __b,const int __lane2)14265 vcopy_lane_f32 (float32x2_t __a, const int __lane1,
14266 float32x2_t __b, const int __lane2)
14267 {
14268 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14269 __a, __lane1);
14270 }
14271
14272 __extension__ extern __inline float64x1_t
14273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_f64(float64x1_t __a,const int __lane1,float64x1_t __b,const int __lane2)14274 vcopy_lane_f64 (float64x1_t __a, const int __lane1,
14275 float64x1_t __b, const int __lane2)
14276 {
14277 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14278 __a, __lane1);
14279 }
14280
14281 __extension__ extern __inline poly8x8_t
14282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_p8(poly8x8_t __a,const int __lane1,poly8x8_t __b,const int __lane2)14283 vcopy_lane_p8 (poly8x8_t __a, const int __lane1,
14284 poly8x8_t __b, const int __lane2)
14285 {
14286 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14287 __a, __lane1);
14288 }
14289
14290 __extension__ extern __inline poly16x4_t
14291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_p16(poly16x4_t __a,const int __lane1,poly16x4_t __b,const int __lane2)14292 vcopy_lane_p16 (poly16x4_t __a, const int __lane1,
14293 poly16x4_t __b, const int __lane2)
14294 {
14295 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14296 __a, __lane1);
14297 }
14298
14299 __extension__ extern __inline poly64x1_t
14300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_p64(poly64x1_t __a,const int __lane1,poly64x1_t __b,const int __lane2)14301 vcopy_lane_p64 (poly64x1_t __a, const int __lane1,
14302 poly64x1_t __b, const int __lane2)
14303 {
14304 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14305 __a, __lane1);
14306 }
14307
14308 __extension__ extern __inline int8x8_t
14309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_s8(int8x8_t __a,const int __lane1,int8x8_t __b,const int __lane2)14310 vcopy_lane_s8 (int8x8_t __a, const int __lane1,
14311 int8x8_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 int16x4_t
14318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_s16(int16x4_t __a,const int __lane1,int16x4_t __b,const int __lane2)14319 vcopy_lane_s16 (int16x4_t __a, const int __lane1,
14320 int16x4_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 int32x2_t
14327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_s32(int32x2_t __a,const int __lane1,int32x2_t __b,const int __lane2)14328 vcopy_lane_s32 (int32x2_t __a, const int __lane1,
14329 int32x2_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 int64x1_t
14336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_s64(int64x1_t __a,const int __lane1,int64x1_t __b,const int __lane2)14337 vcopy_lane_s64 (int64x1_t __a, const int __lane1,
14338 int64x1_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 uint8x8_t
14345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_u8(uint8x8_t __a,const int __lane1,uint8x8_t __b,const int __lane2)14346 vcopy_lane_u8 (uint8x8_t __a, const int __lane1,
14347 uint8x8_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 uint16x4_t
14354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_u16(uint16x4_t __a,const int __lane1,uint16x4_t __b,const int __lane2)14355 vcopy_lane_u16 (uint16x4_t __a, const int __lane1,
14356 uint16x4_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 uint32x2_t
14363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_u32(uint32x2_t __a,const int __lane1,uint32x2_t __b,const int __lane2)14364 vcopy_lane_u32 (uint32x2_t __a, const int __lane1,
14365 uint32x2_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 uint64x1_t
14372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_u64(uint64x1_t __a,const int __lane1,uint64x1_t __b,const int __lane2)14373 vcopy_lane_u64 (uint64x1_t __a, const int __lane1,
14374 uint64x1_t __b, const int __lane2)
14375 {
14376 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14377 __a, __lane1);
14378 }
14379
14380 /* vcopy_laneq. */
14381
14382 __extension__ extern __inline float32x2_t
14383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_f32(float32x2_t __a,const int __lane1,float32x4_t __b,const int __lane2)14384 vcopy_laneq_f32 (float32x2_t __a, const int __lane1,
14385 float32x4_t __b, const int __lane2)
14386 {
14387 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14388 __a, __lane1);
14389 }
14390
14391 __extension__ extern __inline float64x1_t
14392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_f64(float64x1_t __a,const int __lane1,float64x2_t __b,const int __lane2)14393 vcopy_laneq_f64 (float64x1_t __a, const int __lane1,
14394 float64x2_t __b, const int __lane2)
14395 {
14396 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14397 __a, __lane1);
14398 }
14399
14400 __extension__ extern __inline poly8x8_t
14401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_p8(poly8x8_t __a,const int __lane1,poly8x16_t __b,const int __lane2)14402 vcopy_laneq_p8 (poly8x8_t __a, const int __lane1,
14403 poly8x16_t __b, const int __lane2)
14404 {
14405 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14406 __a, __lane1);
14407 }
14408
14409 __extension__ extern __inline poly16x4_t
14410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_p16(poly16x4_t __a,const int __lane1,poly16x8_t __b,const int __lane2)14411 vcopy_laneq_p16 (poly16x4_t __a, const int __lane1,
14412 poly16x8_t __b, const int __lane2)
14413 {
14414 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14415 __a, __lane1);
14416 }
14417
14418 __extension__ extern __inline poly64x1_t
14419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_p64(poly64x1_t __a,const int __lane1,poly64x2_t __b,const int __lane2)14420 vcopy_laneq_p64 (poly64x1_t __a, const int __lane1,
14421 poly64x2_t __b, const int __lane2)
14422 {
14423 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14424 __a, __lane1);
14425 }
14426
14427 __extension__ extern __inline int8x8_t
14428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_s8(int8x8_t __a,const int __lane1,int8x16_t __b,const int __lane2)14429 vcopy_laneq_s8 (int8x8_t __a, const int __lane1,
14430 int8x16_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 int16x4_t
14437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_s16(int16x4_t __a,const int __lane1,int16x8_t __b,const int __lane2)14438 vcopy_laneq_s16 (int16x4_t __a, const int __lane1,
14439 int16x8_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 int32x2_t
14446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_s32(int32x2_t __a,const int __lane1,int32x4_t __b,const int __lane2)14447 vcopy_laneq_s32 (int32x2_t __a, const int __lane1,
14448 int32x4_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 int64x1_t
14455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_s64(int64x1_t __a,const int __lane1,int64x2_t __b,const int __lane2)14456 vcopy_laneq_s64 (int64x1_t __a, const int __lane1,
14457 int64x2_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 uint8x8_t
14464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_u8(uint8x8_t __a,const int __lane1,uint8x16_t __b,const int __lane2)14465 vcopy_laneq_u8 (uint8x8_t __a, const int __lane1,
14466 uint8x16_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 uint16x4_t
14473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_u16(uint16x4_t __a,const int __lane1,uint16x8_t __b,const int __lane2)14474 vcopy_laneq_u16 (uint16x4_t __a, const int __lane1,
14475 uint16x8_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 uint32x2_t
14482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_u32(uint32x2_t __a,const int __lane1,uint32x4_t __b,const int __lane2)14483 vcopy_laneq_u32 (uint32x2_t __a, const int __lane1,
14484 uint32x4_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 uint64x1_t
14491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_u64(uint64x1_t __a,const int __lane1,uint64x2_t __b,const int __lane2)14492 vcopy_laneq_u64 (uint64x1_t __a, const int __lane1,
14493 uint64x2_t __b, const int __lane2)
14494 {
14495 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14496 __a, __lane1);
14497 }
14498
14499 /* vcopyq_lane. */
14500
14501 __extension__ extern __inline float32x4_t
14502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_f32(float32x4_t __a,const int __lane1,float32x2_t __b,const int __lane2)14503 vcopyq_lane_f32 (float32x4_t __a, const int __lane1,
14504 float32x2_t __b, const int __lane2)
14505 {
14506 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14507 __a, __lane1);
14508 }
14509
14510 __extension__ extern __inline float64x2_t
14511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_f64(float64x2_t __a,const int __lane1,float64x1_t __b,const int __lane2)14512 vcopyq_lane_f64 (float64x2_t __a, const int __lane1,
14513 float64x1_t __b, const int __lane2)
14514 {
14515 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14516 __a, __lane1);
14517 }
14518
14519 __extension__ extern __inline poly8x16_t
14520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_p8(poly8x16_t __a,const int __lane1,poly8x8_t __b,const int __lane2)14521 vcopyq_lane_p8 (poly8x16_t __a, const int __lane1,
14522 poly8x8_t __b, const int __lane2)
14523 {
14524 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14525 __a, __lane1);
14526 }
14527
14528 __extension__ extern __inline poly16x8_t
14529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_p16(poly16x8_t __a,const int __lane1,poly16x4_t __b,const int __lane2)14530 vcopyq_lane_p16 (poly16x8_t __a, const int __lane1,
14531 poly16x4_t __b, const int __lane2)
14532 {
14533 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14534 __a, __lane1);
14535 }
14536
14537 __extension__ extern __inline poly64x2_t
14538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_p64(poly64x2_t __a,const int __lane1,poly64x1_t __b,const int __lane2)14539 vcopyq_lane_p64 (poly64x2_t __a, const int __lane1,
14540 poly64x1_t __b, const int __lane2)
14541 {
14542 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14543 __a, __lane1);
14544 }
14545
14546 __extension__ extern __inline int8x16_t
14547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_s8(int8x16_t __a,const int __lane1,int8x8_t __b,const int __lane2)14548 vcopyq_lane_s8 (int8x16_t __a, const int __lane1,
14549 int8x8_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 int16x8_t
14556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_s16(int16x8_t __a,const int __lane1,int16x4_t __b,const int __lane2)14557 vcopyq_lane_s16 (int16x8_t __a, const int __lane1,
14558 int16x4_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 int32x4_t
14565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_s32(int32x4_t __a,const int __lane1,int32x2_t __b,const int __lane2)14566 vcopyq_lane_s32 (int32x4_t __a, const int __lane1,
14567 int32x2_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 int64x2_t
14574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_s64(int64x2_t __a,const int __lane1,int64x1_t __b,const int __lane2)14575 vcopyq_lane_s64 (int64x2_t __a, const int __lane1,
14576 int64x1_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 uint8x16_t
14583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_u8(uint8x16_t __a,const int __lane1,uint8x8_t __b,const int __lane2)14584 vcopyq_lane_u8 (uint8x16_t __a, const int __lane1,
14585 uint8x8_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 uint16x8_t
14592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_u16(uint16x8_t __a,const int __lane1,uint16x4_t __b,const int __lane2)14593 vcopyq_lane_u16 (uint16x8_t __a, const int __lane1,
14594 uint16x4_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 uint32x4_t
14601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_u32(uint32x4_t __a,const int __lane1,uint32x2_t __b,const int __lane2)14602 vcopyq_lane_u32 (uint32x4_t __a, const int __lane1,
14603 uint32x2_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 uint64x2_t
14610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_u64(uint64x2_t __a,const int __lane1,uint64x1_t __b,const int __lane2)14611 vcopyq_lane_u64 (uint64x2_t __a, const int __lane1,
14612 uint64x1_t __b, const int __lane2)
14613 {
14614 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14615 __a, __lane1);
14616 }
14617
14618 /* vcopyq_laneq. */
14619
14620 __extension__ extern __inline float32x4_t
14621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_f32(float32x4_t __a,const int __lane1,float32x4_t __b,const int __lane2)14622 vcopyq_laneq_f32 (float32x4_t __a, const int __lane1,
14623 float32x4_t __b, const int __lane2)
14624 {
14625 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14626 __a, __lane1);
14627 }
14628
14629 __extension__ extern __inline float64x2_t
14630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_f64(float64x2_t __a,const int __lane1,float64x2_t __b,const int __lane2)14631 vcopyq_laneq_f64 (float64x2_t __a, const int __lane1,
14632 float64x2_t __b, const int __lane2)
14633 {
14634 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14635 __a, __lane1);
14636 }
14637
14638 __extension__ extern __inline poly8x16_t
14639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_p8(poly8x16_t __a,const int __lane1,poly8x16_t __b,const int __lane2)14640 vcopyq_laneq_p8 (poly8x16_t __a, const int __lane1,
14641 poly8x16_t __b, const int __lane2)
14642 {
14643 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14644 __a, __lane1);
14645 }
14646
14647 __extension__ extern __inline poly16x8_t
14648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_p16(poly16x8_t __a,const int __lane1,poly16x8_t __b,const int __lane2)14649 vcopyq_laneq_p16 (poly16x8_t __a, const int __lane1,
14650 poly16x8_t __b, const int __lane2)
14651 {
14652 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14653 __a, __lane1);
14654 }
14655
14656 __extension__ extern __inline poly64x2_t
14657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_p64(poly64x2_t __a,const int __lane1,poly64x2_t __b,const int __lane2)14658 vcopyq_laneq_p64 (poly64x2_t __a, const int __lane1,
14659 poly64x2_t __b, const int __lane2)
14660 {
14661 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14662 __a, __lane1);
14663 }
14664
14665 __extension__ extern __inline int8x16_t
14666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_s8(int8x16_t __a,const int __lane1,int8x16_t __b,const int __lane2)14667 vcopyq_laneq_s8 (int8x16_t __a, const int __lane1,
14668 int8x16_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 int16x8_t
14675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_s16(int16x8_t __a,const int __lane1,int16x8_t __b,const int __lane2)14676 vcopyq_laneq_s16 (int16x8_t __a, const int __lane1,
14677 int16x8_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 int32x4_t
14684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_s32(int32x4_t __a,const int __lane1,int32x4_t __b,const int __lane2)14685 vcopyq_laneq_s32 (int32x4_t __a, const int __lane1,
14686 int32x4_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 int64x2_t
14693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_s64(int64x2_t __a,const int __lane1,int64x2_t __b,const int __lane2)14694 vcopyq_laneq_s64 (int64x2_t __a, const int __lane1,
14695 int64x2_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 uint8x16_t
14702 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_u8(uint8x16_t __a,const int __lane1,uint8x16_t __b,const int __lane2)14703 vcopyq_laneq_u8 (uint8x16_t __a, const int __lane1,
14704 uint8x16_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 uint16x8_t
14711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_u16(uint16x8_t __a,const int __lane1,uint16x8_t __b,const int __lane2)14712 vcopyq_laneq_u16 (uint16x8_t __a, const int __lane1,
14713 uint16x8_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 uint32x4_t
14720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_u32(uint32x4_t __a,const int __lane1,uint32x4_t __b,const int __lane2)14721 vcopyq_laneq_u32 (uint32x4_t __a, const int __lane1,
14722 uint32x4_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 uint64x2_t
14729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_u64(uint64x2_t __a,const int __lane1,uint64x2_t __b,const int __lane2)14730 vcopyq_laneq_u64 (uint64x2_t __a, const int __lane1,
14731 uint64x2_t __b, const int __lane2)
14732 {
14733 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
14734 __a, __lane1);
14735 }
14736
14737 /* vcvt (double -> float). */
14738
14739 __extension__ extern __inline float16x4_t
14740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f16_f32(float32x4_t __a)14741 vcvt_f16_f32 (float32x4_t __a)
14742 {
14743 return __builtin_aarch64_float_truncate_lo_v4hf (__a);
14744 }
14745
14746 __extension__ extern __inline float16x8_t
14747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_high_f16_f32(float16x4_t __a,float32x4_t __b)14748 vcvt_high_f16_f32 (float16x4_t __a, float32x4_t __b)
14749 {
14750 return __builtin_aarch64_float_truncate_hi_v8hf (__a, __b);
14751 }
14752
14753 __extension__ extern __inline float32x2_t
14754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_f64(float64x2_t __a)14755 vcvt_f32_f64 (float64x2_t __a)
14756 {
14757 return __builtin_aarch64_float_truncate_lo_v2sf (__a);
14758 }
14759
14760 __extension__ extern __inline float32x4_t
14761 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_high_f32_f64(float32x2_t __a,float64x2_t __b)14762 vcvt_high_f32_f64 (float32x2_t __a, float64x2_t __b)
14763 {
14764 return __builtin_aarch64_float_truncate_hi_v4sf (__a, __b);
14765 }
14766
14767 /* vcvt (float -> double). */
14768
14769 __extension__ extern __inline float32x4_t
14770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_f16(float16x4_t __a)14771 vcvt_f32_f16 (float16x4_t __a)
14772 {
14773 return __builtin_aarch64_float_extend_lo_v4sf (__a);
14774 }
14775
14776 __extension__ extern __inline float64x2_t
14777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f64_f32(float32x2_t __a)14778 vcvt_f64_f32 (float32x2_t __a)
14779 {
14780
14781 return __builtin_aarch64_float_extend_lo_v2df (__a);
14782 }
14783
14784 __extension__ extern __inline float32x4_t
14785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_high_f32_f16(float16x8_t __a)14786 vcvt_high_f32_f16 (float16x8_t __a)
14787 {
14788 return __builtin_aarch64_vec_unpacks_hi_v8hf (__a);
14789 }
14790
14791 __extension__ extern __inline float64x2_t
14792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_high_f64_f32(float32x4_t __a)14793 vcvt_high_f64_f32 (float32x4_t __a)
14794 {
14795 return __builtin_aarch64_vec_unpacks_hi_v4sf (__a);
14796 }
14797
14798 /* vcvt (<u>fixed-point -> float). */
14799
14800 __extension__ extern __inline float64_t
14801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_n_f64_s64(int64_t __a,const int __b)14802 vcvtd_n_f64_s64 (int64_t __a, const int __b)
14803 {
14804 return __builtin_aarch64_scvtfdi (__a, __b);
14805 }
14806
14807 __extension__ extern __inline float64_t
14808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_n_f64_u64(uint64_t __a,const int __b)14809 vcvtd_n_f64_u64 (uint64_t __a, const int __b)
14810 {
14811 return __builtin_aarch64_ucvtfdi_sus (__a, __b);
14812 }
14813
14814 __extension__ extern __inline float32_t
14815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_n_f32_s32(int32_t __a,const int __b)14816 vcvts_n_f32_s32 (int32_t __a, const int __b)
14817 {
14818 return __builtin_aarch64_scvtfsi (__a, __b);
14819 }
14820
14821 __extension__ extern __inline float32_t
14822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_n_f32_u32(uint32_t __a,const int __b)14823 vcvts_n_f32_u32 (uint32_t __a, const int __b)
14824 {
14825 return __builtin_aarch64_ucvtfsi_sus (__a, __b);
14826 }
14827
14828 __extension__ extern __inline float32x2_t
14829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f32_s32(int32x2_t __a,const int __b)14830 vcvt_n_f32_s32 (int32x2_t __a, const int __b)
14831 {
14832 return __builtin_aarch64_scvtfv2si (__a, __b);
14833 }
14834
14835 __extension__ extern __inline float32x2_t
14836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f32_u32(uint32x2_t __a,const int __b)14837 vcvt_n_f32_u32 (uint32x2_t __a, const int __b)
14838 {
14839 return __builtin_aarch64_ucvtfv2si_sus (__a, __b);
14840 }
14841
14842 __extension__ extern __inline float64x1_t
14843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f64_s64(int64x1_t __a,const int __b)14844 vcvt_n_f64_s64 (int64x1_t __a, const int __b)
14845 {
14846 return (float64x1_t)
14847 { __builtin_aarch64_scvtfdi (vget_lane_s64 (__a, 0), __b) };
14848 }
14849
14850 __extension__ extern __inline float64x1_t
14851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f64_u64(uint64x1_t __a,const int __b)14852 vcvt_n_f64_u64 (uint64x1_t __a, const int __b)
14853 {
14854 return (float64x1_t)
14855 { __builtin_aarch64_ucvtfdi_sus (vget_lane_u64 (__a, 0), __b) };
14856 }
14857
14858 __extension__ extern __inline float32x4_t
14859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f32_s32(int32x4_t __a,const int __b)14860 vcvtq_n_f32_s32 (int32x4_t __a, const int __b)
14861 {
14862 return __builtin_aarch64_scvtfv4si (__a, __b);
14863 }
14864
14865 __extension__ extern __inline float32x4_t
14866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f32_u32(uint32x4_t __a,const int __b)14867 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b)
14868 {
14869 return __builtin_aarch64_ucvtfv4si_sus (__a, __b);
14870 }
14871
14872 __extension__ extern __inline float64x2_t
14873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f64_s64(int64x2_t __a,const int __b)14874 vcvtq_n_f64_s64 (int64x2_t __a, const int __b)
14875 {
14876 return __builtin_aarch64_scvtfv2di (__a, __b);
14877 }
14878
14879 __extension__ extern __inline float64x2_t
14880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f64_u64(uint64x2_t __a,const int __b)14881 vcvtq_n_f64_u64 (uint64x2_t __a, const int __b)
14882 {
14883 return __builtin_aarch64_ucvtfv2di_sus (__a, __b);
14884 }
14885
14886 /* vcvt (float -> <u>fixed-point). */
14887
14888 __extension__ extern __inline int64_t
14889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_n_s64_f64(float64_t __a,const int __b)14890 vcvtd_n_s64_f64 (float64_t __a, const int __b)
14891 {
14892 return __builtin_aarch64_fcvtzsdf (__a, __b);
14893 }
14894
14895 __extension__ extern __inline uint64_t
14896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_n_u64_f64(float64_t __a,const int __b)14897 vcvtd_n_u64_f64 (float64_t __a, const int __b)
14898 {
14899 return __builtin_aarch64_fcvtzudf_uss (__a, __b);
14900 }
14901
14902 __extension__ extern __inline int32_t
14903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_n_s32_f32(float32_t __a,const int __b)14904 vcvts_n_s32_f32 (float32_t __a, const int __b)
14905 {
14906 return __builtin_aarch64_fcvtzssf (__a, __b);
14907 }
14908
14909 __extension__ extern __inline uint32_t
14910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_n_u32_f32(float32_t __a,const int __b)14911 vcvts_n_u32_f32 (float32_t __a, const int __b)
14912 {
14913 return __builtin_aarch64_fcvtzusf_uss (__a, __b);
14914 }
14915
14916 __extension__ extern __inline int32x2_t
14917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_s32_f32(float32x2_t __a,const int __b)14918 vcvt_n_s32_f32 (float32x2_t __a, const int __b)
14919 {
14920 return __builtin_aarch64_fcvtzsv2sf (__a, __b);
14921 }
14922
14923 __extension__ extern __inline uint32x2_t
14924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_u32_f32(float32x2_t __a,const int __b)14925 vcvt_n_u32_f32 (float32x2_t __a, const int __b)
14926 {
14927 return __builtin_aarch64_fcvtzuv2sf_uss (__a, __b);
14928 }
14929
14930 __extension__ extern __inline int64x1_t
14931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_s64_f64(float64x1_t __a,const int __b)14932 vcvt_n_s64_f64 (float64x1_t __a, const int __b)
14933 {
14934 return (int64x1_t)
14935 { __builtin_aarch64_fcvtzsdf (vget_lane_f64 (__a, 0), __b) };
14936 }
14937
14938 __extension__ extern __inline uint64x1_t
14939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_u64_f64(float64x1_t __a,const int __b)14940 vcvt_n_u64_f64 (float64x1_t __a, const int __b)
14941 {
14942 return (uint64x1_t)
14943 { __builtin_aarch64_fcvtzudf_uss (vget_lane_f64 (__a, 0), __b) };
14944 }
14945
14946 __extension__ extern __inline int32x4_t
14947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_s32_f32(float32x4_t __a,const int __b)14948 vcvtq_n_s32_f32 (float32x4_t __a, const int __b)
14949 {
14950 return __builtin_aarch64_fcvtzsv4sf (__a, __b);
14951 }
14952
14953 __extension__ extern __inline uint32x4_t
14954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_u32_f32(float32x4_t __a,const int __b)14955 vcvtq_n_u32_f32 (float32x4_t __a, const int __b)
14956 {
14957 return __builtin_aarch64_fcvtzuv4sf_uss (__a, __b);
14958 }
14959
14960 __extension__ extern __inline int64x2_t
14961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_s64_f64(float64x2_t __a,const int __b)14962 vcvtq_n_s64_f64 (float64x2_t __a, const int __b)
14963 {
14964 return __builtin_aarch64_fcvtzsv2df (__a, __b);
14965 }
14966
14967 __extension__ extern __inline uint64x2_t
14968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_u64_f64(float64x2_t __a,const int __b)14969 vcvtq_n_u64_f64 (float64x2_t __a, const int __b)
14970 {
14971 return __builtin_aarch64_fcvtzuv2df_uss (__a, __b);
14972 }
14973
14974 /* vcvt (<u>int -> float) */
14975
14976 __extension__ extern __inline float64_t
14977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_f64_s64(int64_t __a)14978 vcvtd_f64_s64 (int64_t __a)
14979 {
14980 return (float64_t) __a;
14981 }
14982
14983 __extension__ extern __inline float64_t
14984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_f64_u64(uint64_t __a)14985 vcvtd_f64_u64 (uint64_t __a)
14986 {
14987 return (float64_t) __a;
14988 }
14989
14990 __extension__ extern __inline float32_t
14991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_f32_s32(int32_t __a)14992 vcvts_f32_s32 (int32_t __a)
14993 {
14994 return (float32_t) __a;
14995 }
14996
14997 __extension__ extern __inline float32_t
14998 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_f32_u32(uint32_t __a)14999 vcvts_f32_u32 (uint32_t __a)
15000 {
15001 return (float32_t) __a;
15002 }
15003
15004 __extension__ extern __inline float32x2_t
15005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_s32(int32x2_t __a)15006 vcvt_f32_s32 (int32x2_t __a)
15007 {
15008 return __builtin_aarch64_floatv2siv2sf (__a);
15009 }
15010
15011 __extension__ extern __inline float32x2_t
15012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_u32(uint32x2_t __a)15013 vcvt_f32_u32 (uint32x2_t __a)
15014 {
15015 return __builtin_aarch64_floatunsv2siv2sf ((int32x2_t) __a);
15016 }
15017
15018 __extension__ extern __inline float64x1_t
15019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f64_s64(int64x1_t __a)15020 vcvt_f64_s64 (int64x1_t __a)
15021 {
15022 return (float64x1_t) { vget_lane_s64 (__a, 0) };
15023 }
15024
15025 __extension__ extern __inline float64x1_t
15026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f64_u64(uint64x1_t __a)15027 vcvt_f64_u64 (uint64x1_t __a)
15028 {
15029 return (float64x1_t) { vget_lane_u64 (__a, 0) };
15030 }
15031
15032 __extension__ extern __inline float32x4_t
15033 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f32_s32(int32x4_t __a)15034 vcvtq_f32_s32 (int32x4_t __a)
15035 {
15036 return __builtin_aarch64_floatv4siv4sf (__a);
15037 }
15038
15039 __extension__ extern __inline float32x4_t
15040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f32_u32(uint32x4_t __a)15041 vcvtq_f32_u32 (uint32x4_t __a)
15042 {
15043 return __builtin_aarch64_floatunsv4siv4sf ((int32x4_t) __a);
15044 }
15045
15046 __extension__ extern __inline float64x2_t
15047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f64_s64(int64x2_t __a)15048 vcvtq_f64_s64 (int64x2_t __a)
15049 {
15050 return __builtin_aarch64_floatv2div2df (__a);
15051 }
15052
15053 __extension__ extern __inline float64x2_t
15054 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f64_u64(uint64x2_t __a)15055 vcvtq_f64_u64 (uint64x2_t __a)
15056 {
15057 return __builtin_aarch64_floatunsv2div2df ((int64x2_t) __a);
15058 }
15059
15060 /* vcvt (float -> <u>int) */
15061
15062 __extension__ extern __inline int64_t
15063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_s64_f64(float64_t __a)15064 vcvtd_s64_f64 (float64_t __a)
15065 {
15066 return (int64_t) __a;
15067 }
15068
15069 __extension__ extern __inline uint64_t
15070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtd_u64_f64(float64_t __a)15071 vcvtd_u64_f64 (float64_t __a)
15072 {
15073 return (uint64_t) __a;
15074 }
15075
15076 __extension__ extern __inline int32_t
15077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_s32_f32(float32_t __a)15078 vcvts_s32_f32 (float32_t __a)
15079 {
15080 return (int32_t) __a;
15081 }
15082
15083 __extension__ extern __inline uint32_t
15084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvts_u32_f32(float32_t __a)15085 vcvts_u32_f32 (float32_t __a)
15086 {
15087 return (uint32_t) __a;
15088 }
15089
15090 __extension__ extern __inline int32x2_t
15091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_s32_f32(float32x2_t __a)15092 vcvt_s32_f32 (float32x2_t __a)
15093 {
15094 return __builtin_aarch64_lbtruncv2sfv2si (__a);
15095 }
15096
15097 __extension__ extern __inline uint32x2_t
15098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_u32_f32(float32x2_t __a)15099 vcvt_u32_f32 (float32x2_t __a)
15100 {
15101 return __builtin_aarch64_lbtruncuv2sfv2si_us (__a);
15102 }
15103
15104 __extension__ extern __inline int32x4_t
15105 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_s32_f32(float32x4_t __a)15106 vcvtq_s32_f32 (float32x4_t __a)
15107 {
15108 return __builtin_aarch64_lbtruncv4sfv4si (__a);
15109 }
15110
15111 __extension__ extern __inline uint32x4_t
15112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_u32_f32(float32x4_t __a)15113 vcvtq_u32_f32 (float32x4_t __a)
15114 {
15115 return __builtin_aarch64_lbtruncuv4sfv4si_us (__a);
15116 }
15117
15118 __extension__ extern __inline int64x1_t
15119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_s64_f64(float64x1_t __a)15120 vcvt_s64_f64 (float64x1_t __a)
15121 {
15122 return (int64x1_t) {vcvtd_s64_f64 (__a[0])};
15123 }
15124
15125 __extension__ extern __inline uint64x1_t
15126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_u64_f64(float64x1_t __a)15127 vcvt_u64_f64 (float64x1_t __a)
15128 {
15129 return (uint64x1_t) {vcvtd_u64_f64 (__a[0])};
15130 }
15131
15132 __extension__ extern __inline int64x2_t
15133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_s64_f64(float64x2_t __a)15134 vcvtq_s64_f64 (float64x2_t __a)
15135 {
15136 return __builtin_aarch64_lbtruncv2dfv2di (__a);
15137 }
15138
15139 __extension__ extern __inline uint64x2_t
15140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_u64_f64(float64x2_t __a)15141 vcvtq_u64_f64 (float64x2_t __a)
15142 {
15143 return __builtin_aarch64_lbtruncuv2dfv2di_us (__a);
15144 }
15145
15146 /* vcvta */
15147
15148 __extension__ extern __inline int64_t
15149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtad_s64_f64(float64_t __a)15150 vcvtad_s64_f64 (float64_t __a)
15151 {
15152 return __builtin_aarch64_lrounddfdi (__a);
15153 }
15154
15155 __extension__ extern __inline uint64_t
15156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtad_u64_f64(float64_t __a)15157 vcvtad_u64_f64 (float64_t __a)
15158 {
15159 return __builtin_aarch64_lroundudfdi_us (__a);
15160 }
15161
15162 __extension__ extern __inline int32_t
15163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtas_s32_f32(float32_t __a)15164 vcvtas_s32_f32 (float32_t __a)
15165 {
15166 return __builtin_aarch64_lroundsfsi (__a);
15167 }
15168
15169 __extension__ extern __inline uint32_t
15170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtas_u32_f32(float32_t __a)15171 vcvtas_u32_f32 (float32_t __a)
15172 {
15173 return __builtin_aarch64_lroundusfsi_us (__a);
15174 }
15175
15176 __extension__ extern __inline int32x2_t
15177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_s32_f32(float32x2_t __a)15178 vcvta_s32_f32 (float32x2_t __a)
15179 {
15180 return __builtin_aarch64_lroundv2sfv2si (__a);
15181 }
15182
15183 __extension__ extern __inline uint32x2_t
15184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_u32_f32(float32x2_t __a)15185 vcvta_u32_f32 (float32x2_t __a)
15186 {
15187 return __builtin_aarch64_lrounduv2sfv2si_us (__a);
15188 }
15189
15190 __extension__ extern __inline int32x4_t
15191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_s32_f32(float32x4_t __a)15192 vcvtaq_s32_f32 (float32x4_t __a)
15193 {
15194 return __builtin_aarch64_lroundv4sfv4si (__a);
15195 }
15196
15197 __extension__ extern __inline uint32x4_t
15198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_u32_f32(float32x4_t __a)15199 vcvtaq_u32_f32 (float32x4_t __a)
15200 {
15201 return __builtin_aarch64_lrounduv4sfv4si_us (__a);
15202 }
15203
15204 __extension__ extern __inline int64x1_t
15205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_s64_f64(float64x1_t __a)15206 vcvta_s64_f64 (float64x1_t __a)
15207 {
15208 return (int64x1_t) {vcvtad_s64_f64 (__a[0])};
15209 }
15210
15211 __extension__ extern __inline uint64x1_t
15212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_u64_f64(float64x1_t __a)15213 vcvta_u64_f64 (float64x1_t __a)
15214 {
15215 return (uint64x1_t) {vcvtad_u64_f64 (__a[0])};
15216 }
15217
15218 __extension__ extern __inline int64x2_t
15219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_s64_f64(float64x2_t __a)15220 vcvtaq_s64_f64 (float64x2_t __a)
15221 {
15222 return __builtin_aarch64_lroundv2dfv2di (__a);
15223 }
15224
15225 __extension__ extern __inline uint64x2_t
15226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_u64_f64(float64x2_t __a)15227 vcvtaq_u64_f64 (float64x2_t __a)
15228 {
15229 return __builtin_aarch64_lrounduv2dfv2di_us (__a);
15230 }
15231
15232 /* vcvtm */
15233
15234 __extension__ extern __inline int64_t
15235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmd_s64_f64(float64_t __a)15236 vcvtmd_s64_f64 (float64_t __a)
15237 {
15238 return __builtin_llfloor (__a);
15239 }
15240
15241 __extension__ extern __inline uint64_t
15242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmd_u64_f64(float64_t __a)15243 vcvtmd_u64_f64 (float64_t __a)
15244 {
15245 return __builtin_aarch64_lfloorudfdi_us (__a);
15246 }
15247
15248 __extension__ extern __inline int32_t
15249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtms_s32_f32(float32_t __a)15250 vcvtms_s32_f32 (float32_t __a)
15251 {
15252 return __builtin_ifloorf (__a);
15253 }
15254
15255 __extension__ extern __inline uint32_t
15256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtms_u32_f32(float32_t __a)15257 vcvtms_u32_f32 (float32_t __a)
15258 {
15259 return __builtin_aarch64_lfloorusfsi_us (__a);
15260 }
15261
15262 __extension__ extern __inline int32x2_t
15263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_s32_f32(float32x2_t __a)15264 vcvtm_s32_f32 (float32x2_t __a)
15265 {
15266 return __builtin_aarch64_lfloorv2sfv2si (__a);
15267 }
15268
15269 __extension__ extern __inline uint32x2_t
15270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_u32_f32(float32x2_t __a)15271 vcvtm_u32_f32 (float32x2_t __a)
15272 {
15273 return __builtin_aarch64_lflooruv2sfv2si_us (__a);
15274 }
15275
15276 __extension__ extern __inline int32x4_t
15277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_s32_f32(float32x4_t __a)15278 vcvtmq_s32_f32 (float32x4_t __a)
15279 {
15280 return __builtin_aarch64_lfloorv4sfv4si (__a);
15281 }
15282
15283 __extension__ extern __inline uint32x4_t
15284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_u32_f32(float32x4_t __a)15285 vcvtmq_u32_f32 (float32x4_t __a)
15286 {
15287 return __builtin_aarch64_lflooruv4sfv4si_us (__a);
15288 }
15289
15290 __extension__ extern __inline int64x1_t
15291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_s64_f64(float64x1_t __a)15292 vcvtm_s64_f64 (float64x1_t __a)
15293 {
15294 return (int64x1_t) {vcvtmd_s64_f64 (__a[0])};
15295 }
15296
15297 __extension__ extern __inline uint64x1_t
15298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_u64_f64(float64x1_t __a)15299 vcvtm_u64_f64 (float64x1_t __a)
15300 {
15301 return (uint64x1_t) {vcvtmd_u64_f64 (__a[0])};
15302 }
15303
15304 __extension__ extern __inline int64x2_t
15305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_s64_f64(float64x2_t __a)15306 vcvtmq_s64_f64 (float64x2_t __a)
15307 {
15308 return __builtin_aarch64_lfloorv2dfv2di (__a);
15309 }
15310
15311 __extension__ extern __inline uint64x2_t
15312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_u64_f64(float64x2_t __a)15313 vcvtmq_u64_f64 (float64x2_t __a)
15314 {
15315 return __builtin_aarch64_lflooruv2dfv2di_us (__a);
15316 }
15317
15318 /* vcvtn */
15319
15320 __extension__ extern __inline int64_t
15321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnd_s64_f64(float64_t __a)15322 vcvtnd_s64_f64 (float64_t __a)
15323 {
15324 return __builtin_aarch64_lfrintndfdi (__a);
15325 }
15326
15327 __extension__ extern __inline uint64_t
15328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnd_u64_f64(float64_t __a)15329 vcvtnd_u64_f64 (float64_t __a)
15330 {
15331 return __builtin_aarch64_lfrintnudfdi_us (__a);
15332 }
15333
15334 __extension__ extern __inline int32_t
15335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtns_s32_f32(float32_t __a)15336 vcvtns_s32_f32 (float32_t __a)
15337 {
15338 return __builtin_aarch64_lfrintnsfsi (__a);
15339 }
15340
15341 __extension__ extern __inline uint32_t
15342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtns_u32_f32(float32_t __a)15343 vcvtns_u32_f32 (float32_t __a)
15344 {
15345 return __builtin_aarch64_lfrintnusfsi_us (__a);
15346 }
15347
15348 __extension__ extern __inline int32x2_t
15349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_s32_f32(float32x2_t __a)15350 vcvtn_s32_f32 (float32x2_t __a)
15351 {
15352 return __builtin_aarch64_lfrintnv2sfv2si (__a);
15353 }
15354
15355 __extension__ extern __inline uint32x2_t
15356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_u32_f32(float32x2_t __a)15357 vcvtn_u32_f32 (float32x2_t __a)
15358 {
15359 return __builtin_aarch64_lfrintnuv2sfv2si_us (__a);
15360 }
15361
15362 __extension__ extern __inline int32x4_t
15363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_s32_f32(float32x4_t __a)15364 vcvtnq_s32_f32 (float32x4_t __a)
15365 {
15366 return __builtin_aarch64_lfrintnv4sfv4si (__a);
15367 }
15368
15369 __extension__ extern __inline uint32x4_t
15370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_u32_f32(float32x4_t __a)15371 vcvtnq_u32_f32 (float32x4_t __a)
15372 {
15373 return __builtin_aarch64_lfrintnuv4sfv4si_us (__a);
15374 }
15375
15376 __extension__ extern __inline int64x1_t
15377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_s64_f64(float64x1_t __a)15378 vcvtn_s64_f64 (float64x1_t __a)
15379 {
15380 return (int64x1_t) {vcvtnd_s64_f64 (__a[0])};
15381 }
15382
15383 __extension__ extern __inline uint64x1_t
15384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_u64_f64(float64x1_t __a)15385 vcvtn_u64_f64 (float64x1_t __a)
15386 {
15387 return (uint64x1_t) {vcvtnd_u64_f64 (__a[0])};
15388 }
15389
15390 __extension__ extern __inline int64x2_t
15391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_s64_f64(float64x2_t __a)15392 vcvtnq_s64_f64 (float64x2_t __a)
15393 {
15394 return __builtin_aarch64_lfrintnv2dfv2di (__a);
15395 }
15396
15397 __extension__ extern __inline uint64x2_t
15398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_u64_f64(float64x2_t __a)15399 vcvtnq_u64_f64 (float64x2_t __a)
15400 {
15401 return __builtin_aarch64_lfrintnuv2dfv2di_us (__a);
15402 }
15403
15404 /* vcvtp */
15405
15406 __extension__ extern __inline int64_t
15407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpd_s64_f64(float64_t __a)15408 vcvtpd_s64_f64 (float64_t __a)
15409 {
15410 return __builtin_llceil (__a);
15411 }
15412
15413 __extension__ extern __inline uint64_t
15414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpd_u64_f64(float64_t __a)15415 vcvtpd_u64_f64 (float64_t __a)
15416 {
15417 return __builtin_aarch64_lceiludfdi_us (__a);
15418 }
15419
15420 __extension__ extern __inline int32_t
15421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtps_s32_f32(float32_t __a)15422 vcvtps_s32_f32 (float32_t __a)
15423 {
15424 return __builtin_iceilf (__a);
15425 }
15426
15427 __extension__ extern __inline uint32_t
15428 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtps_u32_f32(float32_t __a)15429 vcvtps_u32_f32 (float32_t __a)
15430 {
15431 return __builtin_aarch64_lceilusfsi_us (__a);
15432 }
15433
15434 __extension__ extern __inline int32x2_t
15435 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_s32_f32(float32x2_t __a)15436 vcvtp_s32_f32 (float32x2_t __a)
15437 {
15438 return __builtin_aarch64_lceilv2sfv2si (__a);
15439 }
15440
15441 __extension__ extern __inline uint32x2_t
15442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_u32_f32(float32x2_t __a)15443 vcvtp_u32_f32 (float32x2_t __a)
15444 {
15445 return __builtin_aarch64_lceiluv2sfv2si_us (__a);
15446 }
15447
15448 __extension__ extern __inline int32x4_t
15449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_s32_f32(float32x4_t __a)15450 vcvtpq_s32_f32 (float32x4_t __a)
15451 {
15452 return __builtin_aarch64_lceilv4sfv4si (__a);
15453 }
15454
15455 __extension__ extern __inline uint32x4_t
15456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_u32_f32(float32x4_t __a)15457 vcvtpq_u32_f32 (float32x4_t __a)
15458 {
15459 return __builtin_aarch64_lceiluv4sfv4si_us (__a);
15460 }
15461
15462 __extension__ extern __inline int64x1_t
15463 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_s64_f64(float64x1_t __a)15464 vcvtp_s64_f64 (float64x1_t __a)
15465 {
15466 return (int64x1_t) {vcvtpd_s64_f64 (__a[0])};
15467 }
15468
15469 __extension__ extern __inline uint64x1_t
15470 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_u64_f64(float64x1_t __a)15471 vcvtp_u64_f64 (float64x1_t __a)
15472 {
15473 return (uint64x1_t) {vcvtpd_u64_f64 (__a[0])};
15474 }
15475
15476 __extension__ extern __inline int64x2_t
15477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_s64_f64(float64x2_t __a)15478 vcvtpq_s64_f64 (float64x2_t __a)
15479 {
15480 return __builtin_aarch64_lceilv2dfv2di (__a);
15481 }
15482
15483 __extension__ extern __inline uint64x2_t
15484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_u64_f64(float64x2_t __a)15485 vcvtpq_u64_f64 (float64x2_t __a)
15486 {
15487 return __builtin_aarch64_lceiluv2dfv2di_us (__a);
15488 }
15489
15490 /* vdup_n */
15491
15492 __extension__ extern __inline float16x4_t
15493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_f16(float16_t __a)15494 vdup_n_f16 (float16_t __a)
15495 {
15496 return (float16x4_t) {__a, __a, __a, __a};
15497 }
15498
15499 __extension__ extern __inline float32x2_t
15500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_f32(float32_t __a)15501 vdup_n_f32 (float32_t __a)
15502 {
15503 return (float32x2_t) {__a, __a};
15504 }
15505
15506 __extension__ extern __inline float64x1_t
15507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_f64(float64_t __a)15508 vdup_n_f64 (float64_t __a)
15509 {
15510 return (float64x1_t) {__a};
15511 }
15512
15513 __extension__ extern __inline poly8x8_t
15514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_p8(poly8_t __a)15515 vdup_n_p8 (poly8_t __a)
15516 {
15517 return (poly8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15518 }
15519
15520 __extension__ extern __inline poly16x4_t
15521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_p16(poly16_t __a)15522 vdup_n_p16 (poly16_t __a)
15523 {
15524 return (poly16x4_t) {__a, __a, __a, __a};
15525 }
15526
15527 __extension__ extern __inline poly64x1_t
15528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_p64(poly64_t __a)15529 vdup_n_p64 (poly64_t __a)
15530 {
15531 return (poly64x1_t) {__a};
15532 }
15533
15534 __extension__ extern __inline int8x8_t
15535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_s8(int8_t __a)15536 vdup_n_s8 (int8_t __a)
15537 {
15538 return (int8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15539 }
15540
15541 __extension__ extern __inline int16x4_t
15542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_s16(int16_t __a)15543 vdup_n_s16 (int16_t __a)
15544 {
15545 return (int16x4_t) {__a, __a, __a, __a};
15546 }
15547
15548 __extension__ extern __inline int32x2_t
15549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_s32(int32_t __a)15550 vdup_n_s32 (int32_t __a)
15551 {
15552 return (int32x2_t) {__a, __a};
15553 }
15554
15555 __extension__ extern __inline int64x1_t
15556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_s64(int64_t __a)15557 vdup_n_s64 (int64_t __a)
15558 {
15559 return (int64x1_t) {__a};
15560 }
15561
15562 __extension__ extern __inline uint8x8_t
15563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_u8(uint8_t __a)15564 vdup_n_u8 (uint8_t __a)
15565 {
15566 return (uint8x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15567 }
15568
15569 __extension__ extern __inline uint16x4_t
15570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_u16(uint16_t __a)15571 vdup_n_u16 (uint16_t __a)
15572 {
15573 return (uint16x4_t) {__a, __a, __a, __a};
15574 }
15575
15576 __extension__ extern __inline uint32x2_t
15577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_u32(uint32_t __a)15578 vdup_n_u32 (uint32_t __a)
15579 {
15580 return (uint32x2_t) {__a, __a};
15581 }
15582
15583 __extension__ extern __inline uint64x1_t
15584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_u64(uint64_t __a)15585 vdup_n_u64 (uint64_t __a)
15586 {
15587 return (uint64x1_t) {__a};
15588 }
15589
15590 /* vdupq_n */
15591
15592 __extension__ extern __inline float16x8_t
15593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_f16(float16_t __a)15594 vdupq_n_f16 (float16_t __a)
15595 {
15596 return (float16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15597 }
15598
15599 __extension__ extern __inline float32x4_t
15600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_f32(float32_t __a)15601 vdupq_n_f32 (float32_t __a)
15602 {
15603 return (float32x4_t) {__a, __a, __a, __a};
15604 }
15605
15606 __extension__ extern __inline float64x2_t
15607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_f64(float64_t __a)15608 vdupq_n_f64 (float64_t __a)
15609 {
15610 return (float64x2_t) {__a, __a};
15611 }
15612
15613 __extension__ extern __inline poly8x16_t
15614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_p8(poly8_t __a)15615 vdupq_n_p8 (poly8_t __a)
15616 {
15617 return (poly8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15618 __a, __a, __a, __a, __a, __a, __a, __a};
15619 }
15620
15621 __extension__ extern __inline poly16x8_t
15622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_p16(poly16_t __a)15623 vdupq_n_p16 (poly16_t __a)
15624 {
15625 return (poly16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15626 }
15627
15628 __extension__ extern __inline poly64x2_t
15629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_p64(poly64_t __a)15630 vdupq_n_p64 (poly64_t __a)
15631 {
15632 return (poly64x2_t) {__a, __a};
15633 }
15634
15635 __extension__ extern __inline int8x16_t
15636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_s8(int8_t __a)15637 vdupq_n_s8 (int8_t __a)
15638 {
15639 return (int8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15640 __a, __a, __a, __a, __a, __a, __a, __a};
15641 }
15642
15643 __extension__ extern __inline int16x8_t
15644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_s16(int16_t __a)15645 vdupq_n_s16 (int16_t __a)
15646 {
15647 return (int16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15648 }
15649
15650 __extension__ extern __inline int32x4_t
15651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_s32(int32_t __a)15652 vdupq_n_s32 (int32_t __a)
15653 {
15654 return (int32x4_t) {__a, __a, __a, __a};
15655 }
15656
15657 __extension__ extern __inline int64x2_t
15658 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_s64(int64_t __a)15659 vdupq_n_s64 (int64_t __a)
15660 {
15661 return (int64x2_t) {__a, __a};
15662 }
15663
15664 __extension__ extern __inline uint8x16_t
15665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_u8(uint8_t __a)15666 vdupq_n_u8 (uint8_t __a)
15667 {
15668 return (uint8x16_t) {__a, __a, __a, __a, __a, __a, __a, __a,
15669 __a, __a, __a, __a, __a, __a, __a, __a};
15670 }
15671
15672 __extension__ extern __inline uint16x8_t
15673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_u16(uint16_t __a)15674 vdupq_n_u16 (uint16_t __a)
15675 {
15676 return (uint16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
15677 }
15678
15679 __extension__ extern __inline uint32x4_t
15680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_u32(uint32_t __a)15681 vdupq_n_u32 (uint32_t __a)
15682 {
15683 return (uint32x4_t) {__a, __a, __a, __a};
15684 }
15685
15686 __extension__ extern __inline uint64x2_t
15687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_u64(uint64_t __a)15688 vdupq_n_u64 (uint64_t __a)
15689 {
15690 return (uint64x2_t) {__a, __a};
15691 }
15692
15693 /* vdup_lane */
15694
15695 __extension__ extern __inline float16x4_t
15696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_f16(float16x4_t __a,const int __b)15697 vdup_lane_f16 (float16x4_t __a, const int __b)
15698 {
15699 return __aarch64_vdup_lane_f16 (__a, __b);
15700 }
15701
15702 __extension__ extern __inline float32x2_t
15703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_f32(float32x2_t __a,const int __b)15704 vdup_lane_f32 (float32x2_t __a, const int __b)
15705 {
15706 return __aarch64_vdup_lane_f32 (__a, __b);
15707 }
15708
15709 __extension__ extern __inline float64x1_t
15710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_f64(float64x1_t __a,const int __b)15711 vdup_lane_f64 (float64x1_t __a, const int __b)
15712 {
15713 return __aarch64_vdup_lane_f64 (__a, __b);
15714 }
15715
15716 __extension__ extern __inline poly8x8_t
15717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_p8(poly8x8_t __a,const int __b)15718 vdup_lane_p8 (poly8x8_t __a, const int __b)
15719 {
15720 return __aarch64_vdup_lane_p8 (__a, __b);
15721 }
15722
15723 __extension__ extern __inline poly16x4_t
15724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_p16(poly16x4_t __a,const int __b)15725 vdup_lane_p16 (poly16x4_t __a, const int __b)
15726 {
15727 return __aarch64_vdup_lane_p16 (__a, __b);
15728 }
15729
15730 __extension__ extern __inline poly64x1_t
15731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_p64(poly64x1_t __a,const int __b)15732 vdup_lane_p64 (poly64x1_t __a, const int __b)
15733 {
15734 return __aarch64_vdup_lane_p64 (__a, __b);
15735 }
15736
15737 __extension__ extern __inline int8x8_t
15738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_s8(int8x8_t __a,const int __b)15739 vdup_lane_s8 (int8x8_t __a, const int __b)
15740 {
15741 return __aarch64_vdup_lane_s8 (__a, __b);
15742 }
15743
15744 __extension__ extern __inline int16x4_t
15745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_s16(int16x4_t __a,const int __b)15746 vdup_lane_s16 (int16x4_t __a, const int __b)
15747 {
15748 return __aarch64_vdup_lane_s16 (__a, __b);
15749 }
15750
15751 __extension__ extern __inline int32x2_t
15752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_s32(int32x2_t __a,const int __b)15753 vdup_lane_s32 (int32x2_t __a, const int __b)
15754 {
15755 return __aarch64_vdup_lane_s32 (__a, __b);
15756 }
15757
15758 __extension__ extern __inline int64x1_t
15759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_s64(int64x1_t __a,const int __b)15760 vdup_lane_s64 (int64x1_t __a, const int __b)
15761 {
15762 return __aarch64_vdup_lane_s64 (__a, __b);
15763 }
15764
15765 __extension__ extern __inline uint8x8_t
15766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_u8(uint8x8_t __a,const int __b)15767 vdup_lane_u8 (uint8x8_t __a, const int __b)
15768 {
15769 return __aarch64_vdup_lane_u8 (__a, __b);
15770 }
15771
15772 __extension__ extern __inline uint16x4_t
15773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_u16(uint16x4_t __a,const int __b)15774 vdup_lane_u16 (uint16x4_t __a, const int __b)
15775 {
15776 return __aarch64_vdup_lane_u16 (__a, __b);
15777 }
15778
15779 __extension__ extern __inline uint32x2_t
15780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_u32(uint32x2_t __a,const int __b)15781 vdup_lane_u32 (uint32x2_t __a, const int __b)
15782 {
15783 return __aarch64_vdup_lane_u32 (__a, __b);
15784 }
15785
15786 __extension__ extern __inline uint64x1_t
15787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_u64(uint64x1_t __a,const int __b)15788 vdup_lane_u64 (uint64x1_t __a, const int __b)
15789 {
15790 return __aarch64_vdup_lane_u64 (__a, __b);
15791 }
15792
15793 /* vdup_laneq */
15794
15795 __extension__ extern __inline float16x4_t
15796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_f16(float16x8_t __a,const int __b)15797 vdup_laneq_f16 (float16x8_t __a, const int __b)
15798 {
15799 return __aarch64_vdup_laneq_f16 (__a, __b);
15800 }
15801
15802 __extension__ extern __inline float32x2_t
15803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_f32(float32x4_t __a,const int __b)15804 vdup_laneq_f32 (float32x4_t __a, const int __b)
15805 {
15806 return __aarch64_vdup_laneq_f32 (__a, __b);
15807 }
15808
15809 __extension__ extern __inline float64x1_t
15810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_f64(float64x2_t __a,const int __b)15811 vdup_laneq_f64 (float64x2_t __a, const int __b)
15812 {
15813 return __aarch64_vdup_laneq_f64 (__a, __b);
15814 }
15815
15816 __extension__ extern __inline poly8x8_t
15817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_p8(poly8x16_t __a,const int __b)15818 vdup_laneq_p8 (poly8x16_t __a, const int __b)
15819 {
15820 return __aarch64_vdup_laneq_p8 (__a, __b);
15821 }
15822
15823 __extension__ extern __inline poly16x4_t
15824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_p16(poly16x8_t __a,const int __b)15825 vdup_laneq_p16 (poly16x8_t __a, const int __b)
15826 {
15827 return __aarch64_vdup_laneq_p16 (__a, __b);
15828 }
15829
15830 __extension__ extern __inline poly64x1_t
15831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_p64(poly64x2_t __a,const int __b)15832 vdup_laneq_p64 (poly64x2_t __a, const int __b)
15833 {
15834 return __aarch64_vdup_laneq_p64 (__a, __b);
15835 }
15836
15837 __extension__ extern __inline int8x8_t
15838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_s8(int8x16_t __a,const int __b)15839 vdup_laneq_s8 (int8x16_t __a, const int __b)
15840 {
15841 return __aarch64_vdup_laneq_s8 (__a, __b);
15842 }
15843
15844 __extension__ extern __inline int16x4_t
15845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_s16(int16x8_t __a,const int __b)15846 vdup_laneq_s16 (int16x8_t __a, const int __b)
15847 {
15848 return __aarch64_vdup_laneq_s16 (__a, __b);
15849 }
15850
15851 __extension__ extern __inline int32x2_t
15852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_s32(int32x4_t __a,const int __b)15853 vdup_laneq_s32 (int32x4_t __a, const int __b)
15854 {
15855 return __aarch64_vdup_laneq_s32 (__a, __b);
15856 }
15857
15858 __extension__ extern __inline int64x1_t
15859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_s64(int64x2_t __a,const int __b)15860 vdup_laneq_s64 (int64x2_t __a, const int __b)
15861 {
15862 return __aarch64_vdup_laneq_s64 (__a, __b);
15863 }
15864
15865 __extension__ extern __inline uint8x8_t
15866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_u8(uint8x16_t __a,const int __b)15867 vdup_laneq_u8 (uint8x16_t __a, const int __b)
15868 {
15869 return __aarch64_vdup_laneq_u8 (__a, __b);
15870 }
15871
15872 __extension__ extern __inline uint16x4_t
15873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_u16(uint16x8_t __a,const int __b)15874 vdup_laneq_u16 (uint16x8_t __a, const int __b)
15875 {
15876 return __aarch64_vdup_laneq_u16 (__a, __b);
15877 }
15878
15879 __extension__ extern __inline uint32x2_t
15880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_u32(uint32x4_t __a,const int __b)15881 vdup_laneq_u32 (uint32x4_t __a, const int __b)
15882 {
15883 return __aarch64_vdup_laneq_u32 (__a, __b);
15884 }
15885
15886 __extension__ extern __inline uint64x1_t
15887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_u64(uint64x2_t __a,const int __b)15888 vdup_laneq_u64 (uint64x2_t __a, const int __b)
15889 {
15890 return __aarch64_vdup_laneq_u64 (__a, __b);
15891 }
15892
15893 /* vdupq_lane */
15894
15895 __extension__ extern __inline float16x8_t
15896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_f16(float16x4_t __a,const int __b)15897 vdupq_lane_f16 (float16x4_t __a, const int __b)
15898 {
15899 return __aarch64_vdupq_lane_f16 (__a, __b);
15900 }
15901
15902 __extension__ extern __inline float32x4_t
15903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_f32(float32x2_t __a,const int __b)15904 vdupq_lane_f32 (float32x2_t __a, const int __b)
15905 {
15906 return __aarch64_vdupq_lane_f32 (__a, __b);
15907 }
15908
15909 __extension__ extern __inline float64x2_t
15910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_f64(float64x1_t __a,const int __b)15911 vdupq_lane_f64 (float64x1_t __a, const int __b)
15912 {
15913 return __aarch64_vdupq_lane_f64 (__a, __b);
15914 }
15915
15916 __extension__ extern __inline poly8x16_t
15917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_p8(poly8x8_t __a,const int __b)15918 vdupq_lane_p8 (poly8x8_t __a, const int __b)
15919 {
15920 return __aarch64_vdupq_lane_p8 (__a, __b);
15921 }
15922
15923 __extension__ extern __inline poly16x8_t
15924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_p16(poly16x4_t __a,const int __b)15925 vdupq_lane_p16 (poly16x4_t __a, const int __b)
15926 {
15927 return __aarch64_vdupq_lane_p16 (__a, __b);
15928 }
15929
15930 __extension__ extern __inline poly64x2_t
15931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_p64(poly64x1_t __a,const int __b)15932 vdupq_lane_p64 (poly64x1_t __a, const int __b)
15933 {
15934 return __aarch64_vdupq_lane_p64 (__a, __b);
15935 }
15936
15937 __extension__ extern __inline int8x16_t
15938 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_s8(int8x8_t __a,const int __b)15939 vdupq_lane_s8 (int8x8_t __a, const int __b)
15940 {
15941 return __aarch64_vdupq_lane_s8 (__a, __b);
15942 }
15943
15944 __extension__ extern __inline int16x8_t
15945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_s16(int16x4_t __a,const int __b)15946 vdupq_lane_s16 (int16x4_t __a, const int __b)
15947 {
15948 return __aarch64_vdupq_lane_s16 (__a, __b);
15949 }
15950
15951 __extension__ extern __inline int32x4_t
15952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_s32(int32x2_t __a,const int __b)15953 vdupq_lane_s32 (int32x2_t __a, const int __b)
15954 {
15955 return __aarch64_vdupq_lane_s32 (__a, __b);
15956 }
15957
15958 __extension__ extern __inline int64x2_t
15959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_s64(int64x1_t __a,const int __b)15960 vdupq_lane_s64 (int64x1_t __a, const int __b)
15961 {
15962 return __aarch64_vdupq_lane_s64 (__a, __b);
15963 }
15964
15965 __extension__ extern __inline uint8x16_t
15966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_u8(uint8x8_t __a,const int __b)15967 vdupq_lane_u8 (uint8x8_t __a, const int __b)
15968 {
15969 return __aarch64_vdupq_lane_u8 (__a, __b);
15970 }
15971
15972 __extension__ extern __inline uint16x8_t
15973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_u16(uint16x4_t __a,const int __b)15974 vdupq_lane_u16 (uint16x4_t __a, const int __b)
15975 {
15976 return __aarch64_vdupq_lane_u16 (__a, __b);
15977 }
15978
15979 __extension__ extern __inline uint32x4_t
15980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_u32(uint32x2_t __a,const int __b)15981 vdupq_lane_u32 (uint32x2_t __a, const int __b)
15982 {
15983 return __aarch64_vdupq_lane_u32 (__a, __b);
15984 }
15985
15986 __extension__ extern __inline uint64x2_t
15987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_u64(uint64x1_t __a,const int __b)15988 vdupq_lane_u64 (uint64x1_t __a, const int __b)
15989 {
15990 return __aarch64_vdupq_lane_u64 (__a, __b);
15991 }
15992
15993 /* vdupq_laneq */
15994
15995 __extension__ extern __inline float16x8_t
15996 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_f16(float16x8_t __a,const int __b)15997 vdupq_laneq_f16 (float16x8_t __a, const int __b)
15998 {
15999 return __aarch64_vdupq_laneq_f16 (__a, __b);
16000 }
16001
16002 __extension__ extern __inline float32x4_t
16003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_f32(float32x4_t __a,const int __b)16004 vdupq_laneq_f32 (float32x4_t __a, const int __b)
16005 {
16006 return __aarch64_vdupq_laneq_f32 (__a, __b);
16007 }
16008
16009 __extension__ extern __inline float64x2_t
16010 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_f64(float64x2_t __a,const int __b)16011 vdupq_laneq_f64 (float64x2_t __a, const int __b)
16012 {
16013 return __aarch64_vdupq_laneq_f64 (__a, __b);
16014 }
16015
16016 __extension__ extern __inline poly8x16_t
16017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_p8(poly8x16_t __a,const int __b)16018 vdupq_laneq_p8 (poly8x16_t __a, const int __b)
16019 {
16020 return __aarch64_vdupq_laneq_p8 (__a, __b);
16021 }
16022
16023 __extension__ extern __inline poly16x8_t
16024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_p16(poly16x8_t __a,const int __b)16025 vdupq_laneq_p16 (poly16x8_t __a, const int __b)
16026 {
16027 return __aarch64_vdupq_laneq_p16 (__a, __b);
16028 }
16029
16030 __extension__ extern __inline poly64x2_t
16031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_p64(poly64x2_t __a,const int __b)16032 vdupq_laneq_p64 (poly64x2_t __a, const int __b)
16033 {
16034 return __aarch64_vdupq_laneq_p64 (__a, __b);
16035 }
16036
16037 __extension__ extern __inline int8x16_t
16038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_s8(int8x16_t __a,const int __b)16039 vdupq_laneq_s8 (int8x16_t __a, const int __b)
16040 {
16041 return __aarch64_vdupq_laneq_s8 (__a, __b);
16042 }
16043
16044 __extension__ extern __inline int16x8_t
16045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_s16(int16x8_t __a,const int __b)16046 vdupq_laneq_s16 (int16x8_t __a, const int __b)
16047 {
16048 return __aarch64_vdupq_laneq_s16 (__a, __b);
16049 }
16050
16051 __extension__ extern __inline int32x4_t
16052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_s32(int32x4_t __a,const int __b)16053 vdupq_laneq_s32 (int32x4_t __a, const int __b)
16054 {
16055 return __aarch64_vdupq_laneq_s32 (__a, __b);
16056 }
16057
16058 __extension__ extern __inline int64x2_t
16059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_s64(int64x2_t __a,const int __b)16060 vdupq_laneq_s64 (int64x2_t __a, const int __b)
16061 {
16062 return __aarch64_vdupq_laneq_s64 (__a, __b);
16063 }
16064
16065 __extension__ extern __inline uint8x16_t
16066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_u8(uint8x16_t __a,const int __b)16067 vdupq_laneq_u8 (uint8x16_t __a, const int __b)
16068 {
16069 return __aarch64_vdupq_laneq_u8 (__a, __b);
16070 }
16071
16072 __extension__ extern __inline uint16x8_t
16073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_u16(uint16x8_t __a,const int __b)16074 vdupq_laneq_u16 (uint16x8_t __a, const int __b)
16075 {
16076 return __aarch64_vdupq_laneq_u16 (__a, __b);
16077 }
16078
16079 __extension__ extern __inline uint32x4_t
16080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_u32(uint32x4_t __a,const int __b)16081 vdupq_laneq_u32 (uint32x4_t __a, const int __b)
16082 {
16083 return __aarch64_vdupq_laneq_u32 (__a, __b);
16084 }
16085
16086 __extension__ extern __inline uint64x2_t
16087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_u64(uint64x2_t __a,const int __b)16088 vdupq_laneq_u64 (uint64x2_t __a, const int __b)
16089 {
16090 return __aarch64_vdupq_laneq_u64 (__a, __b);
16091 }
16092
16093 /* vdupb_lane */
16094 __extension__ extern __inline poly8_t
16095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_lane_p8(poly8x8_t __a,const int __b)16096 vdupb_lane_p8 (poly8x8_t __a, const int __b)
16097 {
16098 return __aarch64_vget_lane_any (__a, __b);
16099 }
16100
16101 __extension__ extern __inline int8_t
16102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_lane_s8(int8x8_t __a,const int __b)16103 vdupb_lane_s8 (int8x8_t __a, const int __b)
16104 {
16105 return __aarch64_vget_lane_any (__a, __b);
16106 }
16107
16108 __extension__ extern __inline uint8_t
16109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_lane_u8(uint8x8_t __a,const int __b)16110 vdupb_lane_u8 (uint8x8_t __a, const int __b)
16111 {
16112 return __aarch64_vget_lane_any (__a, __b);
16113 }
16114
16115 /* vduph_lane */
16116
16117 __extension__ extern __inline float16_t
16118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_lane_f16(float16x4_t __a,const int __b)16119 vduph_lane_f16 (float16x4_t __a, const int __b)
16120 {
16121 return __aarch64_vget_lane_any (__a, __b);
16122 }
16123
16124 __extension__ extern __inline poly16_t
16125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_lane_p16(poly16x4_t __a,const int __b)16126 vduph_lane_p16 (poly16x4_t __a, const int __b)
16127 {
16128 return __aarch64_vget_lane_any (__a, __b);
16129 }
16130
16131 __extension__ extern __inline int16_t
16132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_lane_s16(int16x4_t __a,const int __b)16133 vduph_lane_s16 (int16x4_t __a, const int __b)
16134 {
16135 return __aarch64_vget_lane_any (__a, __b);
16136 }
16137
16138 __extension__ extern __inline uint16_t
16139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_lane_u16(uint16x4_t __a,const int __b)16140 vduph_lane_u16 (uint16x4_t __a, const int __b)
16141 {
16142 return __aarch64_vget_lane_any (__a, __b);
16143 }
16144
16145 /* vdups_lane */
16146
16147 __extension__ extern __inline float32_t
16148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_lane_f32(float32x2_t __a,const int __b)16149 vdups_lane_f32 (float32x2_t __a, const int __b)
16150 {
16151 return __aarch64_vget_lane_any (__a, __b);
16152 }
16153
16154 __extension__ extern __inline int32_t
16155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_lane_s32(int32x2_t __a,const int __b)16156 vdups_lane_s32 (int32x2_t __a, const int __b)
16157 {
16158 return __aarch64_vget_lane_any (__a, __b);
16159 }
16160
16161 __extension__ extern __inline uint32_t
16162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_lane_u32(uint32x2_t __a,const int __b)16163 vdups_lane_u32 (uint32x2_t __a, const int __b)
16164 {
16165 return __aarch64_vget_lane_any (__a, __b);
16166 }
16167
16168 /* vdupd_lane */
16169 __extension__ extern __inline float64_t
16170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_lane_f64(float64x1_t __a,const int __b)16171 vdupd_lane_f64 (float64x1_t __a, const int __b)
16172 {
16173 __AARCH64_LANE_CHECK (__a, __b);
16174 return __a[0];
16175 }
16176
16177 __extension__ extern __inline int64_t
16178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_lane_s64(int64x1_t __a,const int __b)16179 vdupd_lane_s64 (int64x1_t __a, const int __b)
16180 {
16181 __AARCH64_LANE_CHECK (__a, __b);
16182 return __a[0];
16183 }
16184
16185 __extension__ extern __inline uint64_t
16186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_lane_u64(uint64x1_t __a,const int __b)16187 vdupd_lane_u64 (uint64x1_t __a, const int __b)
16188 {
16189 __AARCH64_LANE_CHECK (__a, __b);
16190 return __a[0];
16191 }
16192
16193 /* vdupb_laneq */
16194 __extension__ extern __inline poly8_t
16195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_laneq_p8(poly8x16_t __a,const int __b)16196 vdupb_laneq_p8 (poly8x16_t __a, const int __b)
16197 {
16198 return __aarch64_vget_lane_any (__a, __b);
16199 }
16200
16201 __extension__ extern __inline int8_t
16202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_laneq_s8(int8x16_t __a,const int __b)16203 vdupb_laneq_s8 (int8x16_t __a, const int __b)
16204 {
16205 return __aarch64_vget_lane_any (__a, __b);
16206 }
16207
16208 __extension__ extern __inline uint8_t
16209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupb_laneq_u8(uint8x16_t __a,const int __b)16210 vdupb_laneq_u8 (uint8x16_t __a, const int __b)
16211 {
16212 return __aarch64_vget_lane_any (__a, __b);
16213 }
16214
16215 /* vduph_laneq */
16216
16217 __extension__ extern __inline float16_t
16218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_laneq_f16(float16x8_t __a,const int __b)16219 vduph_laneq_f16 (float16x8_t __a, const int __b)
16220 {
16221 return __aarch64_vget_lane_any (__a, __b);
16222 }
16223
16224 __extension__ extern __inline poly16_t
16225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_laneq_p16(poly16x8_t __a,const int __b)16226 vduph_laneq_p16 (poly16x8_t __a, const int __b)
16227 {
16228 return __aarch64_vget_lane_any (__a, __b);
16229 }
16230
16231 __extension__ extern __inline int16_t
16232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_laneq_s16(int16x8_t __a,const int __b)16233 vduph_laneq_s16 (int16x8_t __a, const int __b)
16234 {
16235 return __aarch64_vget_lane_any (__a, __b);
16236 }
16237
16238 __extension__ extern __inline uint16_t
16239 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_laneq_u16(uint16x8_t __a,const int __b)16240 vduph_laneq_u16 (uint16x8_t __a, const int __b)
16241 {
16242 return __aarch64_vget_lane_any (__a, __b);
16243 }
16244
16245 /* vdups_laneq */
16246
16247 __extension__ extern __inline float32_t
16248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_laneq_f32(float32x4_t __a,const int __b)16249 vdups_laneq_f32 (float32x4_t __a, const int __b)
16250 {
16251 return __aarch64_vget_lane_any (__a, __b);
16252 }
16253
16254 __extension__ extern __inline int32_t
16255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_laneq_s32(int32x4_t __a,const int __b)16256 vdups_laneq_s32 (int32x4_t __a, const int __b)
16257 {
16258 return __aarch64_vget_lane_any (__a, __b);
16259 }
16260
16261 __extension__ extern __inline uint32_t
16262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdups_laneq_u32(uint32x4_t __a,const int __b)16263 vdups_laneq_u32 (uint32x4_t __a, const int __b)
16264 {
16265 return __aarch64_vget_lane_any (__a, __b);
16266 }
16267
16268 /* vdupd_laneq */
16269 __extension__ extern __inline float64_t
16270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_laneq_f64(float64x2_t __a,const int __b)16271 vdupd_laneq_f64 (float64x2_t __a, const int __b)
16272 {
16273 return __aarch64_vget_lane_any (__a, __b);
16274 }
16275
16276 __extension__ extern __inline int64_t
16277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_laneq_s64(int64x2_t __a,const int __b)16278 vdupd_laneq_s64 (int64x2_t __a, const int __b)
16279 {
16280 return __aarch64_vget_lane_any (__a, __b);
16281 }
16282
16283 __extension__ extern __inline uint64_t
16284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupd_laneq_u64(uint64x2_t __a,const int __b)16285 vdupd_laneq_u64 (uint64x2_t __a, const int __b)
16286 {
16287 return __aarch64_vget_lane_any (__a, __b);
16288 }
16289
16290 /* vext */
16291
16292 __extension__ extern __inline float16x4_t
16293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_f16(float16x4_t __a,float16x4_t __b,__const int __c)16294 vext_f16 (float16x4_t __a, float16x4_t __b, __const int __c)
16295 {
16296 __AARCH64_LANE_CHECK (__a, __c);
16297 #ifdef __AARCH64EB__
16298 return __builtin_shuffle (__b, __a,
16299 (uint16x4_t) {4 - __c, 5 - __c, 6 - __c, 7 - __c});
16300 #else
16301 return __builtin_shuffle (__a, __b,
16302 (uint16x4_t) {__c, __c + 1, __c + 2, __c + 3});
16303 #endif
16304 }
16305
16306 __extension__ extern __inline float32x2_t
16307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_f32(float32x2_t __a,float32x2_t __b,__const int __c)16308 vext_f32 (float32x2_t __a, float32x2_t __b, __const int __c)
16309 {
16310 __AARCH64_LANE_CHECK (__a, __c);
16311 #ifdef __AARCH64EB__
16312 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16313 #else
16314 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16315 #endif
16316 }
16317
16318 __extension__ extern __inline float64x1_t
16319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_f64(float64x1_t __a,float64x1_t __b,__const int __c)16320 vext_f64 (float64x1_t __a, float64x1_t __b, __const int __c)
16321 {
16322 __AARCH64_LANE_CHECK (__a, __c);
16323 /* The only possible index to the assembler instruction returns element 0. */
16324 return __a;
16325 }
16326 __extension__ extern __inline poly8x8_t
16327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_p8(poly8x8_t __a,poly8x8_t __b,__const int __c)16328 vext_p8 (poly8x8_t __a, poly8x8_t __b, __const int __c)
16329 {
16330 __AARCH64_LANE_CHECK (__a, __c);
16331 #ifdef __AARCH64EB__
16332 return __builtin_shuffle (__b, __a, (uint8x8_t)
16333 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16334 #else
16335 return __builtin_shuffle (__a, __b,
16336 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16337 #endif
16338 }
16339
16340 __extension__ extern __inline poly16x4_t
16341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_p16(poly16x4_t __a,poly16x4_t __b,__const int __c)16342 vext_p16 (poly16x4_t __a, poly16x4_t __b, __const int __c)
16343 {
16344 __AARCH64_LANE_CHECK (__a, __c);
16345 #ifdef __AARCH64EB__
16346 return __builtin_shuffle (__b, __a,
16347 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16348 #else
16349 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16350 #endif
16351 }
16352
16353 __extension__ extern __inline poly64x1_t
16354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_p64(poly64x1_t __a,poly64x1_t __b,__const int __c)16355 vext_p64 (poly64x1_t __a, poly64x1_t __b, __const int __c)
16356 {
16357 __AARCH64_LANE_CHECK (__a, __c);
16358 /* The only possible index to the assembler instruction returns element 0. */
16359 return __a;
16360 }
16361
16362 __extension__ extern __inline int8x8_t
16363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_s8(int8x8_t __a,int8x8_t __b,__const int __c)16364 vext_s8 (int8x8_t __a, int8x8_t __b, __const int __c)
16365 {
16366 __AARCH64_LANE_CHECK (__a, __c);
16367 #ifdef __AARCH64EB__
16368 return __builtin_shuffle (__b, __a, (uint8x8_t)
16369 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16370 #else
16371 return __builtin_shuffle (__a, __b,
16372 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16373 #endif
16374 }
16375
16376 __extension__ extern __inline int16x4_t
16377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_s16(int16x4_t __a,int16x4_t __b,__const int __c)16378 vext_s16 (int16x4_t __a, int16x4_t __b, __const int __c)
16379 {
16380 __AARCH64_LANE_CHECK (__a, __c);
16381 #ifdef __AARCH64EB__
16382 return __builtin_shuffle (__b, __a,
16383 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16384 #else
16385 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16386 #endif
16387 }
16388
16389 __extension__ extern __inline int32x2_t
16390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_s32(int32x2_t __a,int32x2_t __b,__const int __c)16391 vext_s32 (int32x2_t __a, int32x2_t __b, __const int __c)
16392 {
16393 __AARCH64_LANE_CHECK (__a, __c);
16394 #ifdef __AARCH64EB__
16395 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16396 #else
16397 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16398 #endif
16399 }
16400
16401 __extension__ extern __inline int64x1_t
16402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_s64(int64x1_t __a,int64x1_t __b,__const int __c)16403 vext_s64 (int64x1_t __a, int64x1_t __b, __const int __c)
16404 {
16405 __AARCH64_LANE_CHECK (__a, __c);
16406 /* The only possible index to the assembler instruction returns element 0. */
16407 return __a;
16408 }
16409
16410 __extension__ extern __inline uint8x8_t
16411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_u8(uint8x8_t __a,uint8x8_t __b,__const int __c)16412 vext_u8 (uint8x8_t __a, uint8x8_t __b, __const int __c)
16413 {
16414 __AARCH64_LANE_CHECK (__a, __c);
16415 #ifdef __AARCH64EB__
16416 return __builtin_shuffle (__b, __a, (uint8x8_t)
16417 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16418 #else
16419 return __builtin_shuffle (__a, __b,
16420 (uint8x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16421 #endif
16422 }
16423
16424 __extension__ extern __inline uint16x4_t
16425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_u16(uint16x4_t __a,uint16x4_t __b,__const int __c)16426 vext_u16 (uint16x4_t __a, uint16x4_t __b, __const int __c)
16427 {
16428 __AARCH64_LANE_CHECK (__a, __c);
16429 #ifdef __AARCH64EB__
16430 return __builtin_shuffle (__b, __a,
16431 (uint16x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16432 #else
16433 return __builtin_shuffle (__a, __b, (uint16x4_t) {__c, __c+1, __c+2, __c+3});
16434 #endif
16435 }
16436
16437 __extension__ extern __inline uint32x2_t
16438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_u32(uint32x2_t __a,uint32x2_t __b,__const int __c)16439 vext_u32 (uint32x2_t __a, uint32x2_t __b, __const int __c)
16440 {
16441 __AARCH64_LANE_CHECK (__a, __c);
16442 #ifdef __AARCH64EB__
16443 return __builtin_shuffle (__b, __a, (uint32x2_t) {2-__c, 3-__c});
16444 #else
16445 return __builtin_shuffle (__a, __b, (uint32x2_t) {__c, __c+1});
16446 #endif
16447 }
16448
16449 __extension__ extern __inline uint64x1_t
16450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vext_u64(uint64x1_t __a,uint64x1_t __b,__const int __c)16451 vext_u64 (uint64x1_t __a, uint64x1_t __b, __const int __c)
16452 {
16453 __AARCH64_LANE_CHECK (__a, __c);
16454 /* The only possible index to the assembler instruction returns element 0. */
16455 return __a;
16456 }
16457
16458 __extension__ extern __inline float16x8_t
16459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_f16(float16x8_t __a,float16x8_t __b,__const int __c)16460 vextq_f16 (float16x8_t __a, float16x8_t __b, __const int __c)
16461 {
16462 __AARCH64_LANE_CHECK (__a, __c);
16463 #ifdef __AARCH64EB__
16464 return __builtin_shuffle (__b, __a,
16465 (uint16x8_t) {8 - __c, 9 - __c, 10 - __c, 11 - __c,
16466 12 - __c, 13 - __c, 14 - __c,
16467 15 - __c});
16468 #else
16469 return __builtin_shuffle (__a, __b,
16470 (uint16x8_t) {__c, __c + 1, __c + 2, __c + 3,
16471 __c + 4, __c + 5, __c + 6, __c + 7});
16472 #endif
16473 }
16474
16475 __extension__ extern __inline float32x4_t
16476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_f32(float32x4_t __a,float32x4_t __b,__const int __c)16477 vextq_f32 (float32x4_t __a, float32x4_t __b, __const int __c)
16478 {
16479 __AARCH64_LANE_CHECK (__a, __c);
16480 #ifdef __AARCH64EB__
16481 return __builtin_shuffle (__b, __a,
16482 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16483 #else
16484 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16485 #endif
16486 }
16487
16488 __extension__ extern __inline float64x2_t
16489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_f64(float64x2_t __a,float64x2_t __b,__const int __c)16490 vextq_f64 (float64x2_t __a, float64x2_t __b, __const int __c)
16491 {
16492 __AARCH64_LANE_CHECK (__a, __c);
16493 #ifdef __AARCH64EB__
16494 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16495 #else
16496 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16497 #endif
16498 }
16499
16500 __extension__ extern __inline poly8x16_t
16501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_p8(poly8x16_t __a,poly8x16_t __b,__const int __c)16502 vextq_p8 (poly8x16_t __a, poly8x16_t __b, __const int __c)
16503 {
16504 __AARCH64_LANE_CHECK (__a, __c);
16505 #ifdef __AARCH64EB__
16506 return __builtin_shuffle (__b, __a, (uint8x16_t)
16507 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16508 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16509 #else
16510 return __builtin_shuffle (__a, __b, (uint8x16_t)
16511 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16512 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16513 #endif
16514 }
16515
16516 __extension__ extern __inline poly16x8_t
16517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_p16(poly16x8_t __a,poly16x8_t __b,__const int __c)16518 vextq_p16 (poly16x8_t __a, poly16x8_t __b, __const int __c)
16519 {
16520 __AARCH64_LANE_CHECK (__a, __c);
16521 #ifdef __AARCH64EB__
16522 return __builtin_shuffle (__b, __a, (uint16x8_t)
16523 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16524 #else
16525 return __builtin_shuffle (__a, __b,
16526 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16527 #endif
16528 }
16529
16530 __extension__ extern __inline poly64x2_t
16531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_p64(poly64x2_t __a,poly64x2_t __b,__const int __c)16532 vextq_p64 (poly64x2_t __a, poly64x2_t __b, __const int __c)
16533 {
16534 __AARCH64_LANE_CHECK (__a, __c);
16535 #ifdef __AARCH64EB__
16536 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16537 #else
16538 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16539 #endif
16540 }
16541
16542 __extension__ extern __inline int8x16_t
16543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_s8(int8x16_t __a,int8x16_t __b,__const int __c)16544 vextq_s8 (int8x16_t __a, int8x16_t __b, __const int __c)
16545 {
16546 __AARCH64_LANE_CHECK (__a, __c);
16547 #ifdef __AARCH64EB__
16548 return __builtin_shuffle (__b, __a, (uint8x16_t)
16549 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16550 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16551 #else
16552 return __builtin_shuffle (__a, __b, (uint8x16_t)
16553 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16554 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16555 #endif
16556 }
16557
16558 __extension__ extern __inline int16x8_t
16559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_s16(int16x8_t __a,int16x8_t __b,__const int __c)16560 vextq_s16 (int16x8_t __a, int16x8_t __b, __const int __c)
16561 {
16562 __AARCH64_LANE_CHECK (__a, __c);
16563 #ifdef __AARCH64EB__
16564 return __builtin_shuffle (__b, __a, (uint16x8_t)
16565 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16566 #else
16567 return __builtin_shuffle (__a, __b,
16568 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16569 #endif
16570 }
16571
16572 __extension__ extern __inline int32x4_t
16573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_s32(int32x4_t __a,int32x4_t __b,__const int __c)16574 vextq_s32 (int32x4_t __a, int32x4_t __b, __const int __c)
16575 {
16576 __AARCH64_LANE_CHECK (__a, __c);
16577 #ifdef __AARCH64EB__
16578 return __builtin_shuffle (__b, __a,
16579 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16580 #else
16581 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16582 #endif
16583 }
16584
16585 __extension__ extern __inline int64x2_t
16586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_s64(int64x2_t __a,int64x2_t __b,__const int __c)16587 vextq_s64 (int64x2_t __a, int64x2_t __b, __const int __c)
16588 {
16589 __AARCH64_LANE_CHECK (__a, __c);
16590 #ifdef __AARCH64EB__
16591 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16592 #else
16593 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16594 #endif
16595 }
16596
16597 __extension__ extern __inline uint8x16_t
16598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_u8(uint8x16_t __a,uint8x16_t __b,__const int __c)16599 vextq_u8 (uint8x16_t __a, uint8x16_t __b, __const int __c)
16600 {
16601 __AARCH64_LANE_CHECK (__a, __c);
16602 #ifdef __AARCH64EB__
16603 return __builtin_shuffle (__b, __a, (uint8x16_t)
16604 {16-__c, 17-__c, 18-__c, 19-__c, 20-__c, 21-__c, 22-__c, 23-__c,
16605 24-__c, 25-__c, 26-__c, 27-__c, 28-__c, 29-__c, 30-__c, 31-__c});
16606 #else
16607 return __builtin_shuffle (__a, __b, (uint8x16_t)
16608 {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7,
16609 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15});
16610 #endif
16611 }
16612
16613 __extension__ extern __inline uint16x8_t
16614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_u16(uint16x8_t __a,uint16x8_t __b,__const int __c)16615 vextq_u16 (uint16x8_t __a, uint16x8_t __b, __const int __c)
16616 {
16617 __AARCH64_LANE_CHECK (__a, __c);
16618 #ifdef __AARCH64EB__
16619 return __builtin_shuffle (__b, __a, (uint16x8_t)
16620 {8-__c, 9-__c, 10-__c, 11-__c, 12-__c, 13-__c, 14-__c, 15-__c});
16621 #else
16622 return __builtin_shuffle (__a, __b,
16623 (uint16x8_t) {__c, __c+1, __c+2, __c+3, __c+4, __c+5, __c+6, __c+7});
16624 #endif
16625 }
16626
16627 __extension__ extern __inline uint32x4_t
16628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_u32(uint32x4_t __a,uint32x4_t __b,__const int __c)16629 vextq_u32 (uint32x4_t __a, uint32x4_t __b, __const int __c)
16630 {
16631 __AARCH64_LANE_CHECK (__a, __c);
16632 #ifdef __AARCH64EB__
16633 return __builtin_shuffle (__b, __a,
16634 (uint32x4_t) {4-__c, 5-__c, 6-__c, 7-__c});
16635 #else
16636 return __builtin_shuffle (__a, __b, (uint32x4_t) {__c, __c+1, __c+2, __c+3});
16637 #endif
16638 }
16639
16640 __extension__ extern __inline uint64x2_t
16641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vextq_u64(uint64x2_t __a,uint64x2_t __b,__const int __c)16642 vextq_u64 (uint64x2_t __a, uint64x2_t __b, __const int __c)
16643 {
16644 __AARCH64_LANE_CHECK (__a, __c);
16645 #ifdef __AARCH64EB__
16646 return __builtin_shuffle (__b, __a, (uint64x2_t) {2-__c, 3-__c});
16647 #else
16648 return __builtin_shuffle (__a, __b, (uint64x2_t) {__c, __c+1});
16649 #endif
16650 }
16651
16652 /* vfma */
16653
16654 __extension__ extern __inline float64x1_t
16655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c)16656 vfma_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
16657 {
16658 return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
16659 }
16660
16661 __extension__ extern __inline float32x2_t
16662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c)16663 vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
16664 {
16665 return __builtin_aarch64_fmav2sf (__b, __c, __a);
16666 }
16667
16668 __extension__ extern __inline float32x4_t
16669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c)16670 vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
16671 {
16672 return __builtin_aarch64_fmav4sf (__b, __c, __a);
16673 }
16674
16675 __extension__ extern __inline float64x2_t
16676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_f64(float64x2_t __a,float64x2_t __b,float64x2_t __c)16677 vfmaq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
16678 {
16679 return __builtin_aarch64_fmav2df (__b, __c, __a);
16680 }
16681
16682 __extension__ extern __inline float32x2_t
16683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_n_f32(float32x2_t __a,float32x2_t __b,float32_t __c)16684 vfma_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
16685 {
16686 return __builtin_aarch64_fmav2sf (__b, vdup_n_f32 (__c), __a);
16687 }
16688
16689 __extension__ extern __inline float64x1_t
16690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_n_f64(float64x1_t __a,float64x1_t __b,float64_t __c)16691 vfma_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
16692 {
16693 return (float64x1_t) {__b[0] * __c + __a[0]};
16694 }
16695
16696 __extension__ extern __inline float32x4_t
16697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_n_f32(float32x4_t __a,float32x4_t __b,float32_t __c)16698 vfmaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
16699 {
16700 return __builtin_aarch64_fmav4sf (__b, vdupq_n_f32 (__c), __a);
16701 }
16702
16703 __extension__ extern __inline float64x2_t
16704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_n_f64(float64x2_t __a,float64x2_t __b,float64_t __c)16705 vfmaq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
16706 {
16707 return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c), __a);
16708 }
16709
16710 /* vfma_lane */
16711
16712 __extension__ extern __inline float32x2_t
16713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_lane_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c,const int __lane)16714 vfma_lane_f32 (float32x2_t __a, float32x2_t __b,
16715 float32x2_t __c, const int __lane)
16716 {
16717 return __builtin_aarch64_fmav2sf (__b,
16718 __aarch64_vdup_lane_f32 (__c, __lane),
16719 __a);
16720 }
16721
16722 __extension__ extern __inline float64x1_t
16723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_lane_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c,const int __lane)16724 vfma_lane_f64 (float64x1_t __a, float64x1_t __b,
16725 float64x1_t __c, const int __lane)
16726 {
16727 return (float64x1_t) {__builtin_fma (__b[0], __c[0], __a[0])};
16728 }
16729
16730 __extension__ extern __inline float64_t
16731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmad_lane_f64(float64_t __a,float64_t __b,float64x1_t __c,const int __lane)16732 vfmad_lane_f64 (float64_t __a, float64_t __b,
16733 float64x1_t __c, const int __lane)
16734 {
16735 return __builtin_fma (__b, __c[0], __a);
16736 }
16737
16738 __extension__ extern __inline float32_t
16739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmas_lane_f32(float32_t __a,float32_t __b,float32x2_t __c,const int __lane)16740 vfmas_lane_f32 (float32_t __a, float32_t __b,
16741 float32x2_t __c, const int __lane)
16742 {
16743 return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16744 }
16745
16746 /* vfma_laneq */
16747
16748 __extension__ extern __inline float32x2_t
16749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_laneq_f32(float32x2_t __a,float32x2_t __b,float32x4_t __c,const int __lane)16750 vfma_laneq_f32 (float32x2_t __a, float32x2_t __b,
16751 float32x4_t __c, const int __lane)
16752 {
16753 return __builtin_aarch64_fmav2sf (__b,
16754 __aarch64_vdup_laneq_f32 (__c, __lane),
16755 __a);
16756 }
16757
16758 __extension__ extern __inline float64x1_t
16759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_laneq_f64(float64x1_t __a,float64x1_t __b,float64x2_t __c,const int __lane)16760 vfma_laneq_f64 (float64x1_t __a, float64x1_t __b,
16761 float64x2_t __c, const int __lane)
16762 {
16763 float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
16764 return (float64x1_t) {__builtin_fma (__b[0], __c0, __a[0])};
16765 }
16766
16767 __extension__ extern __inline float64_t
16768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmad_laneq_f64(float64_t __a,float64_t __b,float64x2_t __c,const int __lane)16769 vfmad_laneq_f64 (float64_t __a, float64_t __b,
16770 float64x2_t __c, const int __lane)
16771 {
16772 return __builtin_fma (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16773 }
16774
16775 __extension__ extern __inline float32_t
16776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmas_laneq_f32(float32_t __a,float32_t __b,float32x4_t __c,const int __lane)16777 vfmas_laneq_f32 (float32_t __a, float32_t __b,
16778 float32x4_t __c, const int __lane)
16779 {
16780 return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
16781 }
16782
16783 /* vfmaq_lane */
16784
16785 __extension__ extern __inline float32x4_t
16786 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_lane_f32(float32x4_t __a,float32x4_t __b,float32x2_t __c,const int __lane)16787 vfmaq_lane_f32 (float32x4_t __a, float32x4_t __b,
16788 float32x2_t __c, const int __lane)
16789 {
16790 return __builtin_aarch64_fmav4sf (__b,
16791 __aarch64_vdupq_lane_f32 (__c, __lane),
16792 __a);
16793 }
16794
16795 __extension__ extern __inline float64x2_t
16796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_lane_f64(float64x2_t __a,float64x2_t __b,float64x1_t __c,const int __lane)16797 vfmaq_lane_f64 (float64x2_t __a, float64x2_t __b,
16798 float64x1_t __c, const int __lane)
16799 {
16800 return __builtin_aarch64_fmav2df (__b, vdupq_n_f64 (__c[0]), __a);
16801 }
16802
16803 /* vfmaq_laneq */
16804
16805 __extension__ extern __inline float32x4_t
16806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_laneq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c,const int __lane)16807 vfmaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
16808 float32x4_t __c, const int __lane)
16809 {
16810 return __builtin_aarch64_fmav4sf (__b,
16811 __aarch64_vdupq_laneq_f32 (__c, __lane),
16812 __a);
16813 }
16814
16815 __extension__ extern __inline float64x2_t
16816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_laneq_f64(float64x2_t __a,float64x2_t __b,float64x2_t __c,const int __lane)16817 vfmaq_laneq_f64 (float64x2_t __a, float64x2_t __b,
16818 float64x2_t __c, const int __lane)
16819 {
16820 return __builtin_aarch64_fmav2df (__b,
16821 __aarch64_vdupq_laneq_f64 (__c, __lane),
16822 __a);
16823 }
16824
16825 /* vfms */
16826
16827 __extension__ extern __inline float64x1_t
16828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c)16829 vfms_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
16830 {
16831 return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
16832 }
16833
16834 __extension__ extern __inline float32x2_t
16835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c)16836 vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
16837 {
16838 return __builtin_aarch64_fmav2sf (-__b, __c, __a);
16839 }
16840
16841 __extension__ extern __inline float32x4_t
16842 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c)16843 vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
16844 {
16845 return __builtin_aarch64_fmav4sf (-__b, __c, __a);
16846 }
16847
16848 __extension__ extern __inline float64x2_t
16849 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_f64(float64x2_t __a,float64x2_t __b,float64x2_t __c)16850 vfmsq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
16851 {
16852 return __builtin_aarch64_fmav2df (-__b, __c, __a);
16853 }
16854
16855 __extension__ extern __inline float32x2_t
16856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_n_f32(float32x2_t __a,float32x2_t __b,float32_t __c)16857 vfms_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
16858 {
16859 return __builtin_aarch64_fmav2sf (-__b, vdup_n_f32 (__c), __a);
16860 }
16861
16862 __extension__ extern __inline float64x1_t
16863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_n_f64(float64x1_t __a,float64x1_t __b,float64_t __c)16864 vfms_n_f64 (float64x1_t __a, float64x1_t __b, float64_t __c)
16865 {
16866 return (float64x1_t) {-__b[0] * __c + __a[0]};
16867 }
16868
16869 __extension__ extern __inline float32x4_t
16870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_n_f32(float32x4_t __a,float32x4_t __b,float32_t __c)16871 vfmsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
16872 {
16873 return __builtin_aarch64_fmav4sf (-__b, vdupq_n_f32 (__c), __a);
16874 }
16875
16876 __extension__ extern __inline float64x2_t
16877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_n_f64(float64x2_t __a,float64x2_t __b,float64_t __c)16878 vfmsq_n_f64 (float64x2_t __a, float64x2_t __b, float64_t __c)
16879 {
16880 return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c), __a);
16881 }
16882
16883 /* vfms_lane */
16884
16885 __extension__ extern __inline float32x2_t
16886 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_lane_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c,const int __lane)16887 vfms_lane_f32 (float32x2_t __a, float32x2_t __b,
16888 float32x2_t __c, const int __lane)
16889 {
16890 return __builtin_aarch64_fmav2sf (-__b,
16891 __aarch64_vdup_lane_f32 (__c, __lane),
16892 __a);
16893 }
16894
16895 __extension__ extern __inline float64x1_t
16896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_lane_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c,const int __lane)16897 vfms_lane_f64 (float64x1_t __a, float64x1_t __b,
16898 float64x1_t __c, const int __lane)
16899 {
16900 return (float64x1_t) {__builtin_fma (-__b[0], __c[0], __a[0])};
16901 }
16902
16903 __extension__ extern __inline float64_t
16904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsd_lane_f64(float64_t __a,float64_t __b,float64x1_t __c,const int __lane)16905 vfmsd_lane_f64 (float64_t __a, float64_t __b,
16906 float64x1_t __c, const int __lane)
16907 {
16908 return __builtin_fma (-__b, __c[0], __a);
16909 }
16910
16911 __extension__ extern __inline float32_t
16912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmss_lane_f32(float32_t __a,float32_t __b,float32x2_t __c,const int __lane)16913 vfmss_lane_f32 (float32_t __a, float32_t __b,
16914 float32x2_t __c, const int __lane)
16915 {
16916 return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16917 }
16918
16919 /* vfms_laneq */
16920
16921 __extension__ extern __inline float32x2_t
16922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_laneq_f32(float32x2_t __a,float32x2_t __b,float32x4_t __c,const int __lane)16923 vfms_laneq_f32 (float32x2_t __a, float32x2_t __b,
16924 float32x4_t __c, const int __lane)
16925 {
16926 return __builtin_aarch64_fmav2sf (-__b,
16927 __aarch64_vdup_laneq_f32 (__c, __lane),
16928 __a);
16929 }
16930
16931 __extension__ extern __inline float64x1_t
16932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_laneq_f64(float64x1_t __a,float64x1_t __b,float64x2_t __c,const int __lane)16933 vfms_laneq_f64 (float64x1_t __a, float64x1_t __b,
16934 float64x2_t __c, const int __lane)
16935 {
16936 float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
16937 return (float64x1_t) {__builtin_fma (-__b[0], __c0, __a[0])};
16938 }
16939
16940 __extension__ extern __inline float64_t
16941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsd_laneq_f64(float64_t __a,float64_t __b,float64x2_t __c,const int __lane)16942 vfmsd_laneq_f64 (float64_t __a, float64_t __b,
16943 float64x2_t __c, const int __lane)
16944 {
16945 return __builtin_fma (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16946 }
16947
16948 __extension__ extern __inline float32_t
16949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmss_laneq_f32(float32_t __a,float32_t __b,float32x4_t __c,const int __lane)16950 vfmss_laneq_f32 (float32_t __a, float32_t __b,
16951 float32x4_t __c, const int __lane)
16952 {
16953 return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
16954 }
16955
16956 /* vfmsq_lane */
16957
16958 __extension__ extern __inline float32x4_t
16959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_lane_f32(float32x4_t __a,float32x4_t __b,float32x2_t __c,const int __lane)16960 vfmsq_lane_f32 (float32x4_t __a, float32x4_t __b,
16961 float32x2_t __c, const int __lane)
16962 {
16963 return __builtin_aarch64_fmav4sf (-__b,
16964 __aarch64_vdupq_lane_f32 (__c, __lane),
16965 __a);
16966 }
16967
16968 __extension__ extern __inline float64x2_t
16969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_lane_f64(float64x2_t __a,float64x2_t __b,float64x1_t __c,const int __lane)16970 vfmsq_lane_f64 (float64x2_t __a, float64x2_t __b,
16971 float64x1_t __c, const int __lane)
16972 {
16973 return __builtin_aarch64_fmav2df (-__b, vdupq_n_f64 (__c[0]), __a);
16974 }
16975
16976 /* vfmsq_laneq */
16977
16978 __extension__ extern __inline float32x4_t
16979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_laneq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c,const int __lane)16980 vfmsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
16981 float32x4_t __c, const int __lane)
16982 {
16983 return __builtin_aarch64_fmav4sf (-__b,
16984 __aarch64_vdupq_laneq_f32 (__c, __lane),
16985 __a);
16986 }
16987
16988 __extension__ extern __inline float64x2_t
16989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_laneq_f64(float64x2_t __a,float64x2_t __b,float64x2_t __c,const int __lane)16990 vfmsq_laneq_f64 (float64x2_t __a, float64x2_t __b,
16991 float64x2_t __c, const int __lane)
16992 {
16993 return __builtin_aarch64_fmav2df (-__b,
16994 __aarch64_vdupq_laneq_f64 (__c, __lane),
16995 __a);
16996 }
16997
16998 /* vld1 */
16999
17000 __extension__ extern __inline float16x4_t
17001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f16(const float16_t * __a)17002 vld1_f16 (const float16_t *__a)
17003 {
17004 return __builtin_aarch64_ld1v4hf (__a);
17005 }
17006
17007 __extension__ extern __inline float32x2_t
17008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f32(const float32_t * __a)17009 vld1_f32 (const float32_t *__a)
17010 {
17011 return __builtin_aarch64_ld1v2sf ((const __builtin_aarch64_simd_sf *) __a);
17012 }
17013
17014 __extension__ extern __inline float64x1_t
17015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f64(const float64_t * __a)17016 vld1_f64 (const float64_t *__a)
17017 {
17018 return (float64x1_t) {*__a};
17019 }
17020
17021 __extension__ extern __inline poly8x8_t
17022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p8(const poly8_t * __a)17023 vld1_p8 (const poly8_t *__a)
17024 {
17025 return (poly8x8_t)
17026 __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) __a);
17027 }
17028
17029 __extension__ extern __inline poly16x4_t
17030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p16(const poly16_t * __a)17031 vld1_p16 (const poly16_t *__a)
17032 {
17033 return (poly16x4_t)
17034 __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) __a);
17035 }
17036
17037 __extension__ extern __inline poly64x1_t
17038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p64(const poly64_t * __a)17039 vld1_p64 (const poly64_t *__a)
17040 {
17041 return (poly64x1_t) {*__a};
17042 }
17043
17044 __extension__ extern __inline int8x8_t
17045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s8(const int8_t * __a)17046 vld1_s8 (const int8_t *__a)
17047 {
17048 return __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) __a);
17049 }
17050
17051 __extension__ extern __inline int16x4_t
17052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s16(const int16_t * __a)17053 vld1_s16 (const int16_t *__a)
17054 {
17055 return __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) __a);
17056 }
17057
17058 __extension__ extern __inline int32x2_t
17059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s32(const int32_t * __a)17060 vld1_s32 (const int32_t *__a)
17061 {
17062 return __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) __a);
17063 }
17064
17065 __extension__ extern __inline int64x1_t
17066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s64(const int64_t * __a)17067 vld1_s64 (const int64_t *__a)
17068 {
17069 return (int64x1_t) {*__a};
17070 }
17071
17072 __extension__ extern __inline uint8x8_t
17073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u8(const uint8_t * __a)17074 vld1_u8 (const uint8_t *__a)
17075 {
17076 return (uint8x8_t)
17077 __builtin_aarch64_ld1v8qi ((const __builtin_aarch64_simd_qi *) __a);
17078 }
17079
17080 __extension__ extern __inline uint16x4_t
17081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u16(const uint16_t * __a)17082 vld1_u16 (const uint16_t *__a)
17083 {
17084 return (uint16x4_t)
17085 __builtin_aarch64_ld1v4hi ((const __builtin_aarch64_simd_hi *) __a);
17086 }
17087
17088 __extension__ extern __inline uint32x2_t
17089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u32(const uint32_t * __a)17090 vld1_u32 (const uint32_t *__a)
17091 {
17092 return (uint32x2_t)
17093 __builtin_aarch64_ld1v2si ((const __builtin_aarch64_simd_si *) __a);
17094 }
17095
17096 __extension__ extern __inline uint64x1_t
17097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u64(const uint64_t * __a)17098 vld1_u64 (const uint64_t *__a)
17099 {
17100 return (uint64x1_t) {*__a};
17101 }
17102
17103 /* vld1x3 */
17104
17105 __extension__ extern __inline uint8x8x3_t
17106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u8_x3(const uint8_t * __a)17107 vld1_u8_x3 (const uint8_t *__a)
17108 {
17109 uint8x8x3_t __i;
17110 __builtin_aarch64_simd_ci __o;
17111 __o = (__builtin_aarch64_simd_ci)__builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17112 __i.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
17113 __i.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
17114 __i.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
17115 return __i;
17116 }
17117
17118 __extension__ extern __inline int8x8x3_t
17119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s8_x3(const uint8_t * __a)17120 vld1_s8_x3 (const uint8_t *__a)
17121 {
17122 int8x8x3_t __i;
17123 __builtin_aarch64_simd_ci __o;
17124 __o = __builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17125 __i.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
17126 __i.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
17127 __i.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
17128 return __i;
17129 }
17130
17131 __extension__ extern __inline uint16x4x3_t
17132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u16_x3(const uint16_t * __a)17133 vld1_u16_x3 (const uint16_t *__a)
17134 {
17135 uint16x4x3_t __i;
17136 __builtin_aarch64_simd_ci __o;
17137 __o = __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17138 __i.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
17139 __i.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
17140 __i.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
17141 return __i;
17142 }
17143
17144 __extension__ extern __inline int16x4x3_t
17145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s16_x3(const int16_t * __a)17146 vld1_s16_x3 (const int16_t *__a)
17147 {
17148 int16x4x3_t __i;
17149 __builtin_aarch64_simd_ci __o;
17150 __o = __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17151 __i.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
17152 __i.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
17153 __i.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
17154 return __i;
17155 }
17156
17157 __extension__ extern __inline uint32x2x3_t
17158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u32_x3(const uint32_t * __a)17159 vld1_u32_x3 (const uint32_t *__a)
17160 {
17161 uint32x2x3_t __i;
17162 __builtin_aarch64_simd_ci __o;
17163 __o = __builtin_aarch64_ld1x3v2si ((const __builtin_aarch64_simd_si *) __a);
17164 __i.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
17165 __i.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
17166 __i.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
17167 return __i;
17168 }
17169
17170 __extension__ extern __inline int32x2x3_t
17171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s32_x3(const uint32_t * __a)17172 vld1_s32_x3 (const uint32_t *__a)
17173 {
17174 int32x2x3_t __i;
17175 __builtin_aarch64_simd_ci __o;
17176 __o = __builtin_aarch64_ld1x3v2si ((const __builtin_aarch64_simd_si *) __a);
17177 __i.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
17178 __i.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
17179 __i.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
17180 return __i;
17181 }
17182
17183 __extension__ extern __inline uint64x1x3_t
17184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u64_x3(const uint64_t * __a)17185 vld1_u64_x3 (const uint64_t *__a)
17186 {
17187 uint64x1x3_t __i;
17188 __builtin_aarch64_simd_ci __o;
17189 __o = __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
17190 __i.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17191 __i.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17192 __i.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17193 return __i;
17194 }
17195
17196 __extension__ extern __inline int64x1x3_t
17197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s64_x3(const int64_t * __a)17198 vld1_s64_x3 (const int64_t *__a)
17199 {
17200 int64x1x3_t __i;
17201 __builtin_aarch64_simd_ci __o;
17202 __o = __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
17203 __i.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17204 __i.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17205 __i.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17206
17207 return __i;
17208 }
17209
17210 __extension__ extern __inline float16x4x3_t
17211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f16_x3(const float16_t * __a)17212 vld1_f16_x3 (const float16_t *__a)
17213 {
17214 float16x4x3_t __i;
17215 __builtin_aarch64_simd_ci __o;
17216 __o = __builtin_aarch64_ld1x3v4hf ((const __builtin_aarch64_simd_hf *) __a);
17217 __i.val[0] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 0);
17218 __i.val[1] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 1);
17219 __i.val[2] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 2);
17220 return __i;
17221 }
17222
17223 __extension__ extern __inline float32x2x3_t
17224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f32_x3(const float32_t * __a)17225 vld1_f32_x3 (const float32_t *__a)
17226 {
17227 float32x2x3_t __i;
17228 __builtin_aarch64_simd_ci __o;
17229 __o = __builtin_aarch64_ld1x3v2sf ((const __builtin_aarch64_simd_sf *) __a);
17230 __i.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
17231 __i.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
17232 __i.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
17233 return __i;
17234 }
17235
17236 __extension__ extern __inline float64x1x3_t
17237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f64_x3(const float64_t * __a)17238 vld1_f64_x3 (const float64_t *__a)
17239 {
17240 float64x1x3_t __i;
17241 __builtin_aarch64_simd_ci __o;
17242 __o = __builtin_aarch64_ld1x3df ((const __builtin_aarch64_simd_df *) __a);
17243 __i.val[0] = (float64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17244 __i.val[1] = (float64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17245 __i.val[2] = (float64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17246 return __i;
17247 }
17248
17249 __extension__ extern __inline poly8x8x3_t
17250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p8_x3(const poly8_t * __a)17251 vld1_p8_x3 (const poly8_t *__a)
17252 {
17253 poly8x8x3_t __i;
17254 __builtin_aarch64_simd_ci __o;
17255 __o = __builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17256 __i.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
17257 __i.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
17258 __i.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
17259 return __i;
17260 }
17261
17262 __extension__ extern __inline poly16x4x3_t
17263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p16_x3(const poly16_t * __a)17264 vld1_p16_x3 (const poly16_t *__a)
17265 {
17266 poly16x4x3_t __i;
17267 __builtin_aarch64_simd_ci __o;
17268 __o = __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17269 __i.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
17270 __i.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
17271 __i.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
17272 return __i;
17273 }
17274
17275 __extension__ extern __inline poly64x1x3_t
17276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p64_x3(const poly64_t * __a)17277 vld1_p64_x3 (const poly64_t *__a)
17278 {
17279 poly64x1x3_t __i;
17280 __builtin_aarch64_simd_ci __o;
17281 __o = __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
17282 __i.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17283 __i.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17284 __i.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17285
17286 return __i;
17287 }
17288
17289 __extension__ extern __inline uint8x16x3_t
17290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u8_x3(const uint8_t * __a)17291 vld1q_u8_x3 (const uint8_t *__a)
17292 {
17293 uint8x16x3_t __i;
17294 __builtin_aarch64_simd_ci __o;
17295 __o = __builtin_aarch64_ld1x3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17296 __i.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
17297 __i.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
17298 __i.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
17299 return __i;
17300 }
17301
17302 __extension__ extern __inline int8x16x3_t
17303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s8_x3(const int8_t * __a)17304 vld1q_s8_x3 (const int8_t *__a)
17305 {
17306 int8x16x3_t __i;
17307 __builtin_aarch64_simd_ci __o;
17308 __o = __builtin_aarch64_ld1x3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17309 __i.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
17310 __i.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
17311 __i.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
17312 return __i;
17313 }
17314
17315 __extension__ extern __inline uint16x8x3_t
17316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u16_x3(const uint16_t * __a)17317 vld1q_u16_x3 (const uint16_t *__a)
17318 {
17319 uint16x8x3_t __i;
17320 __builtin_aarch64_simd_ci __o;
17321 __o = __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17322 __i.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
17323 __i.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
17324 __i.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
17325 return __i;
17326 }
17327
17328 __extension__ extern __inline int16x8x3_t
17329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s16_x3(const int16_t * __a)17330 vld1q_s16_x3 (const int16_t *__a)
17331 {
17332 int16x8x3_t __i;
17333 __builtin_aarch64_simd_ci __o;
17334 __o = __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17335 __i.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
17336 __i.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
17337 __i.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
17338 return __i;
17339 }
17340
17341 __extension__ extern __inline uint32x4x3_t
17342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u32_x3(const uint32_t * __a)17343 vld1q_u32_x3 (const uint32_t *__a)
17344 {
17345 uint32x4x3_t __i;
17346 __builtin_aarch64_simd_ci __o;
17347 __o = __builtin_aarch64_ld1x3v4si ((const __builtin_aarch64_simd_si *) __a);
17348 __i.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
17349 __i.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
17350 __i.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
17351 return __i;
17352 }
17353
17354 __extension__ extern __inline int32x4x3_t
17355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s32_x3(const int32_t * __a)17356 vld1q_s32_x3 (const int32_t *__a)
17357 {
17358 int32x4x3_t __i;
17359 __builtin_aarch64_simd_ci __o;
17360 __o = __builtin_aarch64_ld1x3v4si ((const __builtin_aarch64_simd_si *) __a);
17361 __i.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
17362 __i.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
17363 __i.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
17364 return __i;
17365 }
17366
17367 __extension__ extern __inline uint64x2x3_t
17368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u64_x3(const uint64_t * __a)17369 vld1q_u64_x3 (const uint64_t *__a)
17370 {
17371 uint64x2x3_t __i;
17372 __builtin_aarch64_simd_ci __o;
17373 __o = __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
17374 __i.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
17375 __i.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
17376 __i.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
17377 return __i;
17378 }
17379
17380 __extension__ extern __inline int64x2x3_t
17381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s64_x3(const int64_t * __a)17382 vld1q_s64_x3 (const int64_t *__a)
17383 {
17384 int64x2x3_t __i;
17385 __builtin_aarch64_simd_ci __o;
17386 __o = __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
17387 __i.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
17388 __i.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
17389 __i.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
17390 return __i;
17391 }
17392
17393 __extension__ extern __inline float16x8x3_t
17394 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f16_x3(const float16_t * __a)17395 vld1q_f16_x3 (const float16_t *__a)
17396 {
17397 float16x8x3_t __i;
17398 __builtin_aarch64_simd_ci __o;
17399 __o = __builtin_aarch64_ld1x3v8hf ((const __builtin_aarch64_simd_hf *) __a);
17400 __i.val[0] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 0);
17401 __i.val[1] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 1);
17402 __i.val[2] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 2);
17403 return __i;
17404 }
17405
17406 __extension__ extern __inline float32x4x3_t
17407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f32_x3(const float32_t * __a)17408 vld1q_f32_x3 (const float32_t *__a)
17409 {
17410 float32x4x3_t __i;
17411 __builtin_aarch64_simd_ci __o;
17412 __o = __builtin_aarch64_ld1x3v4sf ((const __builtin_aarch64_simd_sf *) __a);
17413 __i.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
17414 __i.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
17415 __i.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
17416 return __i;
17417 }
17418
17419 __extension__ extern __inline float64x2x3_t
17420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f64_x3(const float64_t * __a)17421 vld1q_f64_x3 (const float64_t *__a)
17422 {
17423 float64x2x3_t __i;
17424 __builtin_aarch64_simd_ci __o;
17425 __o = __builtin_aarch64_ld1x3v2df ((const __builtin_aarch64_simd_df *) __a);
17426 __i.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
17427 __i.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
17428 __i.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
17429 return __i;
17430 }
17431
17432 __extension__ extern __inline poly8x16x3_t
17433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p8_x3(const poly8_t * __a)17434 vld1q_p8_x3 (const poly8_t *__a)
17435 {
17436 poly8x16x3_t __i;
17437 __builtin_aarch64_simd_ci __o;
17438 __o = __builtin_aarch64_ld1x3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17439 __i.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
17440 __i.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
17441 __i.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
17442 return __i;
17443 }
17444
17445 __extension__ extern __inline poly16x8x3_t
17446 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p16_x3(const poly16_t * __a)17447 vld1q_p16_x3 (const poly16_t *__a)
17448 {
17449 poly16x8x3_t __i;
17450 __builtin_aarch64_simd_ci __o;
17451 __o = __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17452 __i.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
17453 __i.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
17454 __i.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
17455 return __i;
17456 }
17457
17458 __extension__ extern __inline poly64x2x3_t
17459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p64_x3(const poly64_t * __a)17460 vld1q_p64_x3 (const poly64_t *__a)
17461 {
17462 poly64x2x3_t __i;
17463 __builtin_aarch64_simd_ci __o;
17464 __o = __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
17465 __i.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
17466 __i.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
17467 __i.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
17468 return __i;
17469 }
17470
17471 /* vld1q */
17472
17473 __extension__ extern __inline float16x8_t
17474 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f16(const float16_t * __a)17475 vld1q_f16 (const float16_t *__a)
17476 {
17477 return __builtin_aarch64_ld1v8hf (__a);
17478 }
17479
17480 __extension__ extern __inline float32x4_t
17481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f32(const float32_t * __a)17482 vld1q_f32 (const float32_t *__a)
17483 {
17484 return __builtin_aarch64_ld1v4sf ((const __builtin_aarch64_simd_sf *) __a);
17485 }
17486
17487 __extension__ extern __inline float64x2_t
17488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f64(const float64_t * __a)17489 vld1q_f64 (const float64_t *__a)
17490 {
17491 return __builtin_aarch64_ld1v2df ((const __builtin_aarch64_simd_df *) __a);
17492 }
17493
17494 __extension__ extern __inline poly8x16_t
17495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p8(const poly8_t * __a)17496 vld1q_p8 (const poly8_t *__a)
17497 {
17498 return (poly8x16_t)
17499 __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) __a);
17500 }
17501
17502 __extension__ extern __inline poly16x8_t
17503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p16(const poly16_t * __a)17504 vld1q_p16 (const poly16_t *__a)
17505 {
17506 return (poly16x8_t)
17507 __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) __a);
17508 }
17509
17510 __extension__ extern __inline poly64x2_t
17511 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p64(const poly64_t * __a)17512 vld1q_p64 (const poly64_t *__a)
17513 {
17514 return (poly64x2_t)
17515 __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) __a);
17516 }
17517
17518 __extension__ extern __inline int8x16_t
17519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s8(const int8_t * __a)17520 vld1q_s8 (const int8_t *__a)
17521 {
17522 return __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) __a);
17523 }
17524
17525 __extension__ extern __inline int16x8_t
17526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s16(const int16_t * __a)17527 vld1q_s16 (const int16_t *__a)
17528 {
17529 return __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) __a);
17530 }
17531
17532 __extension__ extern __inline int32x4_t
17533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s32(const int32_t * __a)17534 vld1q_s32 (const int32_t *__a)
17535 {
17536 return __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) __a);
17537 }
17538
17539 __extension__ extern __inline int64x2_t
17540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s64(const int64_t * __a)17541 vld1q_s64 (const int64_t *__a)
17542 {
17543 return __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) __a);
17544 }
17545
17546 __extension__ extern __inline uint8x16_t
17547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u8(const uint8_t * __a)17548 vld1q_u8 (const uint8_t *__a)
17549 {
17550 return (uint8x16_t)
17551 __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) __a);
17552 }
17553
17554 __extension__ extern __inline uint8x8x2_t
17555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u8_x2(const uint8_t * __a)17556 vld1_u8_x2 (const uint8_t *__a)
17557 {
17558 uint8x8x2_t ret;
17559 __builtin_aarch64_simd_oi __o;
17560 __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17561 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17562 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17563 return ret;
17564 }
17565
17566 __extension__ extern __inline int8x8x2_t
17567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s8_x2(const int8_t * __a)17568 vld1_s8_x2 (const int8_t *__a)
17569 {
17570 int8x8x2_t ret;
17571 __builtin_aarch64_simd_oi __o;
17572 __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17573 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17574 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17575 return ret;
17576 }
17577
17578 __extension__ extern __inline uint16x4x2_t
17579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u16_x2(const uint16_t * __a)17580 vld1_u16_x2 (const uint16_t *__a)
17581 {
17582 uint16x4x2_t ret;
17583 __builtin_aarch64_simd_oi __o;
17584 __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17585 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17586 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17587 return ret;
17588 }
17589
17590 __extension__ extern __inline int16x4x2_t
17591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s16_x2(const int16_t * __a)17592 vld1_s16_x2 (const int16_t *__a)
17593 {
17594 int16x4x2_t ret;
17595 __builtin_aarch64_simd_oi __o;
17596 __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17597 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17598 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17599 return ret;
17600 }
17601
17602 __extension__ extern __inline uint32x2x2_t
17603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u32_x2(const uint32_t * __a)17604 vld1_u32_x2 (const uint32_t *__a)
17605 {
17606 uint32x2x2_t ret;
17607 __builtin_aarch64_simd_oi __o;
17608 __o = __builtin_aarch64_ld1x2v2si ((const __builtin_aarch64_simd_si *) __a);
17609 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17610 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17611 return ret;
17612 }
17613
17614 __extension__ extern __inline int32x2x2_t
17615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s32_x2(const int32_t * __a)17616 vld1_s32_x2 (const int32_t *__a)
17617 {
17618 int32x2x2_t ret;
17619 __builtin_aarch64_simd_oi __o;
17620 __o = __builtin_aarch64_ld1x2v2si ((const __builtin_aarch64_simd_si *) __a);
17621 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17622 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17623 return ret;
17624 }
17625
17626 __extension__ extern __inline uint64x1x2_t
17627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u64_x2(const uint64_t * __a)17628 vld1_u64_x2 (const uint64_t *__a)
17629 {
17630 uint64x1x2_t ret;
17631 __builtin_aarch64_simd_oi __o;
17632 __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17633 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17634 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17635 return ret;
17636 }
17637
17638 __extension__ extern __inline int64x1x2_t
17639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s64_x2(const int64_t * __a)17640 vld1_s64_x2 (const int64_t *__a)
17641 {
17642 int64x1x2_t ret;
17643 __builtin_aarch64_simd_oi __o;
17644 __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17645 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17646 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17647 return ret;
17648 }
17649
17650 __extension__ extern __inline float16x4x2_t
17651 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f16_x2(const float16_t * __a)17652 vld1_f16_x2 (const float16_t *__a)
17653 {
17654 float16x4x2_t ret;
17655 __builtin_aarch64_simd_oi __o;
17656 __o = __builtin_aarch64_ld1x2v4hf ((const __builtin_aarch64_simd_hf *) __a);
17657 ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 0);
17658 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 1);
17659 return ret;
17660 }
17661
17662 __extension__ extern __inline float32x2x2_t
17663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f32_x2(const float32_t * __a)17664 vld1_f32_x2 (const float32_t *__a)
17665 {
17666 float32x2x2_t ret;
17667 __builtin_aarch64_simd_oi __o;
17668 __o = __builtin_aarch64_ld1x2v2sf ((const __builtin_aarch64_simd_sf *) __a);
17669 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
17670 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
17671 return ret;
17672 }
17673
17674 __extension__ extern __inline float64x1x2_t
17675 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f64_x2(const float64_t * __a)17676 vld1_f64_x2 (const float64_t *__a)
17677 {
17678 float64x1x2_t ret;
17679 __builtin_aarch64_simd_oi __o;
17680 __o = __builtin_aarch64_ld1x2df ((const __builtin_aarch64_simd_df *) __a);
17681 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
17682 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
17683 return ret;
17684 }
17685
17686 __extension__ extern __inline poly8x8x2_t
17687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p8_x2(const poly8_t * __a)17688 vld1_p8_x2 (const poly8_t *__a)
17689 {
17690 poly8x8x2_t ret;
17691 __builtin_aarch64_simd_oi __o;
17692 __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17693 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17694 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17695 return ret;
17696 }
17697
17698 __extension__ extern __inline poly16x4x2_t
17699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p16_x2(const poly16_t * __a)17700 vld1_p16_x2 (const poly16_t *__a)
17701 {
17702 poly16x4x2_t ret;
17703 __builtin_aarch64_simd_oi __o;
17704 __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17705 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17706 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17707 return ret;
17708 }
17709
17710 __extension__ extern __inline poly64x1x2_t
17711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p64_x2(const poly64_t * __a)17712 vld1_p64_x2 (const poly64_t *__a)
17713 {
17714 poly64x1x2_t ret;
17715 __builtin_aarch64_simd_oi __o;
17716 __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17717 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17718 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17719 return ret;
17720 }
17721
17722 __extension__ extern __inline uint8x16x2_t
17723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u8_x2(const uint8_t * __a)17724 vld1q_u8_x2 (const uint8_t *__a)
17725 {
17726 uint8x16x2_t ret;
17727 __builtin_aarch64_simd_oi __o;
17728 __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17729 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17730 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17731 return ret;
17732 }
17733
17734 __extension__ extern __inline int8x16x2_t
17735 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s8_x2(const int8_t * __a)17736 vld1q_s8_x2 (const int8_t *__a)
17737 {
17738 int8x16x2_t ret;
17739 __builtin_aarch64_simd_oi __o;
17740 __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17741 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17742 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17743 return ret;
17744 }
17745
17746 __extension__ extern __inline uint16x8x2_t
17747 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u16_x2(const uint16_t * __a)17748 vld1q_u16_x2 (const uint16_t *__a)
17749 {
17750 uint16x8x2_t ret;
17751 __builtin_aarch64_simd_oi __o;
17752 __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17753 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17754 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17755 return ret;
17756 }
17757
17758 __extension__ extern __inline int16x8x2_t
17759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s16_x2(const int16_t * __a)17760 vld1q_s16_x2 (const int16_t *__a)
17761 {
17762 int16x8x2_t ret;
17763 __builtin_aarch64_simd_oi __o;
17764 __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17765 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17766 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17767 return ret;
17768 }
17769
17770 __extension__ extern __inline uint32x4x2_t
17771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u32_x2(const uint32_t * __a)17772 vld1q_u32_x2 (const uint32_t *__a)
17773 {
17774 uint32x4x2_t ret;
17775 __builtin_aarch64_simd_oi __o;
17776 __o = __builtin_aarch64_ld1x2v4si ((const __builtin_aarch64_simd_si *) __a);
17777 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17778 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17779 return ret;
17780 }
17781
17782 __extension__ extern __inline int32x4x2_t
17783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s32_x2(const int32_t * __a)17784 vld1q_s32_x2 (const int32_t *__a)
17785 {
17786 int32x4x2_t ret;
17787 __builtin_aarch64_simd_oi __o;
17788 __o = __builtin_aarch64_ld1x2v4si ((const __builtin_aarch64_simd_si *) __a);
17789 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17790 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17791 return ret;
17792 }
17793
17794 __extension__ extern __inline uint64x2x2_t
17795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u64_x2(const uint64_t * __a)17796 vld1q_u64_x2 (const uint64_t *__a)
17797 {
17798 uint64x2x2_t ret;
17799 __builtin_aarch64_simd_oi __o;
17800 __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17801 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17802 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17803 return ret;
17804 }
17805
17806 __extension__ extern __inline int64x2x2_t
17807 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s64_x2(const int64_t * __a)17808 vld1q_s64_x2 (const int64_t *__a)
17809 {
17810 int64x2x2_t ret;
17811 __builtin_aarch64_simd_oi __o;
17812 __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17813 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17814 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17815 return ret;
17816 }
17817
17818 __extension__ extern __inline float16x8x2_t
17819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f16_x2(const float16_t * __a)17820 vld1q_f16_x2 (const float16_t *__a)
17821 {
17822 float16x8x2_t ret;
17823 __builtin_aarch64_simd_oi __o;
17824 __o = __builtin_aarch64_ld1x2v8hf ((const __builtin_aarch64_simd_hf *) __a);
17825 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 0);
17826 ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 1);
17827 return ret;
17828 }
17829
17830 __extension__ extern __inline float32x4x2_t
17831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f32_x2(const float32_t * __a)17832 vld1q_f32_x2 (const float32_t *__a)
17833 {
17834 float32x4x2_t ret;
17835 __builtin_aarch64_simd_oi __o;
17836 __o = __builtin_aarch64_ld1x2v4sf ((const __builtin_aarch64_simd_sf *) __a);
17837 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
17838 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
17839 return ret;
17840 }
17841
17842 __extension__ extern __inline float64x2x2_t
17843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f64_x2(const float64_t * __a)17844 vld1q_f64_x2 (const float64_t *__a)
17845 {
17846 float64x2x2_t ret;
17847 __builtin_aarch64_simd_oi __o;
17848 __o = __builtin_aarch64_ld1x2v2df ((const __builtin_aarch64_simd_df *) __a);
17849 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
17850 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
17851 return ret;
17852 }
17853
17854 __extension__ extern __inline poly8x16x2_t
17855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p8_x2(const poly8_t * __a)17856 vld1q_p8_x2 (const poly8_t *__a)
17857 {
17858 poly8x16x2_t ret;
17859 __builtin_aarch64_simd_oi __o;
17860 __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17861 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17862 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17863 return ret;
17864 }
17865
17866 __extension__ extern __inline poly16x8x2_t
17867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p16_x2(const poly16_t * __a)17868 vld1q_p16_x2 (const poly16_t *__a)
17869 {
17870 poly16x8x2_t ret;
17871 __builtin_aarch64_simd_oi __o;
17872 __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17873 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17874 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17875 return ret;
17876 }
17877
17878 __extension__ extern __inline poly64x2x2_t
17879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p64_x2(const poly64_t * __a)17880 vld1q_p64_x2 (const poly64_t *__a)
17881 {
17882 poly64x2x2_t ret;
17883 __builtin_aarch64_simd_oi __o;
17884 __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17885 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17886 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17887 return ret;
17888 }
17889
17890 __extension__ extern __inline uint16x8_t
17891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u16(const uint16_t * __a)17892 vld1q_u16 (const uint16_t *__a)
17893 {
17894 return (uint16x8_t)
17895 __builtin_aarch64_ld1v8hi ((const __builtin_aarch64_simd_hi *) __a);
17896 }
17897
17898 __extension__ extern __inline uint32x4_t
17899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u32(const uint32_t * __a)17900 vld1q_u32 (const uint32_t *__a)
17901 {
17902 return (uint32x4_t)
17903 __builtin_aarch64_ld1v4si ((const __builtin_aarch64_simd_si *) __a);
17904 }
17905
17906 __extension__ extern __inline uint64x2_t
17907 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u64(const uint64_t * __a)17908 vld1q_u64 (const uint64_t *__a)
17909 {
17910 return (uint64x2_t)
17911 __builtin_aarch64_ld1v2di ((const __builtin_aarch64_simd_di *) __a);
17912 }
17913
17914 /* vld1(q)_x4. */
17915
17916 __extension__ extern __inline int8x8x4_t
17917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s8_x4(const int8_t * __a)17918 vld1_s8_x4 (const int8_t *__a)
17919 {
17920 union { int8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
17921 __au.__o
17922 = __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a);
17923 return __au.__i;
17924 }
17925
17926 __extension__ extern __inline int8x16x4_t
17927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s8_x4(const int8_t * __a)17928 vld1q_s8_x4 (const int8_t *__a)
17929 {
17930 union { int8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
17931 __au.__o
17932 = __builtin_aarch64_ld1x4v16qi ((const __builtin_aarch64_simd_qi *) __a);
17933 return __au.__i;
17934 }
17935
17936 __extension__ extern __inline int16x4x4_t
17937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s16_x4(const int16_t * __a)17938 vld1_s16_x4 (const int16_t *__a)
17939 {
17940 union { int16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
17941 __au.__o
17942 = __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a);
17943 return __au.__i;
17944 }
17945
17946 __extension__ extern __inline int16x8x4_t
17947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s16_x4(const int16_t * __a)17948 vld1q_s16_x4 (const int16_t *__a)
17949 {
17950 union { int16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
17951 __au.__o
17952 = __builtin_aarch64_ld1x4v8hi ((const __builtin_aarch64_simd_hi *) __a);
17953 return __au.__i;
17954 }
17955
17956 __extension__ extern __inline int32x2x4_t
17957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s32_x4(const int32_t * __a)17958 vld1_s32_x4 (const int32_t *__a)
17959 {
17960 union { int32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
17961 __au.__o
17962 = __builtin_aarch64_ld1x4v2si ((const __builtin_aarch64_simd_si *) __a);
17963 return __au.__i;
17964 }
17965
17966 __extension__ extern __inline int32x4x4_t
17967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s32_x4(const int32_t * __a)17968 vld1q_s32_x4 (const int32_t *__a)
17969 {
17970 union { int32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
17971 __au.__o
17972 = __builtin_aarch64_ld1x4v4si ((const __builtin_aarch64_simd_si *) __a);
17973 return __au.__i;
17974 }
17975
17976 __extension__ extern __inline uint8x8x4_t
17977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u8_x4(const uint8_t * __a)17978 vld1_u8_x4 (const uint8_t *__a)
17979 {
17980 union { uint8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
17981 __au.__o
17982 = __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a);
17983 return __au.__i;
17984 }
17985
17986 __extension__ extern __inline uint8x16x4_t
17987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u8_x4(const uint8_t * __a)17988 vld1q_u8_x4 (const uint8_t *__a)
17989 {
17990 union { uint8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
17991 __au.__o
17992 = __builtin_aarch64_ld1x4v16qi ((const __builtin_aarch64_simd_qi *) __a);
17993 return __au.__i;
17994 }
17995
17996 __extension__ extern __inline uint16x4x4_t
17997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u16_x4(const uint16_t * __a)17998 vld1_u16_x4 (const uint16_t *__a)
17999 {
18000 union { uint16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18001 __au.__o
18002 = __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18003 return __au.__i;
18004 }
18005
18006 __extension__ extern __inline uint16x8x4_t
18007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u16_x4(const uint16_t * __a)18008 vld1q_u16_x4 (const uint16_t *__a)
18009 {
18010 union { uint16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18011 __au.__o
18012 = __builtin_aarch64_ld1x4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18013 return __au.__i;
18014 }
18015
18016 __extension__ extern __inline uint32x2x4_t
18017 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u32_x4(const uint32_t * __a)18018 vld1_u32_x4 (const uint32_t *__a)
18019 {
18020 union { uint32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18021 __au.__o
18022 = __builtin_aarch64_ld1x4v2si ((const __builtin_aarch64_simd_si *) __a);
18023 return __au.__i;
18024 }
18025
18026 __extension__ extern __inline uint32x4x4_t
18027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u32_x4(const uint32_t * __a)18028 vld1q_u32_x4 (const uint32_t *__a)
18029 {
18030 union { uint32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18031 __au.__o
18032 = __builtin_aarch64_ld1x4v4si ((const __builtin_aarch64_simd_si *) __a);
18033 return __au.__i;
18034 }
18035
18036 __extension__ extern __inline float16x4x4_t
18037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f16_x4(const float16_t * __a)18038 vld1_f16_x4 (const float16_t *__a)
18039 {
18040 union { float16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18041 __au.__o
18042 = __builtin_aarch64_ld1x4v4hf ((const __builtin_aarch64_simd_hf *) __a);
18043 return __au.__i;
18044 }
18045
18046 __extension__ extern __inline float16x8x4_t
18047 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f16_x4(const float16_t * __a)18048 vld1q_f16_x4 (const float16_t *__a)
18049 {
18050 union { float16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18051 __au.__o
18052 = __builtin_aarch64_ld1x4v8hf ((const __builtin_aarch64_simd_hf *) __a);
18053 return __au.__i;
18054 }
18055
18056 __extension__ extern __inline float32x2x4_t
18057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f32_x4(const float32_t * __a)18058 vld1_f32_x4 (const float32_t *__a)
18059 {
18060 union { float32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18061 __au.__o
18062 = __builtin_aarch64_ld1x4v2sf ((const __builtin_aarch64_simd_sf *) __a);
18063 return __au.__i;
18064 }
18065
18066 __extension__ extern __inline float32x4x4_t
18067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f32_x4(const float32_t * __a)18068 vld1q_f32_x4 (const float32_t *__a)
18069 {
18070 union { float32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18071 __au.__o
18072 = __builtin_aarch64_ld1x4v4sf ((const __builtin_aarch64_simd_sf *) __a);
18073 return __au.__i;
18074 }
18075
18076 __extension__ extern __inline poly8x8x4_t
18077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p8_x4(const poly8_t * __a)18078 vld1_p8_x4 (const poly8_t *__a)
18079 {
18080 union { poly8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18081 __au.__o
18082 = __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a);
18083 return __au.__i;
18084 }
18085
18086 __extension__ extern __inline poly8x16x4_t
18087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p8_x4(const poly8_t * __a)18088 vld1q_p8_x4 (const poly8_t *__a)
18089 {
18090 union { poly8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18091 __au.__o
18092 = __builtin_aarch64_ld1x4v16qi ((const __builtin_aarch64_simd_qi *) __a);
18093 return __au.__i;
18094 }
18095
18096 __extension__ extern __inline poly16x4x4_t
18097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p16_x4(const poly16_t * __a)18098 vld1_p16_x4 (const poly16_t *__a)
18099 {
18100 union { poly16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18101 __au.__o
18102 = __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a);
18103 return __au.__i;
18104 }
18105
18106 __extension__ extern __inline poly16x8x4_t
18107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p16_x4(const poly16_t * __a)18108 vld1q_p16_x4 (const poly16_t *__a)
18109 {
18110 union { poly16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18111 __au.__o
18112 = __builtin_aarch64_ld1x4v8hi ((const __builtin_aarch64_simd_hi *) __a);
18113 return __au.__i;
18114 }
18115
18116 __extension__ extern __inline int64x1x4_t
18117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_s64_x4(const int64_t * __a)18118 vld1_s64_x4 (const int64_t *__a)
18119 {
18120 union { int64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18121 __au.__o
18122 = __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a);
18123 return __au.__i;
18124 }
18125
18126 __extension__ extern __inline uint64x1x4_t
18127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_u64_x4(const uint64_t * __a)18128 vld1_u64_x4 (const uint64_t *__a)
18129 {
18130 union { uint64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18131 __au.__o
18132 = __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a);
18133 return __au.__i;
18134 }
18135
18136 __extension__ extern __inline poly64x1x4_t
18137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_p64_x4(const poly64_t * __a)18138 vld1_p64_x4 (const poly64_t *__a)
18139 {
18140 union { poly64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18141 __au.__o
18142 = __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a);
18143 return __au.__i;
18144 }
18145
18146 __extension__ extern __inline int64x2x4_t
18147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_s64_x4(const int64_t * __a)18148 vld1q_s64_x4 (const int64_t *__a)
18149 {
18150 union { int64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18151 __au.__o
18152 = __builtin_aarch64_ld1x4v2di ((const __builtin_aarch64_simd_di *) __a);
18153 return __au.__i;
18154 }
18155
18156 __extension__ extern __inline uint64x2x4_t
18157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_u64_x4(const uint64_t * __a)18158 vld1q_u64_x4 (const uint64_t *__a)
18159 {
18160 union { uint64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18161 __au.__o
18162 = __builtin_aarch64_ld1x4v2di ((const __builtin_aarch64_simd_di *) __a);
18163 return __au.__i;
18164 }
18165
18166 __extension__ extern __inline poly64x2x4_t
18167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_p64_x4(const poly64_t * __a)18168 vld1q_p64_x4 (const poly64_t *__a)
18169 {
18170 union { poly64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18171 __au.__o
18172 = __builtin_aarch64_ld1x4v2di ((const __builtin_aarch64_simd_di *) __a);
18173 return __au.__i;
18174 }
18175
18176 __extension__ extern __inline float64x1x4_t
18177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_f64_x4(const float64_t * __a)18178 vld1_f64_x4 (const float64_t *__a)
18179 {
18180 union { float64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18181 __au.__o
18182 = __builtin_aarch64_ld1x4df ((const __builtin_aarch64_simd_df *) __a);
18183 return __au.__i;
18184 }
18185
18186 __extension__ extern __inline float64x2x4_t
18187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_f64_x4(const float64_t * __a)18188 vld1q_f64_x4 (const float64_t *__a)
18189 {
18190 union { float64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
18191 __au.__o
18192 = __builtin_aarch64_ld1x4v2df ((const __builtin_aarch64_simd_df *) __a);
18193 return __au.__i;
18194 }
18195
18196 /* vld1_dup */
18197
18198 __extension__ extern __inline float16x4_t
18199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_f16(const float16_t * __a)18200 vld1_dup_f16 (const float16_t* __a)
18201 {
18202 return vdup_n_f16 (*__a);
18203 }
18204
18205 __extension__ extern __inline float32x2_t
18206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_f32(const float32_t * __a)18207 vld1_dup_f32 (const float32_t* __a)
18208 {
18209 return vdup_n_f32 (*__a);
18210 }
18211
18212 __extension__ extern __inline float64x1_t
18213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_f64(const float64_t * __a)18214 vld1_dup_f64 (const float64_t* __a)
18215 {
18216 return vdup_n_f64 (*__a);
18217 }
18218
18219 __extension__ extern __inline poly8x8_t
18220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_p8(const poly8_t * __a)18221 vld1_dup_p8 (const poly8_t* __a)
18222 {
18223 return vdup_n_p8 (*__a);
18224 }
18225
18226 __extension__ extern __inline poly16x4_t
18227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_p16(const poly16_t * __a)18228 vld1_dup_p16 (const poly16_t* __a)
18229 {
18230 return vdup_n_p16 (*__a);
18231 }
18232
18233 __extension__ extern __inline poly64x1_t
18234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_p64(const poly64_t * __a)18235 vld1_dup_p64 (const poly64_t* __a)
18236 {
18237 return vdup_n_p64 (*__a);
18238 }
18239
18240 __extension__ extern __inline int8x8_t
18241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_s8(const int8_t * __a)18242 vld1_dup_s8 (const int8_t* __a)
18243 {
18244 return vdup_n_s8 (*__a);
18245 }
18246
18247 __extension__ extern __inline int16x4_t
18248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_s16(const int16_t * __a)18249 vld1_dup_s16 (const int16_t* __a)
18250 {
18251 return vdup_n_s16 (*__a);
18252 }
18253
18254 __extension__ extern __inline int32x2_t
18255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_s32(const int32_t * __a)18256 vld1_dup_s32 (const int32_t* __a)
18257 {
18258 return vdup_n_s32 (*__a);
18259 }
18260
18261 __extension__ extern __inline int64x1_t
18262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_s64(const int64_t * __a)18263 vld1_dup_s64 (const int64_t* __a)
18264 {
18265 return vdup_n_s64 (*__a);
18266 }
18267
18268 __extension__ extern __inline uint8x8_t
18269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_u8(const uint8_t * __a)18270 vld1_dup_u8 (const uint8_t* __a)
18271 {
18272 return vdup_n_u8 (*__a);
18273 }
18274
18275 __extension__ extern __inline uint16x4_t
18276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_u16(const uint16_t * __a)18277 vld1_dup_u16 (const uint16_t* __a)
18278 {
18279 return vdup_n_u16 (*__a);
18280 }
18281
18282 __extension__ extern __inline uint32x2_t
18283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_u32(const uint32_t * __a)18284 vld1_dup_u32 (const uint32_t* __a)
18285 {
18286 return vdup_n_u32 (*__a);
18287 }
18288
18289 __extension__ extern __inline uint64x1_t
18290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_u64(const uint64_t * __a)18291 vld1_dup_u64 (const uint64_t* __a)
18292 {
18293 return vdup_n_u64 (*__a);
18294 }
18295
18296 /* vld1q_dup */
18297
18298 __extension__ extern __inline float16x8_t
18299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_f16(const float16_t * __a)18300 vld1q_dup_f16 (const float16_t* __a)
18301 {
18302 return vdupq_n_f16 (*__a);
18303 }
18304
18305 __extension__ extern __inline float32x4_t
18306 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_f32(const float32_t * __a)18307 vld1q_dup_f32 (const float32_t* __a)
18308 {
18309 return vdupq_n_f32 (*__a);
18310 }
18311
18312 __extension__ extern __inline float64x2_t
18313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_f64(const float64_t * __a)18314 vld1q_dup_f64 (const float64_t* __a)
18315 {
18316 return vdupq_n_f64 (*__a);
18317 }
18318
18319 __extension__ extern __inline poly8x16_t
18320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_p8(const poly8_t * __a)18321 vld1q_dup_p8 (const poly8_t* __a)
18322 {
18323 return vdupq_n_p8 (*__a);
18324 }
18325
18326 __extension__ extern __inline poly16x8_t
18327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_p16(const poly16_t * __a)18328 vld1q_dup_p16 (const poly16_t* __a)
18329 {
18330 return vdupq_n_p16 (*__a);
18331 }
18332
18333 __extension__ extern __inline poly64x2_t
18334 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_p64(const poly64_t * __a)18335 vld1q_dup_p64 (const poly64_t* __a)
18336 {
18337 return vdupq_n_p64 (*__a);
18338 }
18339
18340 __extension__ extern __inline int8x16_t
18341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_s8(const int8_t * __a)18342 vld1q_dup_s8 (const int8_t* __a)
18343 {
18344 return vdupq_n_s8 (*__a);
18345 }
18346
18347 __extension__ extern __inline int16x8_t
18348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_s16(const int16_t * __a)18349 vld1q_dup_s16 (const int16_t* __a)
18350 {
18351 return vdupq_n_s16 (*__a);
18352 }
18353
18354 __extension__ extern __inline int32x4_t
18355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_s32(const int32_t * __a)18356 vld1q_dup_s32 (const int32_t* __a)
18357 {
18358 return vdupq_n_s32 (*__a);
18359 }
18360
18361 __extension__ extern __inline int64x2_t
18362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_s64(const int64_t * __a)18363 vld1q_dup_s64 (const int64_t* __a)
18364 {
18365 return vdupq_n_s64 (*__a);
18366 }
18367
18368 __extension__ extern __inline uint8x16_t
18369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_u8(const uint8_t * __a)18370 vld1q_dup_u8 (const uint8_t* __a)
18371 {
18372 return vdupq_n_u8 (*__a);
18373 }
18374
18375 __extension__ extern __inline uint16x8_t
18376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_u16(const uint16_t * __a)18377 vld1q_dup_u16 (const uint16_t* __a)
18378 {
18379 return vdupq_n_u16 (*__a);
18380 }
18381
18382 __extension__ extern __inline uint32x4_t
18383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_u32(const uint32_t * __a)18384 vld1q_dup_u32 (const uint32_t* __a)
18385 {
18386 return vdupq_n_u32 (*__a);
18387 }
18388
18389 __extension__ extern __inline uint64x2_t
18390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_u64(const uint64_t * __a)18391 vld1q_dup_u64 (const uint64_t* __a)
18392 {
18393 return vdupq_n_u64 (*__a);
18394 }
18395
18396 /* vld1_lane */
18397
18398 __extension__ extern __inline float16x4_t
18399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_f16(const float16_t * __src,float16x4_t __vec,const int __lane)18400 vld1_lane_f16 (const float16_t *__src, float16x4_t __vec, const int __lane)
18401 {
18402 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18403 }
18404
18405 __extension__ extern __inline float32x2_t
18406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_f32(const float32_t * __src,float32x2_t __vec,const int __lane)18407 vld1_lane_f32 (const float32_t *__src, float32x2_t __vec, const int __lane)
18408 {
18409 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18410 }
18411
18412 __extension__ extern __inline float64x1_t
18413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_f64(const float64_t * __src,float64x1_t __vec,const int __lane)18414 vld1_lane_f64 (const float64_t *__src, float64x1_t __vec, const int __lane)
18415 {
18416 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18417 }
18418
18419 __extension__ extern __inline poly8x8_t
18420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_p8(const poly8_t * __src,poly8x8_t __vec,const int __lane)18421 vld1_lane_p8 (const poly8_t *__src, poly8x8_t __vec, const int __lane)
18422 {
18423 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18424 }
18425
18426 __extension__ extern __inline poly16x4_t
18427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_p16(const poly16_t * __src,poly16x4_t __vec,const int __lane)18428 vld1_lane_p16 (const poly16_t *__src, poly16x4_t __vec, const int __lane)
18429 {
18430 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18431 }
18432
18433 __extension__ extern __inline poly64x1_t
18434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_p64(const poly64_t * __src,poly64x1_t __vec,const int __lane)18435 vld1_lane_p64 (const poly64_t *__src, poly64x1_t __vec, const int __lane)
18436 {
18437 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18438 }
18439
18440 __extension__ extern __inline int8x8_t
18441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_s8(const int8_t * __src,int8x8_t __vec,const int __lane)18442 vld1_lane_s8 (const int8_t *__src, int8x8_t __vec, const int __lane)
18443 {
18444 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18445 }
18446
18447 __extension__ extern __inline int16x4_t
18448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_s16(const int16_t * __src,int16x4_t __vec,const int __lane)18449 vld1_lane_s16 (const int16_t *__src, int16x4_t __vec, const int __lane)
18450 {
18451 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18452 }
18453
18454 __extension__ extern __inline int32x2_t
18455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_s32(const int32_t * __src,int32x2_t __vec,const int __lane)18456 vld1_lane_s32 (const int32_t *__src, int32x2_t __vec, const int __lane)
18457 {
18458 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18459 }
18460
18461 __extension__ extern __inline int64x1_t
18462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_s64(const int64_t * __src,int64x1_t __vec,const int __lane)18463 vld1_lane_s64 (const int64_t *__src, int64x1_t __vec, const int __lane)
18464 {
18465 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18466 }
18467
18468 __extension__ extern __inline uint8x8_t
18469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_u8(const uint8_t * __src,uint8x8_t __vec,const int __lane)18470 vld1_lane_u8 (const uint8_t *__src, uint8x8_t __vec, const int __lane)
18471 {
18472 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18473 }
18474
18475 __extension__ extern __inline uint16x4_t
18476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_u16(const uint16_t * __src,uint16x4_t __vec,const int __lane)18477 vld1_lane_u16 (const uint16_t *__src, uint16x4_t __vec, const int __lane)
18478 {
18479 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18480 }
18481
18482 __extension__ extern __inline uint32x2_t
18483 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_u32(const uint32_t * __src,uint32x2_t __vec,const int __lane)18484 vld1_lane_u32 (const uint32_t *__src, uint32x2_t __vec, const int __lane)
18485 {
18486 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18487 }
18488
18489 __extension__ extern __inline uint64x1_t
18490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_u64(const uint64_t * __src,uint64x1_t __vec,const int __lane)18491 vld1_lane_u64 (const uint64_t *__src, uint64x1_t __vec, const int __lane)
18492 {
18493 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18494 }
18495
18496 /* vld1q_lane */
18497
18498 __extension__ extern __inline float16x8_t
18499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_f16(const float16_t * __src,float16x8_t __vec,const int __lane)18500 vld1q_lane_f16 (const float16_t *__src, float16x8_t __vec, const int __lane)
18501 {
18502 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18503 }
18504
18505 __extension__ extern __inline float32x4_t
18506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_f32(const float32_t * __src,float32x4_t __vec,const int __lane)18507 vld1q_lane_f32 (const float32_t *__src, float32x4_t __vec, const int __lane)
18508 {
18509 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18510 }
18511
18512 __extension__ extern __inline float64x2_t
18513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_f64(const float64_t * __src,float64x2_t __vec,const int __lane)18514 vld1q_lane_f64 (const float64_t *__src, float64x2_t __vec, const int __lane)
18515 {
18516 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18517 }
18518
18519 __extension__ extern __inline poly8x16_t
18520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_p8(const poly8_t * __src,poly8x16_t __vec,const int __lane)18521 vld1q_lane_p8 (const poly8_t *__src, poly8x16_t __vec, const int __lane)
18522 {
18523 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18524 }
18525
18526 __extension__ extern __inline poly16x8_t
18527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_p16(const poly16_t * __src,poly16x8_t __vec,const int __lane)18528 vld1q_lane_p16 (const poly16_t *__src, poly16x8_t __vec, const int __lane)
18529 {
18530 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18531 }
18532
18533 __extension__ extern __inline poly64x2_t
18534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_p64(const poly64_t * __src,poly64x2_t __vec,const int __lane)18535 vld1q_lane_p64 (const poly64_t *__src, poly64x2_t __vec, const int __lane)
18536 {
18537 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18538 }
18539
18540 __extension__ extern __inline int8x16_t
18541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_s8(const int8_t * __src,int8x16_t __vec,const int __lane)18542 vld1q_lane_s8 (const int8_t *__src, int8x16_t __vec, const int __lane)
18543 {
18544 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18545 }
18546
18547 __extension__ extern __inline int16x8_t
18548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_s16(const int16_t * __src,int16x8_t __vec,const int __lane)18549 vld1q_lane_s16 (const int16_t *__src, int16x8_t __vec, const int __lane)
18550 {
18551 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18552 }
18553
18554 __extension__ extern __inline int32x4_t
18555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_s32(const int32_t * __src,int32x4_t __vec,const int __lane)18556 vld1q_lane_s32 (const int32_t *__src, int32x4_t __vec, const int __lane)
18557 {
18558 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18559 }
18560
18561 __extension__ extern __inline int64x2_t
18562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_s64(const int64_t * __src,int64x2_t __vec,const int __lane)18563 vld1q_lane_s64 (const int64_t *__src, int64x2_t __vec, const int __lane)
18564 {
18565 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18566 }
18567
18568 __extension__ extern __inline uint8x16_t
18569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_u8(const uint8_t * __src,uint8x16_t __vec,const int __lane)18570 vld1q_lane_u8 (const uint8_t *__src, uint8x16_t __vec, const int __lane)
18571 {
18572 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18573 }
18574
18575 __extension__ extern __inline uint16x8_t
18576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_u16(const uint16_t * __src,uint16x8_t __vec,const int __lane)18577 vld1q_lane_u16 (const uint16_t *__src, uint16x8_t __vec, const int __lane)
18578 {
18579 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18580 }
18581
18582 __extension__ extern __inline uint32x4_t
18583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_u32(const uint32_t * __src,uint32x4_t __vec,const int __lane)18584 vld1q_lane_u32 (const uint32_t *__src, uint32x4_t __vec, const int __lane)
18585 {
18586 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18587 }
18588
18589 __extension__ extern __inline uint64x2_t
18590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_u64(const uint64_t * __src,uint64x2_t __vec,const int __lane)18591 vld1q_lane_u64 (const uint64_t *__src, uint64x2_t __vec, const int __lane)
18592 {
18593 return __aarch64_vset_lane_any (*__src, __vec, __lane);
18594 }
18595
18596 /* vldn */
18597
18598 __extension__ extern __inline int64x1x2_t
18599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_s64(const int64_t * __a)18600 vld2_s64 (const int64_t * __a)
18601 {
18602 int64x1x2_t ret;
18603 __builtin_aarch64_simd_oi __o;
18604 __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18605 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
18606 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
18607 return ret;
18608 }
18609
18610 __extension__ extern __inline uint64x1x2_t
18611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_u64(const uint64_t * __a)18612 vld2_u64 (const uint64_t * __a)
18613 {
18614 uint64x1x2_t ret;
18615 __builtin_aarch64_simd_oi __o;
18616 __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18617 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
18618 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
18619 return ret;
18620 }
18621
18622 __extension__ extern __inline float64x1x2_t
18623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_f64(const float64_t * __a)18624 vld2_f64 (const float64_t * __a)
18625 {
18626 float64x1x2_t ret;
18627 __builtin_aarch64_simd_oi __o;
18628 __o = __builtin_aarch64_ld2df ((const __builtin_aarch64_simd_df *) __a);
18629 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
18630 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
18631 return ret;
18632 }
18633
18634 __extension__ extern __inline int8x8x2_t
18635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_s8(const int8_t * __a)18636 vld2_s8 (const int8_t * __a)
18637 {
18638 int8x8x2_t ret;
18639 __builtin_aarch64_simd_oi __o;
18640 __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18641 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18642 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18643 return ret;
18644 }
18645
18646 __extension__ extern __inline poly8x8x2_t
18647 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_p8(const poly8_t * __a)18648 vld2_p8 (const poly8_t * __a)
18649 {
18650 poly8x8x2_t ret;
18651 __builtin_aarch64_simd_oi __o;
18652 __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18653 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18654 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18655 return ret;
18656 }
18657
18658 __extension__ extern __inline poly64x1x2_t
18659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_p64(const poly64_t * __a)18660 vld2_p64 (const poly64_t * __a)
18661 {
18662 poly64x1x2_t ret;
18663 __builtin_aarch64_simd_oi __o;
18664 __o = __builtin_aarch64_ld2di ((const __builtin_aarch64_simd_di *) __a);
18665 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 0);
18666 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 1);
18667 return ret;
18668 }
18669
18670 __extension__ extern __inline int16x4x2_t
18671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_s16(const int16_t * __a)18672 vld2_s16 (const int16_t * __a)
18673 {
18674 int16x4x2_t ret;
18675 __builtin_aarch64_simd_oi __o;
18676 __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18677 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18678 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18679 return ret;
18680 }
18681
18682 __extension__ extern __inline poly16x4x2_t
18683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_p16(const poly16_t * __a)18684 vld2_p16 (const poly16_t * __a)
18685 {
18686 poly16x4x2_t ret;
18687 __builtin_aarch64_simd_oi __o;
18688 __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18689 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18690 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18691 return ret;
18692 }
18693
18694 __extension__ extern __inline int32x2x2_t
18695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_s32(const int32_t * __a)18696 vld2_s32 (const int32_t * __a)
18697 {
18698 int32x2x2_t ret;
18699 __builtin_aarch64_simd_oi __o;
18700 __o = __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
18701 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
18702 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
18703 return ret;
18704 }
18705
18706 __extension__ extern __inline uint8x8x2_t
18707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_u8(const uint8_t * __a)18708 vld2_u8 (const uint8_t * __a)
18709 {
18710 uint8x8x2_t ret;
18711 __builtin_aarch64_simd_oi __o;
18712 __o = __builtin_aarch64_ld2v8qi ((const __builtin_aarch64_simd_qi *) __a);
18713 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
18714 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
18715 return ret;
18716 }
18717
18718 __extension__ extern __inline uint16x4x2_t
18719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_u16(const uint16_t * __a)18720 vld2_u16 (const uint16_t * __a)
18721 {
18722 uint16x4x2_t ret;
18723 __builtin_aarch64_simd_oi __o;
18724 __o = __builtin_aarch64_ld2v4hi ((const __builtin_aarch64_simd_hi *) __a);
18725 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
18726 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
18727 return ret;
18728 }
18729
18730 __extension__ extern __inline uint32x2x2_t
18731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_u32(const uint32_t * __a)18732 vld2_u32 (const uint32_t * __a)
18733 {
18734 uint32x2x2_t ret;
18735 __builtin_aarch64_simd_oi __o;
18736 __o = __builtin_aarch64_ld2v2si ((const __builtin_aarch64_simd_si *) __a);
18737 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
18738 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
18739 return ret;
18740 }
18741
18742 __extension__ extern __inline float16x4x2_t
18743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_f16(const float16_t * __a)18744 vld2_f16 (const float16_t * __a)
18745 {
18746 float16x4x2_t ret;
18747 __builtin_aarch64_simd_oi __o;
18748 __o = __builtin_aarch64_ld2v4hf (__a);
18749 ret.val[0] = __builtin_aarch64_get_dregoiv4hf (__o, 0);
18750 ret.val[1] = __builtin_aarch64_get_dregoiv4hf (__o, 1);
18751 return ret;
18752 }
18753
18754 __extension__ extern __inline float32x2x2_t
18755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_f32(const float32_t * __a)18756 vld2_f32 (const float32_t * __a)
18757 {
18758 float32x2x2_t ret;
18759 __builtin_aarch64_simd_oi __o;
18760 __o = __builtin_aarch64_ld2v2sf ((const __builtin_aarch64_simd_sf *) __a);
18761 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
18762 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
18763 return ret;
18764 }
18765
18766 __extension__ extern __inline int8x16x2_t
18767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_s8(const int8_t * __a)18768 vld2q_s8 (const int8_t * __a)
18769 {
18770 int8x16x2_t ret;
18771 __builtin_aarch64_simd_oi __o;
18772 __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18773 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18774 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18775 return ret;
18776 }
18777
18778 __extension__ extern __inline poly8x16x2_t
18779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_p8(const poly8_t * __a)18780 vld2q_p8 (const poly8_t * __a)
18781 {
18782 poly8x16x2_t ret;
18783 __builtin_aarch64_simd_oi __o;
18784 __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18785 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18786 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18787 return ret;
18788 }
18789
18790 __extension__ extern __inline int16x8x2_t
18791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_s16(const int16_t * __a)18792 vld2q_s16 (const int16_t * __a)
18793 {
18794 int16x8x2_t ret;
18795 __builtin_aarch64_simd_oi __o;
18796 __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18797 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18798 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18799 return ret;
18800 }
18801
18802 __extension__ extern __inline poly16x8x2_t
18803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_p16(const poly16_t * __a)18804 vld2q_p16 (const poly16_t * __a)
18805 {
18806 poly16x8x2_t ret;
18807 __builtin_aarch64_simd_oi __o;
18808 __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18809 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18810 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18811 return ret;
18812 }
18813
18814 __extension__ extern __inline poly64x2x2_t
18815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_p64(const poly64_t * __a)18816 vld2q_p64 (const poly64_t * __a)
18817 {
18818 poly64x2x2_t ret;
18819 __builtin_aarch64_simd_oi __o;
18820 __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18821 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 0);
18822 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 1);
18823 return ret;
18824 }
18825
18826 __extension__ extern __inline int32x4x2_t
18827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_s32(const int32_t * __a)18828 vld2q_s32 (const int32_t * __a)
18829 {
18830 int32x4x2_t ret;
18831 __builtin_aarch64_simd_oi __o;
18832 __o = __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
18833 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
18834 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
18835 return ret;
18836 }
18837
18838 __extension__ extern __inline int64x2x2_t
18839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_s64(const int64_t * __a)18840 vld2q_s64 (const int64_t * __a)
18841 {
18842 int64x2x2_t ret;
18843 __builtin_aarch64_simd_oi __o;
18844 __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18845 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
18846 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
18847 return ret;
18848 }
18849
18850 __extension__ extern __inline uint8x16x2_t
18851 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_u8(const uint8_t * __a)18852 vld2q_u8 (const uint8_t * __a)
18853 {
18854 uint8x16x2_t ret;
18855 __builtin_aarch64_simd_oi __o;
18856 __o = __builtin_aarch64_ld2v16qi ((const __builtin_aarch64_simd_qi *) __a);
18857 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
18858 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
18859 return ret;
18860 }
18861
18862 __extension__ extern __inline uint16x8x2_t
18863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_u16(const uint16_t * __a)18864 vld2q_u16 (const uint16_t * __a)
18865 {
18866 uint16x8x2_t ret;
18867 __builtin_aarch64_simd_oi __o;
18868 __o = __builtin_aarch64_ld2v8hi ((const __builtin_aarch64_simd_hi *) __a);
18869 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
18870 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
18871 return ret;
18872 }
18873
18874 __extension__ extern __inline uint32x4x2_t
18875 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_u32(const uint32_t * __a)18876 vld2q_u32 (const uint32_t * __a)
18877 {
18878 uint32x4x2_t ret;
18879 __builtin_aarch64_simd_oi __o;
18880 __o = __builtin_aarch64_ld2v4si ((const __builtin_aarch64_simd_si *) __a);
18881 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
18882 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
18883 return ret;
18884 }
18885
18886 __extension__ extern __inline uint64x2x2_t
18887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_u64(const uint64_t * __a)18888 vld2q_u64 (const uint64_t * __a)
18889 {
18890 uint64x2x2_t ret;
18891 __builtin_aarch64_simd_oi __o;
18892 __o = __builtin_aarch64_ld2v2di ((const __builtin_aarch64_simd_di *) __a);
18893 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
18894 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
18895 return ret;
18896 }
18897
18898 __extension__ extern __inline float16x8x2_t
18899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_f16(const float16_t * __a)18900 vld2q_f16 (const float16_t * __a)
18901 {
18902 float16x8x2_t ret;
18903 __builtin_aarch64_simd_oi __o;
18904 __o = __builtin_aarch64_ld2v8hf (__a);
18905 ret.val[0] = __builtin_aarch64_get_qregoiv8hf (__o, 0);
18906 ret.val[1] = __builtin_aarch64_get_qregoiv8hf (__o, 1);
18907 return ret;
18908 }
18909
18910 __extension__ extern __inline float32x4x2_t
18911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_f32(const float32_t * __a)18912 vld2q_f32 (const float32_t * __a)
18913 {
18914 float32x4x2_t ret;
18915 __builtin_aarch64_simd_oi __o;
18916 __o = __builtin_aarch64_ld2v4sf ((const __builtin_aarch64_simd_sf *) __a);
18917 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
18918 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
18919 return ret;
18920 }
18921
18922 __extension__ extern __inline float64x2x2_t
18923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_f64(const float64_t * __a)18924 vld2q_f64 (const float64_t * __a)
18925 {
18926 float64x2x2_t ret;
18927 __builtin_aarch64_simd_oi __o;
18928 __o = __builtin_aarch64_ld2v2df ((const __builtin_aarch64_simd_df *) __a);
18929 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
18930 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
18931 return ret;
18932 }
18933
18934 __extension__ extern __inline int64x1x3_t
18935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_s64(const int64_t * __a)18936 vld3_s64 (const int64_t * __a)
18937 {
18938 int64x1x3_t ret;
18939 __builtin_aarch64_simd_ci __o;
18940 __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
18941 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
18942 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
18943 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
18944 return ret;
18945 }
18946
18947 __extension__ extern __inline uint64x1x3_t
18948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_u64(const uint64_t * __a)18949 vld3_u64 (const uint64_t * __a)
18950 {
18951 uint64x1x3_t ret;
18952 __builtin_aarch64_simd_ci __o;
18953 __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
18954 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
18955 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
18956 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
18957 return ret;
18958 }
18959
18960 __extension__ extern __inline float64x1x3_t
18961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_f64(const float64_t * __a)18962 vld3_f64 (const float64_t * __a)
18963 {
18964 float64x1x3_t ret;
18965 __builtin_aarch64_simd_ci __o;
18966 __o = __builtin_aarch64_ld3df ((const __builtin_aarch64_simd_df *) __a);
18967 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 0)};
18968 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 1)};
18969 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 2)};
18970 return ret;
18971 }
18972
18973 __extension__ extern __inline int8x8x3_t
18974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_s8(const int8_t * __a)18975 vld3_s8 (const int8_t * __a)
18976 {
18977 int8x8x3_t ret;
18978 __builtin_aarch64_simd_ci __o;
18979 __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
18980 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18981 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18982 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18983 return ret;
18984 }
18985
18986 __extension__ extern __inline poly8x8x3_t
18987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_p8(const poly8_t * __a)18988 vld3_p8 (const poly8_t * __a)
18989 {
18990 poly8x8x3_t ret;
18991 __builtin_aarch64_simd_ci __o;
18992 __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
18993 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
18994 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
18995 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
18996 return ret;
18997 }
18998
18999 __extension__ extern __inline int16x4x3_t
19000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_s16(const int16_t * __a)19001 vld3_s16 (const int16_t * __a)
19002 {
19003 int16x4x3_t ret;
19004 __builtin_aarch64_simd_ci __o;
19005 __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
19006 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19007 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19008 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19009 return ret;
19010 }
19011
19012 __extension__ extern __inline poly16x4x3_t
19013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_p16(const poly16_t * __a)19014 vld3_p16 (const poly16_t * __a)
19015 {
19016 poly16x4x3_t ret;
19017 __builtin_aarch64_simd_ci __o;
19018 __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
19019 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19020 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19021 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19022 return ret;
19023 }
19024
19025 __extension__ extern __inline int32x2x3_t
19026 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_s32(const int32_t * __a)19027 vld3_s32 (const int32_t * __a)
19028 {
19029 int32x2x3_t ret;
19030 __builtin_aarch64_simd_ci __o;
19031 __o = __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
19032 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
19033 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
19034 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
19035 return ret;
19036 }
19037
19038 __extension__ extern __inline uint8x8x3_t
19039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_u8(const uint8_t * __a)19040 vld3_u8 (const uint8_t * __a)
19041 {
19042 uint8x8x3_t ret;
19043 __builtin_aarch64_simd_ci __o;
19044 __o = __builtin_aarch64_ld3v8qi ((const __builtin_aarch64_simd_qi *) __a);
19045 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
19046 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
19047 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
19048 return ret;
19049 }
19050
19051 __extension__ extern __inline uint16x4x3_t
19052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_u16(const uint16_t * __a)19053 vld3_u16 (const uint16_t * __a)
19054 {
19055 uint16x4x3_t ret;
19056 __builtin_aarch64_simd_ci __o;
19057 __o = __builtin_aarch64_ld3v4hi ((const __builtin_aarch64_simd_hi *) __a);
19058 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
19059 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
19060 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
19061 return ret;
19062 }
19063
19064 __extension__ extern __inline uint32x2x3_t
19065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_u32(const uint32_t * __a)19066 vld3_u32 (const uint32_t * __a)
19067 {
19068 uint32x2x3_t ret;
19069 __builtin_aarch64_simd_ci __o;
19070 __o = __builtin_aarch64_ld3v2si ((const __builtin_aarch64_simd_si *) __a);
19071 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
19072 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
19073 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
19074 return ret;
19075 }
19076
19077 __extension__ extern __inline float16x4x3_t
19078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_f16(const float16_t * __a)19079 vld3_f16 (const float16_t * __a)
19080 {
19081 float16x4x3_t ret;
19082 __builtin_aarch64_simd_ci __o;
19083 __o = __builtin_aarch64_ld3v4hf (__a);
19084 ret.val[0] = __builtin_aarch64_get_dregciv4hf (__o, 0);
19085 ret.val[1] = __builtin_aarch64_get_dregciv4hf (__o, 1);
19086 ret.val[2] = __builtin_aarch64_get_dregciv4hf (__o, 2);
19087 return ret;
19088 }
19089
19090 __extension__ extern __inline float32x2x3_t
19091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_f32(const float32_t * __a)19092 vld3_f32 (const float32_t * __a)
19093 {
19094 float32x2x3_t ret;
19095 __builtin_aarch64_simd_ci __o;
19096 __o = __builtin_aarch64_ld3v2sf ((const __builtin_aarch64_simd_sf *) __a);
19097 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
19098 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
19099 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
19100 return ret;
19101 }
19102
19103 __extension__ extern __inline poly64x1x3_t
19104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_p64(const poly64_t * __a)19105 vld3_p64 (const poly64_t * __a)
19106 {
19107 poly64x1x3_t ret;
19108 __builtin_aarch64_simd_ci __o;
19109 __o = __builtin_aarch64_ld3di ((const __builtin_aarch64_simd_di *) __a);
19110 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 0);
19111 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 1);
19112 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 2);
19113 return ret;
19114 }
19115
19116 __extension__ extern __inline int8x16x3_t
19117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_s8(const int8_t * __a)19118 vld3q_s8 (const int8_t * __a)
19119 {
19120 int8x16x3_t ret;
19121 __builtin_aarch64_simd_ci __o;
19122 __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
19123 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19124 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19125 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19126 return ret;
19127 }
19128
19129 __extension__ extern __inline poly8x16x3_t
19130 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_p8(const poly8_t * __a)19131 vld3q_p8 (const poly8_t * __a)
19132 {
19133 poly8x16x3_t ret;
19134 __builtin_aarch64_simd_ci __o;
19135 __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
19136 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19137 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19138 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19139 return ret;
19140 }
19141
19142 __extension__ extern __inline int16x8x3_t
19143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_s16(const int16_t * __a)19144 vld3q_s16 (const int16_t * __a)
19145 {
19146 int16x8x3_t ret;
19147 __builtin_aarch64_simd_ci __o;
19148 __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
19149 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19150 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19151 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19152 return ret;
19153 }
19154
19155 __extension__ extern __inline poly16x8x3_t
19156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_p16(const poly16_t * __a)19157 vld3q_p16 (const poly16_t * __a)
19158 {
19159 poly16x8x3_t ret;
19160 __builtin_aarch64_simd_ci __o;
19161 __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
19162 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19163 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19164 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19165 return ret;
19166 }
19167
19168 __extension__ extern __inline int32x4x3_t
19169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_s32(const int32_t * __a)19170 vld3q_s32 (const int32_t * __a)
19171 {
19172 int32x4x3_t ret;
19173 __builtin_aarch64_simd_ci __o;
19174 __o = __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
19175 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
19176 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
19177 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
19178 return ret;
19179 }
19180
19181 __extension__ extern __inline int64x2x3_t
19182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_s64(const int64_t * __a)19183 vld3q_s64 (const int64_t * __a)
19184 {
19185 int64x2x3_t ret;
19186 __builtin_aarch64_simd_ci __o;
19187 __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
19188 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
19189 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
19190 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
19191 return ret;
19192 }
19193
19194 __extension__ extern __inline uint8x16x3_t
19195 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_u8(const uint8_t * __a)19196 vld3q_u8 (const uint8_t * __a)
19197 {
19198 uint8x16x3_t ret;
19199 __builtin_aarch64_simd_ci __o;
19200 __o = __builtin_aarch64_ld3v16qi ((const __builtin_aarch64_simd_qi *) __a);
19201 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
19202 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
19203 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
19204 return ret;
19205 }
19206
19207 __extension__ extern __inline uint16x8x3_t
19208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_u16(const uint16_t * __a)19209 vld3q_u16 (const uint16_t * __a)
19210 {
19211 uint16x8x3_t ret;
19212 __builtin_aarch64_simd_ci __o;
19213 __o = __builtin_aarch64_ld3v8hi ((const __builtin_aarch64_simd_hi *) __a);
19214 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
19215 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
19216 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
19217 return ret;
19218 }
19219
19220 __extension__ extern __inline uint32x4x3_t
19221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_u32(const uint32_t * __a)19222 vld3q_u32 (const uint32_t * __a)
19223 {
19224 uint32x4x3_t ret;
19225 __builtin_aarch64_simd_ci __o;
19226 __o = __builtin_aarch64_ld3v4si ((const __builtin_aarch64_simd_si *) __a);
19227 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
19228 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
19229 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
19230 return ret;
19231 }
19232
19233 __extension__ extern __inline uint64x2x3_t
19234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_u64(const uint64_t * __a)19235 vld3q_u64 (const uint64_t * __a)
19236 {
19237 uint64x2x3_t ret;
19238 __builtin_aarch64_simd_ci __o;
19239 __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
19240 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
19241 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
19242 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
19243 return ret;
19244 }
19245
19246 __extension__ extern __inline float16x8x3_t
19247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_f16(const float16_t * __a)19248 vld3q_f16 (const float16_t * __a)
19249 {
19250 float16x8x3_t ret;
19251 __builtin_aarch64_simd_ci __o;
19252 __o = __builtin_aarch64_ld3v8hf (__a);
19253 ret.val[0] = __builtin_aarch64_get_qregciv8hf (__o, 0);
19254 ret.val[1] = __builtin_aarch64_get_qregciv8hf (__o, 1);
19255 ret.val[2] = __builtin_aarch64_get_qregciv8hf (__o, 2);
19256 return ret;
19257 }
19258
19259 __extension__ extern __inline float32x4x3_t
19260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_f32(const float32_t * __a)19261 vld3q_f32 (const float32_t * __a)
19262 {
19263 float32x4x3_t ret;
19264 __builtin_aarch64_simd_ci __o;
19265 __o = __builtin_aarch64_ld3v4sf ((const __builtin_aarch64_simd_sf *) __a);
19266 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
19267 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
19268 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
19269 return ret;
19270 }
19271
19272 __extension__ extern __inline float64x2x3_t
19273 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_f64(const float64_t * __a)19274 vld3q_f64 (const float64_t * __a)
19275 {
19276 float64x2x3_t ret;
19277 __builtin_aarch64_simd_ci __o;
19278 __o = __builtin_aarch64_ld3v2df ((const __builtin_aarch64_simd_df *) __a);
19279 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
19280 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
19281 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
19282 return ret;
19283 }
19284
19285 __extension__ extern __inline poly64x2x3_t
19286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_p64(const poly64_t * __a)19287 vld3q_p64 (const poly64_t * __a)
19288 {
19289 poly64x2x3_t ret;
19290 __builtin_aarch64_simd_ci __o;
19291 __o = __builtin_aarch64_ld3v2di ((const __builtin_aarch64_simd_di *) __a);
19292 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 0);
19293 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 1);
19294 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 2);
19295 return ret;
19296 }
19297
19298 __extension__ extern __inline int64x1x4_t
19299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_s64(const int64_t * __a)19300 vld4_s64 (const int64_t * __a)
19301 {
19302 int64x1x4_t ret;
19303 __builtin_aarch64_simd_xi __o;
19304 __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
19305 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
19306 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
19307 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
19308 ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
19309 return ret;
19310 }
19311
19312 __extension__ extern __inline uint64x1x4_t
19313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_u64(const uint64_t * __a)19314 vld4_u64 (const uint64_t * __a)
19315 {
19316 uint64x1x4_t ret;
19317 __builtin_aarch64_simd_xi __o;
19318 __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
19319 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
19320 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
19321 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
19322 ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
19323 return ret;
19324 }
19325
19326 __extension__ extern __inline float64x1x4_t
19327 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_f64(const float64_t * __a)19328 vld4_f64 (const float64_t * __a)
19329 {
19330 float64x1x4_t ret;
19331 __builtin_aarch64_simd_xi __o;
19332 __o = __builtin_aarch64_ld4df ((const __builtin_aarch64_simd_df *) __a);
19333 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)};
19334 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)};
19335 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)};
19336 ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)};
19337 return ret;
19338 }
19339
19340 __extension__ extern __inline int8x8x4_t
19341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_s8(const int8_t * __a)19342 vld4_s8 (const int8_t * __a)
19343 {
19344 int8x8x4_t ret;
19345 __builtin_aarch64_simd_xi __o;
19346 __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
19347 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19348 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19349 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19350 ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19351 return ret;
19352 }
19353
19354 __extension__ extern __inline poly8x8x4_t
19355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_p8(const poly8_t * __a)19356 vld4_p8 (const poly8_t * __a)
19357 {
19358 poly8x8x4_t ret;
19359 __builtin_aarch64_simd_xi __o;
19360 __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
19361 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19362 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19363 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19364 ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19365 return ret;
19366 }
19367
19368 __extension__ extern __inline int16x4x4_t
19369 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_s16(const int16_t * __a)19370 vld4_s16 (const int16_t * __a)
19371 {
19372 int16x4x4_t ret;
19373 __builtin_aarch64_simd_xi __o;
19374 __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
19375 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19376 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19377 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19378 ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19379 return ret;
19380 }
19381
19382 __extension__ extern __inline poly16x4x4_t
19383 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_p16(const poly16_t * __a)19384 vld4_p16 (const poly16_t * __a)
19385 {
19386 poly16x4x4_t ret;
19387 __builtin_aarch64_simd_xi __o;
19388 __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
19389 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19390 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19391 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19392 ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19393 return ret;
19394 }
19395
19396 __extension__ extern __inline int32x2x4_t
19397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_s32(const int32_t * __a)19398 vld4_s32 (const int32_t * __a)
19399 {
19400 int32x2x4_t ret;
19401 __builtin_aarch64_simd_xi __o;
19402 __o = __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
19403 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
19404 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
19405 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
19406 ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
19407 return ret;
19408 }
19409
19410 __extension__ extern __inline uint8x8x4_t
19411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_u8(const uint8_t * __a)19412 vld4_u8 (const uint8_t * __a)
19413 {
19414 uint8x8x4_t ret;
19415 __builtin_aarch64_simd_xi __o;
19416 __o = __builtin_aarch64_ld4v8qi ((const __builtin_aarch64_simd_qi *) __a);
19417 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
19418 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
19419 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
19420 ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
19421 return ret;
19422 }
19423
19424 __extension__ extern __inline uint16x4x4_t
19425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_u16(const uint16_t * __a)19426 vld4_u16 (const uint16_t * __a)
19427 {
19428 uint16x4x4_t ret;
19429 __builtin_aarch64_simd_xi __o;
19430 __o = __builtin_aarch64_ld4v4hi ((const __builtin_aarch64_simd_hi *) __a);
19431 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
19432 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
19433 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
19434 ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
19435 return ret;
19436 }
19437
19438 __extension__ extern __inline uint32x2x4_t
19439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_u32(const uint32_t * __a)19440 vld4_u32 (const uint32_t * __a)
19441 {
19442 uint32x2x4_t ret;
19443 __builtin_aarch64_simd_xi __o;
19444 __o = __builtin_aarch64_ld4v2si ((const __builtin_aarch64_simd_si *) __a);
19445 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
19446 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
19447 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
19448 ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
19449 return ret;
19450 }
19451
19452 __extension__ extern __inline float16x4x4_t
19453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_f16(const float16_t * __a)19454 vld4_f16 (const float16_t * __a)
19455 {
19456 float16x4x4_t ret;
19457 __builtin_aarch64_simd_xi __o;
19458 __o = __builtin_aarch64_ld4v4hf (__a);
19459 ret.val[0] = __builtin_aarch64_get_dregxiv4hf (__o, 0);
19460 ret.val[1] = __builtin_aarch64_get_dregxiv4hf (__o, 1);
19461 ret.val[2] = __builtin_aarch64_get_dregxiv4hf (__o, 2);
19462 ret.val[3] = __builtin_aarch64_get_dregxiv4hf (__o, 3);
19463 return ret;
19464 }
19465
19466 __extension__ extern __inline float32x2x4_t
19467 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_f32(const float32_t * __a)19468 vld4_f32 (const float32_t * __a)
19469 {
19470 float32x2x4_t ret;
19471 __builtin_aarch64_simd_xi __o;
19472 __o = __builtin_aarch64_ld4v2sf ((const __builtin_aarch64_simd_sf *) __a);
19473 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0);
19474 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1);
19475 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2);
19476 ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3);
19477 return ret;
19478 }
19479
19480 __extension__ extern __inline poly64x1x4_t
19481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_p64(const poly64_t * __a)19482 vld4_p64 (const poly64_t * __a)
19483 {
19484 poly64x1x4_t ret;
19485 __builtin_aarch64_simd_xi __o;
19486 __o = __builtin_aarch64_ld4di ((const __builtin_aarch64_simd_di *) __a);
19487 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0);
19488 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1);
19489 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2);
19490 ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3);
19491 return ret;
19492 }
19493
19494 __extension__ extern __inline int8x16x4_t
19495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_s8(const int8_t * __a)19496 vld4q_s8 (const int8_t * __a)
19497 {
19498 int8x16x4_t ret;
19499 __builtin_aarch64_simd_xi __o;
19500 __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
19501 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19502 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19503 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19504 ret.val[3] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19505 return ret;
19506 }
19507
19508 __extension__ extern __inline poly8x16x4_t
19509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_p8(const poly8_t * __a)19510 vld4q_p8 (const poly8_t * __a)
19511 {
19512 poly8x16x4_t ret;
19513 __builtin_aarch64_simd_xi __o;
19514 __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
19515 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19516 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19517 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19518 ret.val[3] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19519 return ret;
19520 }
19521
19522 __extension__ extern __inline int16x8x4_t
19523 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_s16(const int16_t * __a)19524 vld4q_s16 (const int16_t * __a)
19525 {
19526 int16x8x4_t ret;
19527 __builtin_aarch64_simd_xi __o;
19528 __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
19529 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19530 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19531 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19532 ret.val[3] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19533 return ret;
19534 }
19535
19536 __extension__ extern __inline poly16x8x4_t
19537 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_p16(const poly16_t * __a)19538 vld4q_p16 (const poly16_t * __a)
19539 {
19540 poly16x8x4_t ret;
19541 __builtin_aarch64_simd_xi __o;
19542 __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
19543 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19544 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19545 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19546 ret.val[3] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19547 return ret;
19548 }
19549
19550 __extension__ extern __inline int32x4x4_t
19551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_s32(const int32_t * __a)19552 vld4q_s32 (const int32_t * __a)
19553 {
19554 int32x4x4_t ret;
19555 __builtin_aarch64_simd_xi __o;
19556 __o = __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
19557 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
19558 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
19559 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
19560 ret.val[3] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
19561 return ret;
19562 }
19563
19564 __extension__ extern __inline int64x2x4_t
19565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_s64(const int64_t * __a)19566 vld4q_s64 (const int64_t * __a)
19567 {
19568 int64x2x4_t ret;
19569 __builtin_aarch64_simd_xi __o;
19570 __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
19571 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
19572 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
19573 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
19574 ret.val[3] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
19575 return ret;
19576 }
19577
19578 __extension__ extern __inline uint8x16x4_t
19579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_u8(const uint8_t * __a)19580 vld4q_u8 (const uint8_t * __a)
19581 {
19582 uint8x16x4_t ret;
19583 __builtin_aarch64_simd_xi __o;
19584 __o = __builtin_aarch64_ld4v16qi ((const __builtin_aarch64_simd_qi *) __a);
19585 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
19586 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
19587 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
19588 ret.val[3] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
19589 return ret;
19590 }
19591
19592 __extension__ extern __inline uint16x8x4_t
19593 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_u16(const uint16_t * __a)19594 vld4q_u16 (const uint16_t * __a)
19595 {
19596 uint16x8x4_t ret;
19597 __builtin_aarch64_simd_xi __o;
19598 __o = __builtin_aarch64_ld4v8hi ((const __builtin_aarch64_simd_hi *) __a);
19599 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
19600 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
19601 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
19602 ret.val[3] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
19603 return ret;
19604 }
19605
19606 __extension__ extern __inline uint32x4x4_t
19607 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_u32(const uint32_t * __a)19608 vld4q_u32 (const uint32_t * __a)
19609 {
19610 uint32x4x4_t ret;
19611 __builtin_aarch64_simd_xi __o;
19612 __o = __builtin_aarch64_ld4v4si ((const __builtin_aarch64_simd_si *) __a);
19613 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
19614 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
19615 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
19616 ret.val[3] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
19617 return ret;
19618 }
19619
19620 __extension__ extern __inline uint64x2x4_t
19621 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_u64(const uint64_t * __a)19622 vld4q_u64 (const uint64_t * __a)
19623 {
19624 uint64x2x4_t ret;
19625 __builtin_aarch64_simd_xi __o;
19626 __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
19627 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
19628 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
19629 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
19630 ret.val[3] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
19631 return ret;
19632 }
19633
19634 __extension__ extern __inline float16x8x4_t
19635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_f16(const float16_t * __a)19636 vld4q_f16 (const float16_t * __a)
19637 {
19638 float16x8x4_t ret;
19639 __builtin_aarch64_simd_xi __o;
19640 __o = __builtin_aarch64_ld4v8hf (__a);
19641 ret.val[0] = __builtin_aarch64_get_qregxiv8hf (__o, 0);
19642 ret.val[1] = __builtin_aarch64_get_qregxiv8hf (__o, 1);
19643 ret.val[2] = __builtin_aarch64_get_qregxiv8hf (__o, 2);
19644 ret.val[3] = __builtin_aarch64_get_qregxiv8hf (__o, 3);
19645 return ret;
19646 }
19647
19648 __extension__ extern __inline float32x4x4_t
19649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_f32(const float32_t * __a)19650 vld4q_f32 (const float32_t * __a)
19651 {
19652 float32x4x4_t ret;
19653 __builtin_aarch64_simd_xi __o;
19654 __o = __builtin_aarch64_ld4v4sf ((const __builtin_aarch64_simd_sf *) __a);
19655 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 0);
19656 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 1);
19657 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 2);
19658 ret.val[3] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 3);
19659 return ret;
19660 }
19661
19662 __extension__ extern __inline float64x2x4_t
19663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_f64(const float64_t * __a)19664 vld4q_f64 (const float64_t * __a)
19665 {
19666 float64x2x4_t ret;
19667 __builtin_aarch64_simd_xi __o;
19668 __o = __builtin_aarch64_ld4v2df ((const __builtin_aarch64_simd_df *) __a);
19669 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 0);
19670 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 1);
19671 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 2);
19672 ret.val[3] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 3);
19673 return ret;
19674 }
19675
19676 __extension__ extern __inline poly64x2x4_t
19677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_p64(const poly64_t * __a)19678 vld4q_p64 (const poly64_t * __a)
19679 {
19680 poly64x2x4_t ret;
19681 __builtin_aarch64_simd_xi __o;
19682 __o = __builtin_aarch64_ld4v2di ((const __builtin_aarch64_simd_di *) __a);
19683 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 0);
19684 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 1);
19685 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 2);
19686 ret.val[3] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 3);
19687 return ret;
19688 }
19689
19690 __extension__ extern __inline poly128_t
19691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vldrq_p128(const poly128_t * __ptr)19692 vldrq_p128 (const poly128_t * __ptr)
19693 {
19694 return *__ptr;
19695 }
19696
19697 /* vldn_dup */
19698
19699 __extension__ extern __inline int8x8x2_t
19700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_s8(const int8_t * __a)19701 vld2_dup_s8 (const int8_t * __a)
19702 {
19703 int8x8x2_t ret;
19704 __builtin_aarch64_simd_oi __o;
19705 __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19706 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19707 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19708 return ret;
19709 }
19710
19711 __extension__ extern __inline int16x4x2_t
19712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_s16(const int16_t * __a)19713 vld2_dup_s16 (const int16_t * __a)
19714 {
19715 int16x4x2_t ret;
19716 __builtin_aarch64_simd_oi __o;
19717 __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19718 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19719 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19720 return ret;
19721 }
19722
19723 __extension__ extern __inline int32x2x2_t
19724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_s32(const int32_t * __a)19725 vld2_dup_s32 (const int32_t * __a)
19726 {
19727 int32x2x2_t ret;
19728 __builtin_aarch64_simd_oi __o;
19729 __o = __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
19730 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
19731 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
19732 return ret;
19733 }
19734
19735 __extension__ extern __inline float16x4x2_t
19736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_f16(const float16_t * __a)19737 vld2_dup_f16 (const float16_t * __a)
19738 {
19739 float16x4x2_t ret;
19740 __builtin_aarch64_simd_oi __o;
19741 __o = __builtin_aarch64_ld2rv4hf ((const __builtin_aarch64_simd_hf *) __a);
19742 ret.val[0] = __builtin_aarch64_get_dregoiv4hf (__o, 0);
19743 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 1);
19744 return ret;
19745 }
19746
19747 __extension__ extern __inline float32x2x2_t
19748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_f32(const float32_t * __a)19749 vld2_dup_f32 (const float32_t * __a)
19750 {
19751 float32x2x2_t ret;
19752 __builtin_aarch64_simd_oi __o;
19753 __o = __builtin_aarch64_ld2rv2sf ((const __builtin_aarch64_simd_sf *) __a);
19754 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
19755 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
19756 return ret;
19757 }
19758
19759 __extension__ extern __inline float64x1x2_t
19760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_f64(const float64_t * __a)19761 vld2_dup_f64 (const float64_t * __a)
19762 {
19763 float64x1x2_t ret;
19764 __builtin_aarch64_simd_oi __o;
19765 __o = __builtin_aarch64_ld2rdf ((const __builtin_aarch64_simd_df *) __a);
19766 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
19767 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
19768 return ret;
19769 }
19770
19771 __extension__ extern __inline uint8x8x2_t
19772 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_u8(const uint8_t * __a)19773 vld2_dup_u8 (const uint8_t * __a)
19774 {
19775 uint8x8x2_t ret;
19776 __builtin_aarch64_simd_oi __o;
19777 __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19778 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19779 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19780 return ret;
19781 }
19782
19783 __extension__ extern __inline uint16x4x2_t
19784 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_u16(const uint16_t * __a)19785 vld2_dup_u16 (const uint16_t * __a)
19786 {
19787 uint16x4x2_t ret;
19788 __builtin_aarch64_simd_oi __o;
19789 __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19790 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19791 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19792 return ret;
19793 }
19794
19795 __extension__ extern __inline uint32x2x2_t
19796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_u32(const uint32_t * __a)19797 vld2_dup_u32 (const uint32_t * __a)
19798 {
19799 uint32x2x2_t ret;
19800 __builtin_aarch64_simd_oi __o;
19801 __o = __builtin_aarch64_ld2rv2si ((const __builtin_aarch64_simd_si *) __a);
19802 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
19803 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
19804 return ret;
19805 }
19806
19807 __extension__ extern __inline poly8x8x2_t
19808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_p8(const poly8_t * __a)19809 vld2_dup_p8 (const poly8_t * __a)
19810 {
19811 poly8x8x2_t ret;
19812 __builtin_aarch64_simd_oi __o;
19813 __o = __builtin_aarch64_ld2rv8qi ((const __builtin_aarch64_simd_qi *) __a);
19814 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
19815 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
19816 return ret;
19817 }
19818
19819 __extension__ extern __inline poly16x4x2_t
19820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_p16(const poly16_t * __a)19821 vld2_dup_p16 (const poly16_t * __a)
19822 {
19823 poly16x4x2_t ret;
19824 __builtin_aarch64_simd_oi __o;
19825 __o = __builtin_aarch64_ld2rv4hi ((const __builtin_aarch64_simd_hi *) __a);
19826 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
19827 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
19828 return ret;
19829 }
19830
19831 __extension__ extern __inline poly64x1x2_t
19832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_p64(const poly64_t * __a)19833 vld2_dup_p64 (const poly64_t * __a)
19834 {
19835 poly64x1x2_t ret;
19836 __builtin_aarch64_simd_oi __o;
19837 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19838 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 0);
19839 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi_pss (__o, 1);
19840 return ret;
19841 }
19842
19843
19844 __extension__ extern __inline int64x1x2_t
19845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_s64(const int64_t * __a)19846 vld2_dup_s64 (const int64_t * __a)
19847 {
19848 int64x1x2_t ret;
19849 __builtin_aarch64_simd_oi __o;
19850 __o = __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
19851 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
19852 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
19853 return ret;
19854 }
19855
19856 __extension__ extern __inline uint64x1x2_t
19857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_u64(const uint64_t * __a)19858 vld2_dup_u64 (const uint64_t * __a)
19859 {
19860 uint64x1x2_t ret;
19861 __builtin_aarch64_simd_oi __o;
19862 __o = __builtin_aarch64_ld2rdi ((const __builtin_aarch64_simd_di *) __a);
19863 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
19864 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
19865 return ret;
19866 }
19867
19868 __extension__ extern __inline int8x16x2_t
19869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_s8(const int8_t * __a)19870 vld2q_dup_s8 (const int8_t * __a)
19871 {
19872 int8x16x2_t ret;
19873 __builtin_aarch64_simd_oi __o;
19874 __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19875 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
19876 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
19877 return ret;
19878 }
19879
19880 __extension__ extern __inline poly8x16x2_t
19881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_p8(const poly8_t * __a)19882 vld2q_dup_p8 (const poly8_t * __a)
19883 {
19884 poly8x16x2_t ret;
19885 __builtin_aarch64_simd_oi __o;
19886 __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19887 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
19888 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
19889 return ret;
19890 }
19891
19892 __extension__ extern __inline int16x8x2_t
19893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_s16(const int16_t * __a)19894 vld2q_dup_s16 (const int16_t * __a)
19895 {
19896 int16x8x2_t ret;
19897 __builtin_aarch64_simd_oi __o;
19898 __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19899 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
19900 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
19901 return ret;
19902 }
19903
19904 __extension__ extern __inline poly16x8x2_t
19905 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_p16(const poly16_t * __a)19906 vld2q_dup_p16 (const poly16_t * __a)
19907 {
19908 poly16x8x2_t ret;
19909 __builtin_aarch64_simd_oi __o;
19910 __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19911 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
19912 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
19913 return ret;
19914 }
19915
19916 __extension__ extern __inline int32x4x2_t
19917 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_s32(const int32_t * __a)19918 vld2q_dup_s32 (const int32_t * __a)
19919 {
19920 int32x4x2_t ret;
19921 __builtin_aarch64_simd_oi __o;
19922 __o = __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
19923 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
19924 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
19925 return ret;
19926 }
19927
19928 __extension__ extern __inline int64x2x2_t
19929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_s64(const int64_t * __a)19930 vld2q_dup_s64 (const int64_t * __a)
19931 {
19932 int64x2x2_t ret;
19933 __builtin_aarch64_simd_oi __o;
19934 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19935 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
19936 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
19937 return ret;
19938 }
19939
19940 __extension__ extern __inline uint8x16x2_t
19941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_u8(const uint8_t * __a)19942 vld2q_dup_u8 (const uint8_t * __a)
19943 {
19944 uint8x16x2_t ret;
19945 __builtin_aarch64_simd_oi __o;
19946 __o = __builtin_aarch64_ld2rv16qi ((const __builtin_aarch64_simd_qi *) __a);
19947 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
19948 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
19949 return ret;
19950 }
19951
19952 __extension__ extern __inline uint16x8x2_t
19953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_u16(const uint16_t * __a)19954 vld2q_dup_u16 (const uint16_t * __a)
19955 {
19956 uint16x8x2_t ret;
19957 __builtin_aarch64_simd_oi __o;
19958 __o = __builtin_aarch64_ld2rv8hi ((const __builtin_aarch64_simd_hi *) __a);
19959 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
19960 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
19961 return ret;
19962 }
19963
19964 __extension__ extern __inline uint32x4x2_t
19965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_u32(const uint32_t * __a)19966 vld2q_dup_u32 (const uint32_t * __a)
19967 {
19968 uint32x4x2_t ret;
19969 __builtin_aarch64_simd_oi __o;
19970 __o = __builtin_aarch64_ld2rv4si ((const __builtin_aarch64_simd_si *) __a);
19971 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
19972 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
19973 return ret;
19974 }
19975
19976 __extension__ extern __inline uint64x2x2_t
19977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_u64(const uint64_t * __a)19978 vld2q_dup_u64 (const uint64_t * __a)
19979 {
19980 uint64x2x2_t ret;
19981 __builtin_aarch64_simd_oi __o;
19982 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
19983 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
19984 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
19985 return ret;
19986 }
19987
19988 __extension__ extern __inline float16x8x2_t
19989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_f16(const float16_t * __a)19990 vld2q_dup_f16 (const float16_t * __a)
19991 {
19992 float16x8x2_t ret;
19993 __builtin_aarch64_simd_oi __o;
19994 __o = __builtin_aarch64_ld2rv8hf ((const __builtin_aarch64_simd_hf *) __a);
19995 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 0);
19996 ret.val[1] = __builtin_aarch64_get_qregoiv8hf (__o, 1);
19997 return ret;
19998 }
19999
20000 __extension__ extern __inline float32x4x2_t
20001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_f32(const float32_t * __a)20002 vld2q_dup_f32 (const float32_t * __a)
20003 {
20004 float32x4x2_t ret;
20005 __builtin_aarch64_simd_oi __o;
20006 __o = __builtin_aarch64_ld2rv4sf ((const __builtin_aarch64_simd_sf *) __a);
20007 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
20008 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
20009 return ret;
20010 }
20011
20012 __extension__ extern __inline float64x2x2_t
20013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_f64(const float64_t * __a)20014 vld2q_dup_f64 (const float64_t * __a)
20015 {
20016 float64x2x2_t ret;
20017 __builtin_aarch64_simd_oi __o;
20018 __o = __builtin_aarch64_ld2rv2df ((const __builtin_aarch64_simd_df *) __a);
20019 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
20020 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
20021 return ret;
20022 }
20023
20024 __extension__ extern __inline poly64x2x2_t
20025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_p64(const poly64_t * __a)20026 vld2q_dup_p64 (const poly64_t * __a)
20027 {
20028 poly64x2x2_t ret;
20029 __builtin_aarch64_simd_oi __o;
20030 __o = __builtin_aarch64_ld2rv2di ((const __builtin_aarch64_simd_di *) __a);
20031 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 0);
20032 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di_pss (__o, 1);
20033 return ret;
20034 }
20035
20036 __extension__ extern __inline int64x1x3_t
20037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_s64(const int64_t * __a)20038 vld3_dup_s64 (const int64_t * __a)
20039 {
20040 int64x1x3_t ret;
20041 __builtin_aarch64_simd_ci __o;
20042 __o = __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
20043 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
20044 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
20045 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
20046 return ret;
20047 }
20048
20049 __extension__ extern __inline uint64x1x3_t
20050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_u64(const uint64_t * __a)20051 vld3_dup_u64 (const uint64_t * __a)
20052 {
20053 uint64x1x3_t ret;
20054 __builtin_aarch64_simd_ci __o;
20055 __o = __builtin_aarch64_ld3rdi ((const __builtin_aarch64_simd_di *) __a);
20056 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
20057 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
20058 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
20059 return ret;
20060 }
20061
20062 __extension__ extern __inline float64x1x3_t
20063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_f64(const float64_t * __a)20064 vld3_dup_f64 (const float64_t * __a)
20065 {
20066 float64x1x3_t ret;
20067 __builtin_aarch64_simd_ci __o;
20068 __o = __builtin_aarch64_ld3rdf ((const __builtin_aarch64_simd_df *) __a);
20069 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 0)};
20070 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 1)};
20071 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregcidf (__o, 2)};
20072 return ret;
20073 }
20074
20075 __extension__ extern __inline int8x8x3_t
20076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_s8(const int8_t * __a)20077 vld3_dup_s8 (const int8_t * __a)
20078 {
20079 int8x8x3_t ret;
20080 __builtin_aarch64_simd_ci __o;
20081 __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20082 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
20083 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
20084 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
20085 return ret;
20086 }
20087
20088 __extension__ extern __inline poly8x8x3_t
20089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_p8(const poly8_t * __a)20090 vld3_dup_p8 (const poly8_t * __a)
20091 {
20092 poly8x8x3_t ret;
20093 __builtin_aarch64_simd_ci __o;
20094 __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20095 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
20096 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
20097 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
20098 return ret;
20099 }
20100
20101 __extension__ extern __inline int16x4x3_t
20102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_s16(const int16_t * __a)20103 vld3_dup_s16 (const int16_t * __a)
20104 {
20105 int16x4x3_t ret;
20106 __builtin_aarch64_simd_ci __o;
20107 __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20108 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
20109 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
20110 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
20111 return ret;
20112 }
20113
20114 __extension__ extern __inline poly16x4x3_t
20115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_p16(const poly16_t * __a)20116 vld3_dup_p16 (const poly16_t * __a)
20117 {
20118 poly16x4x3_t ret;
20119 __builtin_aarch64_simd_ci __o;
20120 __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20121 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
20122 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
20123 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
20124 return ret;
20125 }
20126
20127 __extension__ extern __inline int32x2x3_t
20128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_s32(const int32_t * __a)20129 vld3_dup_s32 (const int32_t * __a)
20130 {
20131 int32x2x3_t ret;
20132 __builtin_aarch64_simd_ci __o;
20133 __o = __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
20134 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
20135 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
20136 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
20137 return ret;
20138 }
20139
20140 __extension__ extern __inline uint8x8x3_t
20141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_u8(const uint8_t * __a)20142 vld3_dup_u8 (const uint8_t * __a)
20143 {
20144 uint8x8x3_t ret;
20145 __builtin_aarch64_simd_ci __o;
20146 __o = __builtin_aarch64_ld3rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20147 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
20148 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
20149 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
20150 return ret;
20151 }
20152
20153 __extension__ extern __inline uint16x4x3_t
20154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_u16(const uint16_t * __a)20155 vld3_dup_u16 (const uint16_t * __a)
20156 {
20157 uint16x4x3_t ret;
20158 __builtin_aarch64_simd_ci __o;
20159 __o = __builtin_aarch64_ld3rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20160 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
20161 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
20162 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
20163 return ret;
20164 }
20165
20166 __extension__ extern __inline uint32x2x3_t
20167 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_u32(const uint32_t * __a)20168 vld3_dup_u32 (const uint32_t * __a)
20169 {
20170 uint32x2x3_t ret;
20171 __builtin_aarch64_simd_ci __o;
20172 __o = __builtin_aarch64_ld3rv2si ((const __builtin_aarch64_simd_si *) __a);
20173 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
20174 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
20175 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
20176 return ret;
20177 }
20178
20179 __extension__ extern __inline float16x4x3_t
20180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_f16(const float16_t * __a)20181 vld3_dup_f16 (const float16_t * __a)
20182 {
20183 float16x4x3_t ret;
20184 __builtin_aarch64_simd_ci __o;
20185 __o = __builtin_aarch64_ld3rv4hf ((const __builtin_aarch64_simd_hf *) __a);
20186 ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 0);
20187 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 1);
20188 ret.val[2] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 2);
20189 return ret;
20190 }
20191
20192 __extension__ extern __inline float32x2x3_t
20193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_f32(const float32_t * __a)20194 vld3_dup_f32 (const float32_t * __a)
20195 {
20196 float32x2x3_t ret;
20197 __builtin_aarch64_simd_ci __o;
20198 __o = __builtin_aarch64_ld3rv2sf ((const __builtin_aarch64_simd_sf *) __a);
20199 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
20200 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
20201 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
20202 return ret;
20203 }
20204
20205 __extension__ extern __inline poly64x1x3_t
20206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_p64(const poly64_t * __a)20207 vld3_dup_p64 (const poly64_t * __a)
20208 {
20209 poly64x1x3_t ret;
20210 __builtin_aarch64_simd_ci __o;
20211 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
20212 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 0);
20213 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 1);
20214 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi_pss (__o, 2);
20215 return ret;
20216 }
20217
20218 __extension__ extern __inline int8x16x3_t
20219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_s8(const int8_t * __a)20220 vld3q_dup_s8 (const int8_t * __a)
20221 {
20222 int8x16x3_t ret;
20223 __builtin_aarch64_simd_ci __o;
20224 __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20225 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
20226 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
20227 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
20228 return ret;
20229 }
20230
20231 __extension__ extern __inline poly8x16x3_t
20232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_p8(const poly8_t * __a)20233 vld3q_dup_p8 (const poly8_t * __a)
20234 {
20235 poly8x16x3_t ret;
20236 __builtin_aarch64_simd_ci __o;
20237 __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20238 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
20239 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
20240 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
20241 return ret;
20242 }
20243
20244 __extension__ extern __inline int16x8x3_t
20245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_s16(const int16_t * __a)20246 vld3q_dup_s16 (const int16_t * __a)
20247 {
20248 int16x8x3_t ret;
20249 __builtin_aarch64_simd_ci __o;
20250 __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20251 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
20252 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
20253 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
20254 return ret;
20255 }
20256
20257 __extension__ extern __inline poly16x8x3_t
20258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_p16(const poly16_t * __a)20259 vld3q_dup_p16 (const poly16_t * __a)
20260 {
20261 poly16x8x3_t ret;
20262 __builtin_aarch64_simd_ci __o;
20263 __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20264 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
20265 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
20266 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
20267 return ret;
20268 }
20269
20270 __extension__ extern __inline int32x4x3_t
20271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_s32(const int32_t * __a)20272 vld3q_dup_s32 (const int32_t * __a)
20273 {
20274 int32x4x3_t ret;
20275 __builtin_aarch64_simd_ci __o;
20276 __o = __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
20277 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
20278 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
20279 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
20280 return ret;
20281 }
20282
20283 __extension__ extern __inline int64x2x3_t
20284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_s64(const int64_t * __a)20285 vld3q_dup_s64 (const int64_t * __a)
20286 {
20287 int64x2x3_t ret;
20288 __builtin_aarch64_simd_ci __o;
20289 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
20290 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
20291 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
20292 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
20293 return ret;
20294 }
20295
20296 __extension__ extern __inline uint8x16x3_t
20297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_u8(const uint8_t * __a)20298 vld3q_dup_u8 (const uint8_t * __a)
20299 {
20300 uint8x16x3_t ret;
20301 __builtin_aarch64_simd_ci __o;
20302 __o = __builtin_aarch64_ld3rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20303 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
20304 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
20305 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
20306 return ret;
20307 }
20308
20309 __extension__ extern __inline uint16x8x3_t
20310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_u16(const uint16_t * __a)20311 vld3q_dup_u16 (const uint16_t * __a)
20312 {
20313 uint16x8x3_t ret;
20314 __builtin_aarch64_simd_ci __o;
20315 __o = __builtin_aarch64_ld3rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20316 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
20317 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
20318 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
20319 return ret;
20320 }
20321
20322 __extension__ extern __inline uint32x4x3_t
20323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_u32(const uint32_t * __a)20324 vld3q_dup_u32 (const uint32_t * __a)
20325 {
20326 uint32x4x3_t ret;
20327 __builtin_aarch64_simd_ci __o;
20328 __o = __builtin_aarch64_ld3rv4si ((const __builtin_aarch64_simd_si *) __a);
20329 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
20330 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
20331 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
20332 return ret;
20333 }
20334
20335 __extension__ extern __inline uint64x2x3_t
20336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_u64(const uint64_t * __a)20337 vld3q_dup_u64 (const uint64_t * __a)
20338 {
20339 uint64x2x3_t ret;
20340 __builtin_aarch64_simd_ci __o;
20341 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
20342 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
20343 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
20344 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
20345 return ret;
20346 }
20347
20348 __extension__ extern __inline float16x8x3_t
20349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_f16(const float16_t * __a)20350 vld3q_dup_f16 (const float16_t * __a)
20351 {
20352 float16x8x3_t ret;
20353 __builtin_aarch64_simd_ci __o;
20354 __o = __builtin_aarch64_ld3rv8hf ((const __builtin_aarch64_simd_hf *) __a);
20355 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 0);
20356 ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 1);
20357 ret.val[2] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 2);
20358 return ret;
20359 }
20360
20361 __extension__ extern __inline float32x4x3_t
20362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_f32(const float32_t * __a)20363 vld3q_dup_f32 (const float32_t * __a)
20364 {
20365 float32x4x3_t ret;
20366 __builtin_aarch64_simd_ci __o;
20367 __o = __builtin_aarch64_ld3rv4sf ((const __builtin_aarch64_simd_sf *) __a);
20368 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
20369 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
20370 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
20371 return ret;
20372 }
20373
20374 __extension__ extern __inline float64x2x3_t
20375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_f64(const float64_t * __a)20376 vld3q_dup_f64 (const float64_t * __a)
20377 {
20378 float64x2x3_t ret;
20379 __builtin_aarch64_simd_ci __o;
20380 __o = __builtin_aarch64_ld3rv2df ((const __builtin_aarch64_simd_df *) __a);
20381 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
20382 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
20383 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
20384 return ret;
20385 }
20386
20387 __extension__ extern __inline poly64x2x3_t
20388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_p64(const poly64_t * __a)20389 vld3q_dup_p64 (const poly64_t * __a)
20390 {
20391 poly64x2x3_t ret;
20392 __builtin_aarch64_simd_ci __o;
20393 __o = __builtin_aarch64_ld3rv2di ((const __builtin_aarch64_simd_di *) __a);
20394 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 0);
20395 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 1);
20396 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di_pss (__o, 2);
20397 return ret;
20398 }
20399
20400 __extension__ extern __inline int64x1x4_t
20401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_s64(const int64_t * __a)20402 vld4_dup_s64 (const int64_t * __a)
20403 {
20404 int64x1x4_t ret;
20405 __builtin_aarch64_simd_xi __o;
20406 __o = __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
20407 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
20408 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
20409 ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
20410 ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
20411 return ret;
20412 }
20413
20414 __extension__ extern __inline uint64x1x4_t
20415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_u64(const uint64_t * __a)20416 vld4_dup_u64 (const uint64_t * __a)
20417 {
20418 uint64x1x4_t ret;
20419 __builtin_aarch64_simd_xi __o;
20420 __o = __builtin_aarch64_ld4rdi ((const __builtin_aarch64_simd_di *) __a);
20421 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0);
20422 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1);
20423 ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2);
20424 ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3);
20425 return ret;
20426 }
20427
20428 __extension__ extern __inline float64x1x4_t
20429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_f64(const float64_t * __a)20430 vld4_dup_f64 (const float64_t * __a)
20431 {
20432 float64x1x4_t ret;
20433 __builtin_aarch64_simd_xi __o;
20434 __o = __builtin_aarch64_ld4rdf ((const __builtin_aarch64_simd_df *) __a);
20435 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)};
20436 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)};
20437 ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)};
20438 ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)};
20439 return ret;
20440 }
20441
20442 __extension__ extern __inline int8x8x4_t
20443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_s8(const int8_t * __a)20444 vld4_dup_s8 (const int8_t * __a)
20445 {
20446 int8x8x4_t ret;
20447 __builtin_aarch64_simd_xi __o;
20448 __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20449 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
20450 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
20451 ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
20452 ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
20453 return ret;
20454 }
20455
20456 __extension__ extern __inline poly8x8x4_t
20457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_p8(const poly8_t * __a)20458 vld4_dup_p8 (const poly8_t * __a)
20459 {
20460 poly8x8x4_t ret;
20461 __builtin_aarch64_simd_xi __o;
20462 __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20463 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
20464 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
20465 ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
20466 ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
20467 return ret;
20468 }
20469
20470 __extension__ extern __inline int16x4x4_t
20471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_s16(const int16_t * __a)20472 vld4_dup_s16 (const int16_t * __a)
20473 {
20474 int16x4x4_t ret;
20475 __builtin_aarch64_simd_xi __o;
20476 __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20477 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
20478 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
20479 ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
20480 ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
20481 return ret;
20482 }
20483
20484 __extension__ extern __inline poly16x4x4_t
20485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_p16(const poly16_t * __a)20486 vld4_dup_p16 (const poly16_t * __a)
20487 {
20488 poly16x4x4_t ret;
20489 __builtin_aarch64_simd_xi __o;
20490 __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20491 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
20492 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
20493 ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
20494 ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
20495 return ret;
20496 }
20497
20498 __extension__ extern __inline int32x2x4_t
20499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_s32(const int32_t * __a)20500 vld4_dup_s32 (const int32_t * __a)
20501 {
20502 int32x2x4_t ret;
20503 __builtin_aarch64_simd_xi __o;
20504 __o = __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
20505 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
20506 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
20507 ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
20508 ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
20509 return ret;
20510 }
20511
20512 __extension__ extern __inline uint8x8x4_t
20513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_u8(const uint8_t * __a)20514 vld4_dup_u8 (const uint8_t * __a)
20515 {
20516 uint8x8x4_t ret;
20517 __builtin_aarch64_simd_xi __o;
20518 __o = __builtin_aarch64_ld4rv8qi ((const __builtin_aarch64_simd_qi *) __a);
20519 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0);
20520 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1);
20521 ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2);
20522 ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3);
20523 return ret;
20524 }
20525
20526 __extension__ extern __inline uint16x4x4_t
20527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_u16(const uint16_t * __a)20528 vld4_dup_u16 (const uint16_t * __a)
20529 {
20530 uint16x4x4_t ret;
20531 __builtin_aarch64_simd_xi __o;
20532 __o = __builtin_aarch64_ld4rv4hi ((const __builtin_aarch64_simd_hi *) __a);
20533 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0);
20534 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1);
20535 ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2);
20536 ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3);
20537 return ret;
20538 }
20539
20540 __extension__ extern __inline uint32x2x4_t
20541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_u32(const uint32_t * __a)20542 vld4_dup_u32 (const uint32_t * __a)
20543 {
20544 uint32x2x4_t ret;
20545 __builtin_aarch64_simd_xi __o;
20546 __o = __builtin_aarch64_ld4rv2si ((const __builtin_aarch64_simd_si *) __a);
20547 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0);
20548 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1);
20549 ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2);
20550 ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3);
20551 return ret;
20552 }
20553
20554 __extension__ extern __inline float16x4x4_t
20555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_f16(const float16_t * __a)20556 vld4_dup_f16 (const float16_t * __a)
20557 {
20558 float16x4x4_t ret;
20559 __builtin_aarch64_simd_xi __o;
20560 __o = __builtin_aarch64_ld4rv4hf ((const __builtin_aarch64_simd_hf *) __a);
20561 ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 0);
20562 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 1);
20563 ret.val[2] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 2);
20564 ret.val[3] = (float16x4_t) __builtin_aarch64_get_dregxiv4hf (__o, 3);
20565 return ret;
20566 }
20567
20568 __extension__ extern __inline float32x2x4_t
20569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_f32(const float32_t * __a)20570 vld4_dup_f32 (const float32_t * __a)
20571 {
20572 float32x2x4_t ret;
20573 __builtin_aarch64_simd_xi __o;
20574 __o = __builtin_aarch64_ld4rv2sf ((const __builtin_aarch64_simd_sf *) __a);
20575 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0);
20576 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1);
20577 ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2);
20578 ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3);
20579 return ret;
20580 }
20581
20582 __extension__ extern __inline poly64x1x4_t
20583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_p64(const poly64_t * __a)20584 vld4_dup_p64 (const poly64_t * __a)
20585 {
20586 poly64x1x4_t ret;
20587 __builtin_aarch64_simd_xi __o;
20588 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20589 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0);
20590 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1);
20591 ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2);
20592 ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3);
20593 return ret;
20594 }
20595
20596 __extension__ extern __inline int8x16x4_t
20597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_s8(const int8_t * __a)20598 vld4q_dup_s8 (const int8_t * __a)
20599 {
20600 int8x16x4_t ret;
20601 __builtin_aarch64_simd_xi __o;
20602 __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20603 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
20604 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
20605 ret.val[2] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
20606 ret.val[3] = (int8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
20607 return ret;
20608 }
20609
20610 __extension__ extern __inline poly8x16x4_t
20611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_p8(const poly8_t * __a)20612 vld4q_dup_p8 (const poly8_t * __a)
20613 {
20614 poly8x16x4_t ret;
20615 __builtin_aarch64_simd_xi __o;
20616 __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20617 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
20618 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
20619 ret.val[2] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
20620 ret.val[3] = (poly8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
20621 return ret;
20622 }
20623
20624 __extension__ extern __inline int16x8x4_t
20625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_s16(const int16_t * __a)20626 vld4q_dup_s16 (const int16_t * __a)
20627 {
20628 int16x8x4_t ret;
20629 __builtin_aarch64_simd_xi __o;
20630 __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20631 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20632 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20633 ret.val[2] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20634 ret.val[3] = (int16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20635 return ret;
20636 }
20637
20638 __extension__ extern __inline poly16x8x4_t
20639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_p16(const poly16_t * __a)20640 vld4q_dup_p16 (const poly16_t * __a)
20641 {
20642 poly16x8x4_t ret;
20643 __builtin_aarch64_simd_xi __o;
20644 __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20645 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20646 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20647 ret.val[2] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20648 ret.val[3] = (poly16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20649 return ret;
20650 }
20651
20652 __extension__ extern __inline int32x4x4_t
20653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_s32(const int32_t * __a)20654 vld4q_dup_s32 (const int32_t * __a)
20655 {
20656 int32x4x4_t ret;
20657 __builtin_aarch64_simd_xi __o;
20658 __o = __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
20659 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
20660 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
20661 ret.val[2] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
20662 ret.val[3] = (int32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
20663 return ret;
20664 }
20665
20666 __extension__ extern __inline int64x2x4_t
20667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_s64(const int64_t * __a)20668 vld4q_dup_s64 (const int64_t * __a)
20669 {
20670 int64x2x4_t ret;
20671 __builtin_aarch64_simd_xi __o;
20672 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20673 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
20674 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
20675 ret.val[2] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
20676 ret.val[3] = (int64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
20677 return ret;
20678 }
20679
20680 __extension__ extern __inline uint8x16x4_t
20681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_u8(const uint8_t * __a)20682 vld4q_dup_u8 (const uint8_t * __a)
20683 {
20684 uint8x16x4_t ret;
20685 __builtin_aarch64_simd_xi __o;
20686 __o = __builtin_aarch64_ld4rv16qi ((const __builtin_aarch64_simd_qi *) __a);
20687 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 0);
20688 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 1);
20689 ret.val[2] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 2);
20690 ret.val[3] = (uint8x16_t) __builtin_aarch64_get_qregxiv16qi (__o, 3);
20691 return ret;
20692 }
20693
20694 __extension__ extern __inline uint16x8x4_t
20695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_u16(const uint16_t * __a)20696 vld4q_dup_u16 (const uint16_t * __a)
20697 {
20698 uint16x8x4_t ret;
20699 __builtin_aarch64_simd_xi __o;
20700 __o = __builtin_aarch64_ld4rv8hi ((const __builtin_aarch64_simd_hi *) __a);
20701 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 0);
20702 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 1);
20703 ret.val[2] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 2);
20704 ret.val[3] = (uint16x8_t) __builtin_aarch64_get_qregxiv8hi (__o, 3);
20705 return ret;
20706 }
20707
20708 __extension__ extern __inline uint32x4x4_t
20709 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_u32(const uint32_t * __a)20710 vld4q_dup_u32 (const uint32_t * __a)
20711 {
20712 uint32x4x4_t ret;
20713 __builtin_aarch64_simd_xi __o;
20714 __o = __builtin_aarch64_ld4rv4si ((const __builtin_aarch64_simd_si *) __a);
20715 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 0);
20716 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 1);
20717 ret.val[2] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 2);
20718 ret.val[3] = (uint32x4_t) __builtin_aarch64_get_qregxiv4si (__o, 3);
20719 return ret;
20720 }
20721
20722 __extension__ extern __inline uint64x2x4_t
20723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_u64(const uint64_t * __a)20724 vld4q_dup_u64 (const uint64_t * __a)
20725 {
20726 uint64x2x4_t ret;
20727 __builtin_aarch64_simd_xi __o;
20728 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20729 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 0);
20730 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 1);
20731 ret.val[2] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 2);
20732 ret.val[3] = (uint64x2_t) __builtin_aarch64_get_qregxiv2di (__o, 3);
20733 return ret;
20734 }
20735
20736 __extension__ extern __inline float16x8x4_t
20737 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_f16(const float16_t * __a)20738 vld4q_dup_f16 (const float16_t * __a)
20739 {
20740 float16x8x4_t ret;
20741 __builtin_aarch64_simd_xi __o;
20742 __o = __builtin_aarch64_ld4rv8hf ((const __builtin_aarch64_simd_hf *) __a);
20743 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 0);
20744 ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 1);
20745 ret.val[2] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 2);
20746 ret.val[3] = (float16x8_t) __builtin_aarch64_get_qregxiv8hf (__o, 3);
20747 return ret;
20748 }
20749
20750 __extension__ extern __inline float32x4x4_t
20751 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_f32(const float32_t * __a)20752 vld4q_dup_f32 (const float32_t * __a)
20753 {
20754 float32x4x4_t ret;
20755 __builtin_aarch64_simd_xi __o;
20756 __o = __builtin_aarch64_ld4rv4sf ((const __builtin_aarch64_simd_sf *) __a);
20757 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 0);
20758 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 1);
20759 ret.val[2] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 2);
20760 ret.val[3] = (float32x4_t) __builtin_aarch64_get_qregxiv4sf (__o, 3);
20761 return ret;
20762 }
20763
20764 __extension__ extern __inline float64x2x4_t
20765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_f64(const float64_t * __a)20766 vld4q_dup_f64 (const float64_t * __a)
20767 {
20768 float64x2x4_t ret;
20769 __builtin_aarch64_simd_xi __o;
20770 __o = __builtin_aarch64_ld4rv2df ((const __builtin_aarch64_simd_df *) __a);
20771 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 0);
20772 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 1);
20773 ret.val[2] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 2);
20774 ret.val[3] = (float64x2_t) __builtin_aarch64_get_qregxiv2df (__o, 3);
20775 return ret;
20776 }
20777
20778 __extension__ extern __inline poly64x2x4_t
20779 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_p64(const poly64_t * __a)20780 vld4q_dup_p64 (const poly64_t * __a)
20781 {
20782 poly64x2x4_t ret;
20783 __builtin_aarch64_simd_xi __o;
20784 __o = __builtin_aarch64_ld4rv2di ((const __builtin_aarch64_simd_di *) __a);
20785 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 0);
20786 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 1);
20787 ret.val[2] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 2);
20788 ret.val[3] = (poly64x2_t) __builtin_aarch64_get_qregxiv2di_pss (__o, 3);
20789 return ret;
20790 }
20791
20792 /* vld2_lane */
20793
20794 #define __LD2_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
20795 qmode, ptrmode, funcsuffix, signedtype) \
20796 __extension__ extern __inline intype \
20797 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20798 vld2_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20799 { \
20800 __builtin_aarch64_simd_oi __o; \
20801 largetype __temp; \
20802 __temp.val[0] = \
20803 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
20804 __temp.val[1] = \
20805 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
20806 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
20807 (signedtype) __temp.val[0], \
20808 0); \
20809 __o = __builtin_aarch64_set_qregoi##qmode (__o, \
20810 (signedtype) __temp.val[1], \
20811 1); \
20812 __o = __builtin_aarch64_ld2_lane##mode ( \
20813 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
20814 __b.val[0] = (vectype) __builtin_aarch64_get_dregoidi (__o, 0); \
20815 __b.val[1] = (vectype) __builtin_aarch64_get_dregoidi (__o, 1); \
20816 return __b; \
20817 }
20818
__LD2_LANE_FUNC(float16x4x2_t,float16x4_t,float16x8x2_t,float16_t,v4hf,v8hf,hf,f16,float16x8_t)20819 __LD2_LANE_FUNC (float16x4x2_t, float16x4_t, float16x8x2_t, float16_t, v4hf,
20820 v8hf, hf, f16, float16x8_t)
20821 __LD2_LANE_FUNC (float32x2x2_t, float32x2_t, float32x4x2_t, float32_t, v2sf, v4sf,
20822 sf, f32, float32x4_t)
20823 __LD2_LANE_FUNC (float64x1x2_t, float64x1_t, float64x2x2_t, float64_t, df, v2df,
20824 df, f64, float64x2_t)
20825 __LD2_LANE_FUNC (poly8x8x2_t, poly8x8_t, poly8x16x2_t, poly8_t, v8qi, v16qi, qi, p8,
20826 int8x16_t)
20827 __LD2_LANE_FUNC (poly16x4x2_t, poly16x4_t, poly16x8x2_t, poly16_t, v4hi, v8hi, hi,
20828 p16, int16x8_t)
20829 __LD2_LANE_FUNC (poly64x1x2_t, poly64x1_t, poly64x2x2_t, poly64_t, di,
20830 v2di_ssps, di, p64, poly64x2_t)
20831 __LD2_LANE_FUNC (int8x8x2_t, int8x8_t, int8x16x2_t, int8_t, v8qi, v16qi, qi, s8,
20832 int8x16_t)
20833 __LD2_LANE_FUNC (int16x4x2_t, int16x4_t, int16x8x2_t, int16_t, v4hi, v8hi, hi, s16,
20834 int16x8_t)
20835 __LD2_LANE_FUNC (int32x2x2_t, int32x2_t, int32x4x2_t, int32_t, v2si, v4si, si, s32,
20836 int32x4_t)
20837 __LD2_LANE_FUNC (int64x1x2_t, int64x1_t, int64x2x2_t, int64_t, di, v2di, di, s64,
20838 int64x2_t)
20839 __LD2_LANE_FUNC (uint8x8x2_t, uint8x8_t, uint8x16x2_t, uint8_t, v8qi, v16qi, qi, u8,
20840 int8x16_t)
20841 __LD2_LANE_FUNC (uint16x4x2_t, uint16x4_t, uint16x8x2_t, uint16_t, v4hi, v8hi, hi,
20842 u16, int16x8_t)
20843 __LD2_LANE_FUNC (uint32x2x2_t, uint32x2_t, uint32x4x2_t, uint32_t, v2si, v4si, si,
20844 u32, int32x4_t)
20845 __LD2_LANE_FUNC (uint64x1x2_t, uint64x1_t, uint64x2x2_t, uint64_t, di, v2di, di,
20846 u64, int64x2_t)
20847
20848 /* vld2q_lane */
20849
20850 #define __LD2Q_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
20851 __extension__ extern __inline intype \
20852 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20853 vld2q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20854 { \
20855 __builtin_aarch64_simd_oi __o; \
20856 intype ret; \
20857 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[0], 0); \
20858 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __b.val[1], 1); \
20859 __o = __builtin_aarch64_ld2_lane##mode ( \
20860 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
20861 ret.val[0] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 0); \
20862 ret.val[1] = (vtype) __builtin_aarch64_get_qregoiv4si (__o, 1); \
20863 return ret; \
20864 }
20865
20866 __LD2Q_LANE_FUNC (float16x8x2_t, float16x8_t, float16_t, v8hf, hf, f16)
20867 __LD2Q_LANE_FUNC (float32x4x2_t, float32x4_t, float32_t, v4sf, sf, f32)
20868 __LD2Q_LANE_FUNC (float64x2x2_t, float64x2_t, float64_t, v2df, df, f64)
20869 __LD2Q_LANE_FUNC (poly8x16x2_t, poly8x16_t, poly8_t, v16qi, qi, p8)
20870 __LD2Q_LANE_FUNC (poly16x8x2_t, poly16x8_t, poly16_t, v8hi, hi, p16)
20871 __LD2Q_LANE_FUNC (poly64x2x2_t, poly64x2_t, poly64_t, v2di, di, p64)
20872 __LD2Q_LANE_FUNC (int8x16x2_t, int8x16_t, int8_t, v16qi, qi, s8)
20873 __LD2Q_LANE_FUNC (int16x8x2_t, int16x8_t, int16_t, v8hi, hi, s16)
20874 __LD2Q_LANE_FUNC (int32x4x2_t, int32x4_t, int32_t, v4si, si, s32)
20875 __LD2Q_LANE_FUNC (int64x2x2_t, int64x2_t, int64_t, v2di, di, s64)
20876 __LD2Q_LANE_FUNC (uint8x16x2_t, uint8x16_t, uint8_t, v16qi, qi, u8)
20877 __LD2Q_LANE_FUNC (uint16x8x2_t, uint16x8_t, uint16_t, v8hi, hi, u16)
20878 __LD2Q_LANE_FUNC (uint32x4x2_t, uint32x4_t, uint32_t, v4si, si, u32)
20879 __LD2Q_LANE_FUNC (uint64x2x2_t, uint64x2_t, uint64_t, v2di, di, u64)
20880
20881 /* vld3_lane */
20882
20883 #define __LD3_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
20884 qmode, ptrmode, funcsuffix, signedtype) \
20885 __extension__ extern __inline intype \
20886 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20887 vld3_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20888 { \
20889 __builtin_aarch64_simd_ci __o; \
20890 largetype __temp; \
20891 __temp.val[0] = \
20892 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
20893 __temp.val[1] = \
20894 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
20895 __temp.val[2] = \
20896 vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0)); \
20897 __o = __builtin_aarch64_set_qregci##qmode (__o, \
20898 (signedtype) __temp.val[0], \
20899 0); \
20900 __o = __builtin_aarch64_set_qregci##qmode (__o, \
20901 (signedtype) __temp.val[1], \
20902 1); \
20903 __o = __builtin_aarch64_set_qregci##qmode (__o, \
20904 (signedtype) __temp.val[2], \
20905 2); \
20906 __o = __builtin_aarch64_ld3_lane##mode ( \
20907 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
20908 __b.val[0] = (vectype) __builtin_aarch64_get_dregcidi (__o, 0); \
20909 __b.val[1] = (vectype) __builtin_aarch64_get_dregcidi (__o, 1); \
20910 __b.val[2] = (vectype) __builtin_aarch64_get_dregcidi (__o, 2); \
20911 return __b; \
20912 }
20913
20914 __LD3_LANE_FUNC (float16x4x3_t, float16x4_t, float16x8x3_t, float16_t, v4hf,
20915 v8hf, hf, f16, float16x8_t)
20916 __LD3_LANE_FUNC (float32x2x3_t, float32x2_t, float32x4x3_t, float32_t, v2sf, v4sf,
20917 sf, f32, float32x4_t)
20918 __LD3_LANE_FUNC (float64x1x3_t, float64x1_t, float64x2x3_t, float64_t, df, v2df,
20919 df, f64, float64x2_t)
20920 __LD3_LANE_FUNC (poly8x8x3_t, poly8x8_t, poly8x16x3_t, poly8_t, v8qi, v16qi, qi, p8,
20921 int8x16_t)
20922 __LD3_LANE_FUNC (poly16x4x3_t, poly16x4_t, poly16x8x3_t, poly16_t, v4hi, v8hi, hi,
20923 p16, int16x8_t)
20924 __LD3_LANE_FUNC (poly64x1x3_t, poly64x1_t, poly64x2x3_t, poly64_t, di,
20925 v2di_ssps, di, p64, poly64x2_t)
20926 __LD3_LANE_FUNC (int8x8x3_t, int8x8_t, int8x16x3_t, int8_t, v8qi, v16qi, qi, s8,
20927 int8x16_t)
20928 __LD3_LANE_FUNC (int16x4x3_t, int16x4_t, int16x8x3_t, int16_t, v4hi, v8hi, hi, s16,
20929 int16x8_t)
20930 __LD3_LANE_FUNC (int32x2x3_t, int32x2_t, int32x4x3_t, int32_t, v2si, v4si, si, s32,
20931 int32x4_t)
20932 __LD3_LANE_FUNC (int64x1x3_t, int64x1_t, int64x2x3_t, int64_t, di, v2di, di, s64,
20933 int64x2_t)
20934 __LD3_LANE_FUNC (uint8x8x3_t, uint8x8_t, uint8x16x3_t, uint8_t, v8qi, v16qi, qi, u8,
20935 int8x16_t)
20936 __LD3_LANE_FUNC (uint16x4x3_t, uint16x4_t, uint16x8x3_t, uint16_t, v4hi, v8hi, hi,
20937 u16, int16x8_t)
20938 __LD3_LANE_FUNC (uint32x2x3_t, uint32x2_t, uint32x4x3_t, uint32_t, v2si, v4si, si,
20939 u32, int32x4_t)
20940 __LD3_LANE_FUNC (uint64x1x3_t, uint64x1_t, uint64x2x3_t, uint64_t, di, v2di, di,
20941 u64, int64x2_t)
20942
20943 /* vld3q_lane */
20944
20945 #define __LD3Q_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
20946 __extension__ extern __inline intype \
20947 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20948 vld3q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20949 { \
20950 __builtin_aarch64_simd_ci __o; \
20951 intype ret; \
20952 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[0], 0); \
20953 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[1], 1); \
20954 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __b.val[2], 2); \
20955 __o = __builtin_aarch64_ld3_lane##mode ( \
20956 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
20957 ret.val[0] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 0); \
20958 ret.val[1] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 1); \
20959 ret.val[2] = (vtype) __builtin_aarch64_get_qregciv4si (__o, 2); \
20960 return ret; \
20961 }
20962
20963 __LD3Q_LANE_FUNC (float16x8x3_t, float16x8_t, float16_t, v8hf, hf, f16)
20964 __LD3Q_LANE_FUNC (float32x4x3_t, float32x4_t, float32_t, v4sf, sf, f32)
20965 __LD3Q_LANE_FUNC (float64x2x3_t, float64x2_t, float64_t, v2df, df, f64)
20966 __LD3Q_LANE_FUNC (poly8x16x3_t, poly8x16_t, poly8_t, v16qi, qi, p8)
20967 __LD3Q_LANE_FUNC (poly16x8x3_t, poly16x8_t, poly16_t, v8hi, hi, p16)
20968 __LD3Q_LANE_FUNC (poly64x2x3_t, poly64x2_t, poly64_t, v2di, di, p64)
20969 __LD3Q_LANE_FUNC (int8x16x3_t, int8x16_t, int8_t, v16qi, qi, s8)
20970 __LD3Q_LANE_FUNC (int16x8x3_t, int16x8_t, int16_t, v8hi, hi, s16)
20971 __LD3Q_LANE_FUNC (int32x4x3_t, int32x4_t, int32_t, v4si, si, s32)
20972 __LD3Q_LANE_FUNC (int64x2x3_t, int64x2_t, int64_t, v2di, di, s64)
20973 __LD3Q_LANE_FUNC (uint8x16x3_t, uint8x16_t, uint8_t, v16qi, qi, u8)
20974 __LD3Q_LANE_FUNC (uint16x8x3_t, uint16x8_t, uint16_t, v8hi, hi, u16)
20975 __LD3Q_LANE_FUNC (uint32x4x3_t, uint32x4_t, uint32_t, v4si, si, u32)
20976 __LD3Q_LANE_FUNC (uint64x2x3_t, uint64x2_t, uint64_t, v2di, di, u64)
20977
20978 /* vld4_lane */
20979
20980 #define __LD4_LANE_FUNC(intype, vectype, largetype, ptrtype, mode, \
20981 qmode, ptrmode, funcsuffix, signedtype) \
20982 __extension__ extern __inline intype \
20983 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
20984 vld4_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
20985 { \
20986 __builtin_aarch64_simd_xi __o; \
20987 largetype __temp; \
20988 __temp.val[0] = \
20989 vcombine_##funcsuffix (__b.val[0], vcreate_##funcsuffix (0)); \
20990 __temp.val[1] = \
20991 vcombine_##funcsuffix (__b.val[1], vcreate_##funcsuffix (0)); \
20992 __temp.val[2] = \
20993 vcombine_##funcsuffix (__b.val[2], vcreate_##funcsuffix (0)); \
20994 __temp.val[3] = \
20995 vcombine_##funcsuffix (__b.val[3], vcreate_##funcsuffix (0)); \
20996 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
20997 (signedtype) __temp.val[0], \
20998 0); \
20999 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
21000 (signedtype) __temp.val[1], \
21001 1); \
21002 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
21003 (signedtype) __temp.val[2], \
21004 2); \
21005 __o = __builtin_aarch64_set_qregxi##qmode (__o, \
21006 (signedtype) __temp.val[3], \
21007 3); \
21008 __o = __builtin_aarch64_ld4_lane##mode ( \
21009 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
21010 __b.val[0] = (vectype) __builtin_aarch64_get_dregxidi (__o, 0); \
21011 __b.val[1] = (vectype) __builtin_aarch64_get_dregxidi (__o, 1); \
21012 __b.val[2] = (vectype) __builtin_aarch64_get_dregxidi (__o, 2); \
21013 __b.val[3] = (vectype) __builtin_aarch64_get_dregxidi (__o, 3); \
21014 return __b; \
21015 }
21016
21017 /* vld4q_lane */
21018
21019 __LD4_LANE_FUNC (float16x4x4_t, float16x4_t, float16x8x4_t, float16_t, v4hf,
21020 v8hf, hf, f16, float16x8_t)
21021 __LD4_LANE_FUNC (float32x2x4_t, float32x2_t, float32x4x4_t, float32_t, v2sf, v4sf,
21022 sf, f32, float32x4_t)
21023 __LD4_LANE_FUNC (float64x1x4_t, float64x1_t, float64x2x4_t, float64_t, df, v2df,
21024 df, f64, float64x2_t)
21025 __LD4_LANE_FUNC (poly8x8x4_t, poly8x8_t, poly8x16x4_t, poly8_t, v8qi, v16qi, qi, p8,
21026 int8x16_t)
21027 __LD4_LANE_FUNC (poly16x4x4_t, poly16x4_t, poly16x8x4_t, poly16_t, v4hi, v8hi, hi,
21028 p16, int16x8_t)
21029 __LD4_LANE_FUNC (poly64x1x4_t, poly64x1_t, poly64x2x4_t, poly64_t, di,
21030 v2di_ssps, di, p64, poly64x2_t)
21031 __LD4_LANE_FUNC (int8x8x4_t, int8x8_t, int8x16x4_t, int8_t, v8qi, v16qi, qi, s8,
21032 int8x16_t)
21033 __LD4_LANE_FUNC (int16x4x4_t, int16x4_t, int16x8x4_t, int16_t, v4hi, v8hi, hi, s16,
21034 int16x8_t)
21035 __LD4_LANE_FUNC (int32x2x4_t, int32x2_t, int32x4x4_t, int32_t, v2si, v4si, si, s32,
21036 int32x4_t)
21037 __LD4_LANE_FUNC (int64x1x4_t, int64x1_t, int64x2x4_t, int64_t, di, v2di, di, s64,
21038 int64x2_t)
21039 __LD4_LANE_FUNC (uint8x8x4_t, uint8x8_t, uint8x16x4_t, uint8_t, v8qi, v16qi, qi, u8,
21040 int8x16_t)
21041 __LD4_LANE_FUNC (uint16x4x4_t, uint16x4_t, uint16x8x4_t, uint16_t, v4hi, v8hi, hi,
21042 u16, int16x8_t)
21043 __LD4_LANE_FUNC (uint32x2x4_t, uint32x2_t, uint32x4x4_t, uint32_t, v2si, v4si, si,
21044 u32, int32x4_t)
21045 __LD4_LANE_FUNC (uint64x1x4_t, uint64x1_t, uint64x2x4_t, uint64_t, di, v2di, di,
21046 u64, int64x2_t)
21047
21048 /* vld4q_lane */
21049
21050 #define __LD4Q_LANE_FUNC(intype, vtype, ptrtype, mode, ptrmode, funcsuffix) \
21051 __extension__ extern __inline intype \
21052 __attribute__ ((__always_inline__, __gnu_inline__,__artificial__)) \
21053 vld4q_lane_##funcsuffix (const ptrtype * __ptr, intype __b, const int __c) \
21054 { \
21055 __builtin_aarch64_simd_xi __o; \
21056 intype ret; \
21057 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[0], 0); \
21058 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[1], 1); \
21059 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[2], 2); \
21060 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __b.val[3], 3); \
21061 __o = __builtin_aarch64_ld4_lane##mode ( \
21062 (__builtin_aarch64_simd_##ptrmode *) __ptr, __o, __c); \
21063 ret.val[0] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 0); \
21064 ret.val[1] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 1); \
21065 ret.val[2] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 2); \
21066 ret.val[3] = (vtype) __builtin_aarch64_get_qregxiv4si (__o, 3); \
21067 return ret; \
21068 }
21069
21070 __LD4Q_LANE_FUNC (float16x8x4_t, float16x8_t, float16_t, v8hf, hf, f16)
21071 __LD4Q_LANE_FUNC (float32x4x4_t, float32x4_t, float32_t, v4sf, sf, f32)
21072 __LD4Q_LANE_FUNC (float64x2x4_t, float64x2_t, float64_t, v2df, df, f64)
21073 __LD4Q_LANE_FUNC (poly8x16x4_t, poly8x16_t, poly8_t, v16qi, qi, p8)
21074 __LD4Q_LANE_FUNC (poly16x8x4_t, poly16x8_t, poly16_t, v8hi, hi, p16)
21075 __LD4Q_LANE_FUNC (poly64x2x4_t, poly64x2_t, poly64_t, v2di, di, p64)
21076 __LD4Q_LANE_FUNC (int8x16x4_t, int8x16_t, int8_t, v16qi, qi, s8)
21077 __LD4Q_LANE_FUNC (int16x8x4_t, int16x8_t, int16_t, v8hi, hi, s16)
21078 __LD4Q_LANE_FUNC (int32x4x4_t, int32x4_t, int32_t, v4si, si, s32)
21079 __LD4Q_LANE_FUNC (int64x2x4_t, int64x2_t, int64_t, v2di, di, s64)
21080 __LD4Q_LANE_FUNC (uint8x16x4_t, uint8x16_t, uint8_t, v16qi, qi, u8)
21081 __LD4Q_LANE_FUNC (uint16x8x4_t, uint16x8_t, uint16_t, v8hi, hi, u16)
21082 __LD4Q_LANE_FUNC (uint32x4x4_t, uint32x4_t, uint32_t, v4si, si, u32)
21083 __LD4Q_LANE_FUNC (uint64x2x4_t, uint64x2_t, uint64_t, v2di, di, u64)
21084
21085 /* vmax */
21086
21087 __extension__ extern __inline float32x2_t
21088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
21089 vmax_f32 (float32x2_t __a, float32x2_t __b)
21090 {
21091 return __builtin_aarch64_smax_nanv2sf (__a, __b);
21092 }
21093
21094 __extension__ extern __inline float64x1_t
21095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_f64(float64x1_t __a,float64x1_t __b)21096 vmax_f64 (float64x1_t __a, float64x1_t __b)
21097 {
21098 return (float64x1_t)
21099 { __builtin_aarch64_smax_nandf (vget_lane_f64 (__a, 0),
21100 vget_lane_f64 (__b, 0)) };
21101 }
21102
21103 __extension__ extern __inline int8x8_t
21104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_s8(int8x8_t __a,int8x8_t __b)21105 vmax_s8 (int8x8_t __a, int8x8_t __b)
21106 {
21107 return __builtin_aarch64_smaxv8qi (__a, __b);
21108 }
21109
21110 __extension__ extern __inline int16x4_t
21111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_s16(int16x4_t __a,int16x4_t __b)21112 vmax_s16 (int16x4_t __a, int16x4_t __b)
21113 {
21114 return __builtin_aarch64_smaxv4hi (__a, __b);
21115 }
21116
21117 __extension__ extern __inline int32x2_t
21118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_s32(int32x2_t __a,int32x2_t __b)21119 vmax_s32 (int32x2_t __a, int32x2_t __b)
21120 {
21121 return __builtin_aarch64_smaxv2si (__a, __b);
21122 }
21123
21124 __extension__ extern __inline uint8x8_t
21125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_u8(uint8x8_t __a,uint8x8_t __b)21126 vmax_u8 (uint8x8_t __a, uint8x8_t __b)
21127 {
21128 return (uint8x8_t) __builtin_aarch64_umaxv8qi ((int8x8_t) __a,
21129 (int8x8_t) __b);
21130 }
21131
21132 __extension__ extern __inline uint16x4_t
21133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_u16(uint16x4_t __a,uint16x4_t __b)21134 vmax_u16 (uint16x4_t __a, uint16x4_t __b)
21135 {
21136 return (uint16x4_t) __builtin_aarch64_umaxv4hi ((int16x4_t) __a,
21137 (int16x4_t) __b);
21138 }
21139
21140 __extension__ extern __inline uint32x2_t
21141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_u32(uint32x2_t __a,uint32x2_t __b)21142 vmax_u32 (uint32x2_t __a, uint32x2_t __b)
21143 {
21144 return (uint32x2_t) __builtin_aarch64_umaxv2si ((int32x2_t) __a,
21145 (int32x2_t) __b);
21146 }
21147
21148 __extension__ extern __inline float32x4_t
21149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_f32(float32x4_t __a,float32x4_t __b)21150 vmaxq_f32 (float32x4_t __a, float32x4_t __b)
21151 {
21152 return __builtin_aarch64_smax_nanv4sf (__a, __b);
21153 }
21154
21155 __extension__ extern __inline float64x2_t
21156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_f64(float64x2_t __a,float64x2_t __b)21157 vmaxq_f64 (float64x2_t __a, float64x2_t __b)
21158 {
21159 return __builtin_aarch64_smax_nanv2df (__a, __b);
21160 }
21161
21162 __extension__ extern __inline int8x16_t
21163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_s8(int8x16_t __a,int8x16_t __b)21164 vmaxq_s8 (int8x16_t __a, int8x16_t __b)
21165 {
21166 return __builtin_aarch64_smaxv16qi (__a, __b);
21167 }
21168
21169 __extension__ extern __inline int16x8_t
21170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_s16(int16x8_t __a,int16x8_t __b)21171 vmaxq_s16 (int16x8_t __a, int16x8_t __b)
21172 {
21173 return __builtin_aarch64_smaxv8hi (__a, __b);
21174 }
21175
21176 __extension__ extern __inline int32x4_t
21177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_s32(int32x4_t __a,int32x4_t __b)21178 vmaxq_s32 (int32x4_t __a, int32x4_t __b)
21179 {
21180 return __builtin_aarch64_smaxv4si (__a, __b);
21181 }
21182
21183 __extension__ extern __inline uint8x16_t
21184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_u8(uint8x16_t __a,uint8x16_t __b)21185 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
21186 {
21187 return (uint8x16_t) __builtin_aarch64_umaxv16qi ((int8x16_t) __a,
21188 (int8x16_t) __b);
21189 }
21190
21191 __extension__ extern __inline uint16x8_t
21192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_u16(uint16x8_t __a,uint16x8_t __b)21193 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
21194 {
21195 return (uint16x8_t) __builtin_aarch64_umaxv8hi ((int16x8_t) __a,
21196 (int16x8_t) __b);
21197 }
21198
21199 __extension__ extern __inline uint32x4_t
21200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_u32(uint32x4_t __a,uint32x4_t __b)21201 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
21202 {
21203 return (uint32x4_t) __builtin_aarch64_umaxv4si ((int32x4_t) __a,
21204 (int32x4_t) __b);
21205 }
21206 /* vmulx */
21207
21208 __extension__ extern __inline float32x2_t
21209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_f32(float32x2_t __a,float32x2_t __b)21210 vmulx_f32 (float32x2_t __a, float32x2_t __b)
21211 {
21212 return __builtin_aarch64_fmulxv2sf (__a, __b);
21213 }
21214
21215 __extension__ extern __inline float32x4_t
21216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_f32(float32x4_t __a,float32x4_t __b)21217 vmulxq_f32 (float32x4_t __a, float32x4_t __b)
21218 {
21219 return __builtin_aarch64_fmulxv4sf (__a, __b);
21220 }
21221
21222 __extension__ extern __inline float64x1_t
21223 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_f64(float64x1_t __a,float64x1_t __b)21224 vmulx_f64 (float64x1_t __a, float64x1_t __b)
21225 {
21226 return (float64x1_t) {__builtin_aarch64_fmulxdf (__a[0], __b[0])};
21227 }
21228
21229 __extension__ extern __inline float64x2_t
21230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_f64(float64x2_t __a,float64x2_t __b)21231 vmulxq_f64 (float64x2_t __a, float64x2_t __b)
21232 {
21233 return __builtin_aarch64_fmulxv2df (__a, __b);
21234 }
21235
21236 __extension__ extern __inline float32_t
21237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxs_f32(float32_t __a,float32_t __b)21238 vmulxs_f32 (float32_t __a, float32_t __b)
21239 {
21240 return __builtin_aarch64_fmulxsf (__a, __b);
21241 }
21242
21243 __extension__ extern __inline float64_t
21244 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxd_f64(float64_t __a,float64_t __b)21245 vmulxd_f64 (float64_t __a, float64_t __b)
21246 {
21247 return __builtin_aarch64_fmulxdf (__a, __b);
21248 }
21249
21250 __extension__ extern __inline float32x2_t
21251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_lane_f32(float32x2_t __a,float32x2_t __v,const int __lane)21252 vmulx_lane_f32 (float32x2_t __a, float32x2_t __v, const int __lane)
21253 {
21254 return vmulx_f32 (__a, __aarch64_vdup_lane_f32 (__v, __lane));
21255 }
21256
21257 __extension__ extern __inline float64x1_t
21258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_lane_f64(float64x1_t __a,float64x1_t __v,const int __lane)21259 vmulx_lane_f64 (float64x1_t __a, float64x1_t __v, const int __lane)
21260 {
21261 return vmulx_f64 (__a, __aarch64_vdup_lane_f64 (__v, __lane));
21262 }
21263
21264 __extension__ extern __inline float32x4_t
21265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_lane_f32(float32x4_t __a,float32x2_t __v,const int __lane)21266 vmulxq_lane_f32 (float32x4_t __a, float32x2_t __v, const int __lane)
21267 {
21268 return vmulxq_f32 (__a, __aarch64_vdupq_lane_f32 (__v, __lane));
21269 }
21270
21271 __extension__ extern __inline float64x2_t
21272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_lane_f64(float64x2_t __a,float64x1_t __v,const int __lane)21273 vmulxq_lane_f64 (float64x2_t __a, float64x1_t __v, const int __lane)
21274 {
21275 return vmulxq_f64 (__a, __aarch64_vdupq_lane_f64 (__v, __lane));
21276 }
21277
21278 __extension__ extern __inline float32x2_t
21279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_laneq_f32(float32x2_t __a,float32x4_t __v,const int __lane)21280 vmulx_laneq_f32 (float32x2_t __a, float32x4_t __v, const int __lane)
21281 {
21282 return vmulx_f32 (__a, __aarch64_vdup_laneq_f32 (__v, __lane));
21283 }
21284
21285 __extension__ extern __inline float64x1_t
21286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_laneq_f64(float64x1_t __a,float64x2_t __v,const int __lane)21287 vmulx_laneq_f64 (float64x1_t __a, float64x2_t __v, const int __lane)
21288 {
21289 return vmulx_f64 (__a, __aarch64_vdup_laneq_f64 (__v, __lane));
21290 }
21291
21292 __extension__ extern __inline float32x4_t
21293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_laneq_f32(float32x4_t __a,float32x4_t __v,const int __lane)21294 vmulxq_laneq_f32 (float32x4_t __a, float32x4_t __v, const int __lane)
21295 {
21296 return vmulxq_f32 (__a, __aarch64_vdupq_laneq_f32 (__v, __lane));
21297 }
21298
21299 __extension__ extern __inline float64x2_t
21300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_laneq_f64(float64x2_t __a,float64x2_t __v,const int __lane)21301 vmulxq_laneq_f64 (float64x2_t __a, float64x2_t __v, const int __lane)
21302 {
21303 return vmulxq_f64 (__a, __aarch64_vdupq_laneq_f64 (__v, __lane));
21304 }
21305
21306 __extension__ extern __inline float32_t
21307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxs_lane_f32(float32_t __a,float32x2_t __v,const int __lane)21308 vmulxs_lane_f32 (float32_t __a, float32x2_t __v, const int __lane)
21309 {
21310 return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
21311 }
21312
21313 __extension__ extern __inline float32_t
21314 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxs_laneq_f32(float32_t __a,float32x4_t __v,const int __lane)21315 vmulxs_laneq_f32 (float32_t __a, float32x4_t __v, const int __lane)
21316 {
21317 return vmulxs_f32 (__a, __aarch64_vget_lane_any (__v, __lane));
21318 }
21319
21320 __extension__ extern __inline float64_t
21321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxd_lane_f64(float64_t __a,float64x1_t __v,const int __lane)21322 vmulxd_lane_f64 (float64_t __a, float64x1_t __v, const int __lane)
21323 {
21324 return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
21325 }
21326
21327 __extension__ extern __inline float64_t
21328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxd_laneq_f64(float64_t __a,float64x2_t __v,const int __lane)21329 vmulxd_laneq_f64 (float64_t __a, float64x2_t __v, const int __lane)
21330 {
21331 return vmulxd_f64 (__a, __aarch64_vget_lane_any (__v, __lane));
21332 }
21333
21334 /* vpmax */
21335
21336 __extension__ extern __inline int8x8_t
21337 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_s8(int8x8_t __a,int8x8_t __b)21338 vpmax_s8 (int8x8_t __a, int8x8_t __b)
21339 {
21340 return __builtin_aarch64_smaxpv8qi (__a, __b);
21341 }
21342
21343 __extension__ extern __inline int16x4_t
21344 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_s16(int16x4_t __a,int16x4_t __b)21345 vpmax_s16 (int16x4_t __a, int16x4_t __b)
21346 {
21347 return __builtin_aarch64_smaxpv4hi (__a, __b);
21348 }
21349
21350 __extension__ extern __inline int32x2_t
21351 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_s32(int32x2_t __a,int32x2_t __b)21352 vpmax_s32 (int32x2_t __a, int32x2_t __b)
21353 {
21354 return __builtin_aarch64_smaxpv2si (__a, __b);
21355 }
21356
21357 __extension__ extern __inline uint8x8_t
21358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_u8(uint8x8_t __a,uint8x8_t __b)21359 vpmax_u8 (uint8x8_t __a, uint8x8_t __b)
21360 {
21361 return (uint8x8_t) __builtin_aarch64_umaxpv8qi ((int8x8_t) __a,
21362 (int8x8_t) __b);
21363 }
21364
21365 __extension__ extern __inline uint16x4_t
21366 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_u16(uint16x4_t __a,uint16x4_t __b)21367 vpmax_u16 (uint16x4_t __a, uint16x4_t __b)
21368 {
21369 return (uint16x4_t) __builtin_aarch64_umaxpv4hi ((int16x4_t) __a,
21370 (int16x4_t) __b);
21371 }
21372
21373 __extension__ extern __inline uint32x2_t
21374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_u32(uint32x2_t __a,uint32x2_t __b)21375 vpmax_u32 (uint32x2_t __a, uint32x2_t __b)
21376 {
21377 return (uint32x2_t) __builtin_aarch64_umaxpv2si ((int32x2_t) __a,
21378 (int32x2_t) __b);
21379 }
21380
21381 __extension__ extern __inline int8x16_t
21382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_s8(int8x16_t __a,int8x16_t __b)21383 vpmaxq_s8 (int8x16_t __a, int8x16_t __b)
21384 {
21385 return __builtin_aarch64_smaxpv16qi (__a, __b);
21386 }
21387
21388 __extension__ extern __inline int16x8_t
21389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_s16(int16x8_t __a,int16x8_t __b)21390 vpmaxq_s16 (int16x8_t __a, int16x8_t __b)
21391 {
21392 return __builtin_aarch64_smaxpv8hi (__a, __b);
21393 }
21394
21395 __extension__ extern __inline int32x4_t
21396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_s32(int32x4_t __a,int32x4_t __b)21397 vpmaxq_s32 (int32x4_t __a, int32x4_t __b)
21398 {
21399 return __builtin_aarch64_smaxpv4si (__a, __b);
21400 }
21401
21402 __extension__ extern __inline uint8x16_t
21403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_u8(uint8x16_t __a,uint8x16_t __b)21404 vpmaxq_u8 (uint8x16_t __a, uint8x16_t __b)
21405 {
21406 return (uint8x16_t) __builtin_aarch64_umaxpv16qi ((int8x16_t) __a,
21407 (int8x16_t) __b);
21408 }
21409
21410 __extension__ extern __inline uint16x8_t
21411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_u16(uint16x8_t __a,uint16x8_t __b)21412 vpmaxq_u16 (uint16x8_t __a, uint16x8_t __b)
21413 {
21414 return (uint16x8_t) __builtin_aarch64_umaxpv8hi ((int16x8_t) __a,
21415 (int16x8_t) __b);
21416 }
21417
21418 __extension__ extern __inline uint32x4_t
21419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_u32(uint32x4_t __a,uint32x4_t __b)21420 vpmaxq_u32 (uint32x4_t __a, uint32x4_t __b)
21421 {
21422 return (uint32x4_t) __builtin_aarch64_umaxpv4si ((int32x4_t) __a,
21423 (int32x4_t) __b);
21424 }
21425
21426 __extension__ extern __inline float32x2_t
21427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_f32(float32x2_t __a,float32x2_t __b)21428 vpmax_f32 (float32x2_t __a, float32x2_t __b)
21429 {
21430 return __builtin_aarch64_smax_nanpv2sf (__a, __b);
21431 }
21432
21433 __extension__ extern __inline float32x4_t
21434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_f32(float32x4_t __a,float32x4_t __b)21435 vpmaxq_f32 (float32x4_t __a, float32x4_t __b)
21436 {
21437 return __builtin_aarch64_smax_nanpv4sf (__a, __b);
21438 }
21439
21440 __extension__ extern __inline float64x2_t
21441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_f64(float64x2_t __a,float64x2_t __b)21442 vpmaxq_f64 (float64x2_t __a, float64x2_t __b)
21443 {
21444 return __builtin_aarch64_smax_nanpv2df (__a, __b);
21445 }
21446
21447 __extension__ extern __inline float64_t
21448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxqd_f64(float64x2_t __a)21449 vpmaxqd_f64 (float64x2_t __a)
21450 {
21451 return __builtin_aarch64_reduc_smax_nan_scal_v2df (__a);
21452 }
21453
21454 __extension__ extern __inline float32_t
21455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxs_f32(float32x2_t __a)21456 vpmaxs_f32 (float32x2_t __a)
21457 {
21458 return __builtin_aarch64_reduc_smax_nan_scal_v2sf (__a);
21459 }
21460
21461 /* vpmaxnm */
21462
21463 __extension__ extern __inline float32x2_t
21464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnm_f32(float32x2_t __a,float32x2_t __b)21465 vpmaxnm_f32 (float32x2_t __a, float32x2_t __b)
21466 {
21467 return __builtin_aarch64_smaxpv2sf (__a, __b);
21468 }
21469
21470 __extension__ extern __inline float32x4_t
21471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnmq_f32(float32x4_t __a,float32x4_t __b)21472 vpmaxnmq_f32 (float32x4_t __a, float32x4_t __b)
21473 {
21474 return __builtin_aarch64_smaxpv4sf (__a, __b);
21475 }
21476
21477 __extension__ extern __inline float64x2_t
21478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnmq_f64(float64x2_t __a,float64x2_t __b)21479 vpmaxnmq_f64 (float64x2_t __a, float64x2_t __b)
21480 {
21481 return __builtin_aarch64_smaxpv2df (__a, __b);
21482 }
21483
21484 __extension__ extern __inline float64_t
21485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnmqd_f64(float64x2_t __a)21486 vpmaxnmqd_f64 (float64x2_t __a)
21487 {
21488 return __builtin_aarch64_reduc_smax_scal_v2df (__a);
21489 }
21490
21491 __extension__ extern __inline float32_t
21492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnms_f32(float32x2_t __a)21493 vpmaxnms_f32 (float32x2_t __a)
21494 {
21495 return __builtin_aarch64_reduc_smax_scal_v2sf (__a);
21496 }
21497
21498 /* vpmin */
21499
21500 __extension__ extern __inline int8x8_t
21501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_s8(int8x8_t __a,int8x8_t __b)21502 vpmin_s8 (int8x8_t __a, int8x8_t __b)
21503 {
21504 return __builtin_aarch64_sminpv8qi (__a, __b);
21505 }
21506
21507 __extension__ extern __inline int16x4_t
21508 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_s16(int16x4_t __a,int16x4_t __b)21509 vpmin_s16 (int16x4_t __a, int16x4_t __b)
21510 {
21511 return __builtin_aarch64_sminpv4hi (__a, __b);
21512 }
21513
21514 __extension__ extern __inline int32x2_t
21515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_s32(int32x2_t __a,int32x2_t __b)21516 vpmin_s32 (int32x2_t __a, int32x2_t __b)
21517 {
21518 return __builtin_aarch64_sminpv2si (__a, __b);
21519 }
21520
21521 __extension__ extern __inline uint8x8_t
21522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_u8(uint8x8_t __a,uint8x8_t __b)21523 vpmin_u8 (uint8x8_t __a, uint8x8_t __b)
21524 {
21525 return (uint8x8_t) __builtin_aarch64_uminpv8qi ((int8x8_t) __a,
21526 (int8x8_t) __b);
21527 }
21528
21529 __extension__ extern __inline uint16x4_t
21530 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_u16(uint16x4_t __a,uint16x4_t __b)21531 vpmin_u16 (uint16x4_t __a, uint16x4_t __b)
21532 {
21533 return (uint16x4_t) __builtin_aarch64_uminpv4hi ((int16x4_t) __a,
21534 (int16x4_t) __b);
21535 }
21536
21537 __extension__ extern __inline uint32x2_t
21538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_u32(uint32x2_t __a,uint32x2_t __b)21539 vpmin_u32 (uint32x2_t __a, uint32x2_t __b)
21540 {
21541 return (uint32x2_t) __builtin_aarch64_uminpv2si ((int32x2_t) __a,
21542 (int32x2_t) __b);
21543 }
21544
21545 __extension__ extern __inline int8x16_t
21546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_s8(int8x16_t __a,int8x16_t __b)21547 vpminq_s8 (int8x16_t __a, int8x16_t __b)
21548 {
21549 return __builtin_aarch64_sminpv16qi (__a, __b);
21550 }
21551
21552 __extension__ extern __inline int16x8_t
21553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_s16(int16x8_t __a,int16x8_t __b)21554 vpminq_s16 (int16x8_t __a, int16x8_t __b)
21555 {
21556 return __builtin_aarch64_sminpv8hi (__a, __b);
21557 }
21558
21559 __extension__ extern __inline int32x4_t
21560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_s32(int32x4_t __a,int32x4_t __b)21561 vpminq_s32 (int32x4_t __a, int32x4_t __b)
21562 {
21563 return __builtin_aarch64_sminpv4si (__a, __b);
21564 }
21565
21566 __extension__ extern __inline uint8x16_t
21567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_u8(uint8x16_t __a,uint8x16_t __b)21568 vpminq_u8 (uint8x16_t __a, uint8x16_t __b)
21569 {
21570 return (uint8x16_t) __builtin_aarch64_uminpv16qi ((int8x16_t) __a,
21571 (int8x16_t) __b);
21572 }
21573
21574 __extension__ extern __inline uint16x8_t
21575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_u16(uint16x8_t __a,uint16x8_t __b)21576 vpminq_u16 (uint16x8_t __a, uint16x8_t __b)
21577 {
21578 return (uint16x8_t) __builtin_aarch64_uminpv8hi ((int16x8_t) __a,
21579 (int16x8_t) __b);
21580 }
21581
21582 __extension__ extern __inline uint32x4_t
21583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_u32(uint32x4_t __a,uint32x4_t __b)21584 vpminq_u32 (uint32x4_t __a, uint32x4_t __b)
21585 {
21586 return (uint32x4_t) __builtin_aarch64_uminpv4si ((int32x4_t) __a,
21587 (int32x4_t) __b);
21588 }
21589
21590 __extension__ extern __inline float32x2_t
21591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_f32(float32x2_t __a,float32x2_t __b)21592 vpmin_f32 (float32x2_t __a, float32x2_t __b)
21593 {
21594 return __builtin_aarch64_smin_nanpv2sf (__a, __b);
21595 }
21596
21597 __extension__ extern __inline float32x4_t
21598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_f32(float32x4_t __a,float32x4_t __b)21599 vpminq_f32 (float32x4_t __a, float32x4_t __b)
21600 {
21601 return __builtin_aarch64_smin_nanpv4sf (__a, __b);
21602 }
21603
21604 __extension__ extern __inline float64x2_t
21605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_f64(float64x2_t __a,float64x2_t __b)21606 vpminq_f64 (float64x2_t __a, float64x2_t __b)
21607 {
21608 return __builtin_aarch64_smin_nanpv2df (__a, __b);
21609 }
21610
21611 __extension__ extern __inline float64_t
21612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminqd_f64(float64x2_t __a)21613 vpminqd_f64 (float64x2_t __a)
21614 {
21615 return __builtin_aarch64_reduc_smin_nan_scal_v2df (__a);
21616 }
21617
21618 __extension__ extern __inline float32_t
21619 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmins_f32(float32x2_t __a)21620 vpmins_f32 (float32x2_t __a)
21621 {
21622 return __builtin_aarch64_reduc_smin_nan_scal_v2sf (__a);
21623 }
21624
21625 /* vpminnm */
21626
21627 __extension__ extern __inline float32x2_t
21628 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnm_f32(float32x2_t __a,float32x2_t __b)21629 vpminnm_f32 (float32x2_t __a, float32x2_t __b)
21630 {
21631 return __builtin_aarch64_sminpv2sf (__a, __b);
21632 }
21633
21634 __extension__ extern __inline float32x4_t
21635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnmq_f32(float32x4_t __a,float32x4_t __b)21636 vpminnmq_f32 (float32x4_t __a, float32x4_t __b)
21637 {
21638 return __builtin_aarch64_sminpv4sf (__a, __b);
21639 }
21640
21641 __extension__ extern __inline float64x2_t
21642 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnmq_f64(float64x2_t __a,float64x2_t __b)21643 vpminnmq_f64 (float64x2_t __a, float64x2_t __b)
21644 {
21645 return __builtin_aarch64_sminpv2df (__a, __b);
21646 }
21647
21648 __extension__ extern __inline float64_t
21649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnmqd_f64(float64x2_t __a)21650 vpminnmqd_f64 (float64x2_t __a)
21651 {
21652 return __builtin_aarch64_reduc_smin_scal_v2df (__a);
21653 }
21654
21655 __extension__ extern __inline float32_t
21656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnms_f32(float32x2_t __a)21657 vpminnms_f32 (float32x2_t __a)
21658 {
21659 return __builtin_aarch64_reduc_smin_scal_v2sf (__a);
21660 }
21661
21662 /* vmaxnm */
21663
21664 __extension__ extern __inline float32x2_t
21665 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnm_f32(float32x2_t __a,float32x2_t __b)21666 vmaxnm_f32 (float32x2_t __a, float32x2_t __b)
21667 {
21668 return __builtin_aarch64_fmaxv2sf (__a, __b);
21669 }
21670
21671 __extension__ extern __inline float64x1_t
21672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnm_f64(float64x1_t __a,float64x1_t __b)21673 vmaxnm_f64 (float64x1_t __a, float64x1_t __b)
21674 {
21675 return (float64x1_t)
21676 { __builtin_aarch64_fmaxdf (vget_lane_f64 (__a, 0),
21677 vget_lane_f64 (__b, 0)) };
21678 }
21679
21680 __extension__ extern __inline float32x4_t
21681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmq_f32(float32x4_t __a,float32x4_t __b)21682 vmaxnmq_f32 (float32x4_t __a, float32x4_t __b)
21683 {
21684 return __builtin_aarch64_fmaxv4sf (__a, __b);
21685 }
21686
21687 __extension__ extern __inline float64x2_t
21688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmq_f64(float64x2_t __a,float64x2_t __b)21689 vmaxnmq_f64 (float64x2_t __a, float64x2_t __b)
21690 {
21691 return __builtin_aarch64_fmaxv2df (__a, __b);
21692 }
21693
21694 /* vmaxv */
21695
21696 __extension__ extern __inline float32_t
21697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_f32(float32x2_t __a)21698 vmaxv_f32 (float32x2_t __a)
21699 {
21700 return __builtin_aarch64_reduc_smax_nan_scal_v2sf (__a);
21701 }
21702
21703 __extension__ extern __inline int8_t
21704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_s8(int8x8_t __a)21705 vmaxv_s8 (int8x8_t __a)
21706 {
21707 return __builtin_aarch64_reduc_smax_scal_v8qi (__a);
21708 }
21709
21710 __extension__ extern __inline int16_t
21711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_s16(int16x4_t __a)21712 vmaxv_s16 (int16x4_t __a)
21713 {
21714 return __builtin_aarch64_reduc_smax_scal_v4hi (__a);
21715 }
21716
21717 __extension__ extern __inline int32_t
21718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_s32(int32x2_t __a)21719 vmaxv_s32 (int32x2_t __a)
21720 {
21721 return __builtin_aarch64_reduc_smax_scal_v2si (__a);
21722 }
21723
21724 __extension__ extern __inline uint8_t
21725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_u8(uint8x8_t __a)21726 vmaxv_u8 (uint8x8_t __a)
21727 {
21728 return __builtin_aarch64_reduc_umax_scal_v8qi_uu (__a);
21729 }
21730
21731 __extension__ extern __inline uint16_t
21732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_u16(uint16x4_t __a)21733 vmaxv_u16 (uint16x4_t __a)
21734 {
21735 return __builtin_aarch64_reduc_umax_scal_v4hi_uu (__a);
21736 }
21737
21738 __extension__ extern __inline uint32_t
21739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_u32(uint32x2_t __a)21740 vmaxv_u32 (uint32x2_t __a)
21741 {
21742 return __builtin_aarch64_reduc_umax_scal_v2si_uu (__a);
21743 }
21744
21745 __extension__ extern __inline float32_t
21746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_f32(float32x4_t __a)21747 vmaxvq_f32 (float32x4_t __a)
21748 {
21749 return __builtin_aarch64_reduc_smax_nan_scal_v4sf (__a);
21750 }
21751
21752 __extension__ extern __inline float64_t
21753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_f64(float64x2_t __a)21754 vmaxvq_f64 (float64x2_t __a)
21755 {
21756 return __builtin_aarch64_reduc_smax_nan_scal_v2df (__a);
21757 }
21758
21759 __extension__ extern __inline int8_t
21760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_s8(int8x16_t __a)21761 vmaxvq_s8 (int8x16_t __a)
21762 {
21763 return __builtin_aarch64_reduc_smax_scal_v16qi (__a);
21764 }
21765
21766 __extension__ extern __inline int16_t
21767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_s16(int16x8_t __a)21768 vmaxvq_s16 (int16x8_t __a)
21769 {
21770 return __builtin_aarch64_reduc_smax_scal_v8hi (__a);
21771 }
21772
21773 __extension__ extern __inline int32_t
21774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_s32(int32x4_t __a)21775 vmaxvq_s32 (int32x4_t __a)
21776 {
21777 return __builtin_aarch64_reduc_smax_scal_v4si (__a);
21778 }
21779
21780 __extension__ extern __inline uint8_t
21781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_u8(uint8x16_t __a)21782 vmaxvq_u8 (uint8x16_t __a)
21783 {
21784 return __builtin_aarch64_reduc_umax_scal_v16qi_uu (__a);
21785 }
21786
21787 __extension__ extern __inline uint16_t
21788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_u16(uint16x8_t __a)21789 vmaxvq_u16 (uint16x8_t __a)
21790 {
21791 return __builtin_aarch64_reduc_umax_scal_v8hi_uu (__a);
21792 }
21793
21794 __extension__ extern __inline uint32_t
21795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_u32(uint32x4_t __a)21796 vmaxvq_u32 (uint32x4_t __a)
21797 {
21798 return __builtin_aarch64_reduc_umax_scal_v4si_uu (__a);
21799 }
21800
21801 /* vmaxnmv */
21802
21803 __extension__ extern __inline float32_t
21804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmv_f32(float32x2_t __a)21805 vmaxnmv_f32 (float32x2_t __a)
21806 {
21807 return __builtin_aarch64_reduc_smax_scal_v2sf (__a);
21808 }
21809
21810 __extension__ extern __inline float32_t
21811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmvq_f32(float32x4_t __a)21812 vmaxnmvq_f32 (float32x4_t __a)
21813 {
21814 return __builtin_aarch64_reduc_smax_scal_v4sf (__a);
21815 }
21816
21817 __extension__ extern __inline float64_t
21818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmvq_f64(float64x2_t __a)21819 vmaxnmvq_f64 (float64x2_t __a)
21820 {
21821 return __builtin_aarch64_reduc_smax_scal_v2df (__a);
21822 }
21823
21824 /* vmin */
21825
21826 __extension__ extern __inline float32x2_t
21827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_f32(float32x2_t __a,float32x2_t __b)21828 vmin_f32 (float32x2_t __a, float32x2_t __b)
21829 {
21830 return __builtin_aarch64_smin_nanv2sf (__a, __b);
21831 }
21832
21833 __extension__ extern __inline float64x1_t
21834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_f64(float64x1_t __a,float64x1_t __b)21835 vmin_f64 (float64x1_t __a, float64x1_t __b)
21836 {
21837 return (float64x1_t)
21838 { __builtin_aarch64_smin_nandf (vget_lane_f64 (__a, 0),
21839 vget_lane_f64 (__b, 0)) };
21840 }
21841
21842 __extension__ extern __inline int8x8_t
21843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_s8(int8x8_t __a,int8x8_t __b)21844 vmin_s8 (int8x8_t __a, int8x8_t __b)
21845 {
21846 return __builtin_aarch64_sminv8qi (__a, __b);
21847 }
21848
21849 __extension__ extern __inline int16x4_t
21850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_s16(int16x4_t __a,int16x4_t __b)21851 vmin_s16 (int16x4_t __a, int16x4_t __b)
21852 {
21853 return __builtin_aarch64_sminv4hi (__a, __b);
21854 }
21855
21856 __extension__ extern __inline int32x2_t
21857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_s32(int32x2_t __a,int32x2_t __b)21858 vmin_s32 (int32x2_t __a, int32x2_t __b)
21859 {
21860 return __builtin_aarch64_sminv2si (__a, __b);
21861 }
21862
21863 __extension__ extern __inline uint8x8_t
21864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_u8(uint8x8_t __a,uint8x8_t __b)21865 vmin_u8 (uint8x8_t __a, uint8x8_t __b)
21866 {
21867 return (uint8x8_t) __builtin_aarch64_uminv8qi ((int8x8_t) __a,
21868 (int8x8_t) __b);
21869 }
21870
21871 __extension__ extern __inline uint16x4_t
21872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_u16(uint16x4_t __a,uint16x4_t __b)21873 vmin_u16 (uint16x4_t __a, uint16x4_t __b)
21874 {
21875 return (uint16x4_t) __builtin_aarch64_uminv4hi ((int16x4_t) __a,
21876 (int16x4_t) __b);
21877 }
21878
21879 __extension__ extern __inline uint32x2_t
21880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_u32(uint32x2_t __a,uint32x2_t __b)21881 vmin_u32 (uint32x2_t __a, uint32x2_t __b)
21882 {
21883 return (uint32x2_t) __builtin_aarch64_uminv2si ((int32x2_t) __a,
21884 (int32x2_t) __b);
21885 }
21886
21887 __extension__ extern __inline float32x4_t
21888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_f32(float32x4_t __a,float32x4_t __b)21889 vminq_f32 (float32x4_t __a, float32x4_t __b)
21890 {
21891 return __builtin_aarch64_smin_nanv4sf (__a, __b);
21892 }
21893
21894 __extension__ extern __inline float64x2_t
21895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_f64(float64x2_t __a,float64x2_t __b)21896 vminq_f64 (float64x2_t __a, float64x2_t __b)
21897 {
21898 return __builtin_aarch64_smin_nanv2df (__a, __b);
21899 }
21900
21901 __extension__ extern __inline int8x16_t
21902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_s8(int8x16_t __a,int8x16_t __b)21903 vminq_s8 (int8x16_t __a, int8x16_t __b)
21904 {
21905 return __builtin_aarch64_sminv16qi (__a, __b);
21906 }
21907
21908 __extension__ extern __inline int16x8_t
21909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_s16(int16x8_t __a,int16x8_t __b)21910 vminq_s16 (int16x8_t __a, int16x8_t __b)
21911 {
21912 return __builtin_aarch64_sminv8hi (__a, __b);
21913 }
21914
21915 __extension__ extern __inline int32x4_t
21916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_s32(int32x4_t __a,int32x4_t __b)21917 vminq_s32 (int32x4_t __a, int32x4_t __b)
21918 {
21919 return __builtin_aarch64_sminv4si (__a, __b);
21920 }
21921
21922 __extension__ extern __inline uint8x16_t
21923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_u8(uint8x16_t __a,uint8x16_t __b)21924 vminq_u8 (uint8x16_t __a, uint8x16_t __b)
21925 {
21926 return (uint8x16_t) __builtin_aarch64_uminv16qi ((int8x16_t) __a,
21927 (int8x16_t) __b);
21928 }
21929
21930 __extension__ extern __inline uint16x8_t
21931 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_u16(uint16x8_t __a,uint16x8_t __b)21932 vminq_u16 (uint16x8_t __a, uint16x8_t __b)
21933 {
21934 return (uint16x8_t) __builtin_aarch64_uminv8hi ((int16x8_t) __a,
21935 (int16x8_t) __b);
21936 }
21937
21938 __extension__ extern __inline uint32x4_t
21939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_u32(uint32x4_t __a,uint32x4_t __b)21940 vminq_u32 (uint32x4_t __a, uint32x4_t __b)
21941 {
21942 return (uint32x4_t) __builtin_aarch64_uminv4si ((int32x4_t) __a,
21943 (int32x4_t) __b);
21944 }
21945
21946 /* vminnm */
21947
21948 __extension__ extern __inline float32x2_t
21949 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnm_f32(float32x2_t __a,float32x2_t __b)21950 vminnm_f32 (float32x2_t __a, float32x2_t __b)
21951 {
21952 return __builtin_aarch64_fminv2sf (__a, __b);
21953 }
21954
21955 __extension__ extern __inline float64x1_t
21956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnm_f64(float64x1_t __a,float64x1_t __b)21957 vminnm_f64 (float64x1_t __a, float64x1_t __b)
21958 {
21959 return (float64x1_t)
21960 { __builtin_aarch64_fmindf (vget_lane_f64 (__a, 0),
21961 vget_lane_f64 (__b, 0)) };
21962 }
21963
21964 __extension__ extern __inline float32x4_t
21965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmq_f32(float32x4_t __a,float32x4_t __b)21966 vminnmq_f32 (float32x4_t __a, float32x4_t __b)
21967 {
21968 return __builtin_aarch64_fminv4sf (__a, __b);
21969 }
21970
21971 __extension__ extern __inline float64x2_t
21972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmq_f64(float64x2_t __a,float64x2_t __b)21973 vminnmq_f64 (float64x2_t __a, float64x2_t __b)
21974 {
21975 return __builtin_aarch64_fminv2df (__a, __b);
21976 }
21977
21978 /* vminv */
21979
21980 __extension__ extern __inline float32_t
21981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_f32(float32x2_t __a)21982 vminv_f32 (float32x2_t __a)
21983 {
21984 return __builtin_aarch64_reduc_smin_nan_scal_v2sf (__a);
21985 }
21986
21987 __extension__ extern __inline int8_t
21988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_s8(int8x8_t __a)21989 vminv_s8 (int8x8_t __a)
21990 {
21991 return __builtin_aarch64_reduc_smin_scal_v8qi (__a);
21992 }
21993
21994 __extension__ extern __inline int16_t
21995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_s16(int16x4_t __a)21996 vminv_s16 (int16x4_t __a)
21997 {
21998 return __builtin_aarch64_reduc_smin_scal_v4hi (__a);
21999 }
22000
22001 __extension__ extern __inline int32_t
22002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_s32(int32x2_t __a)22003 vminv_s32 (int32x2_t __a)
22004 {
22005 return __builtin_aarch64_reduc_smin_scal_v2si (__a);
22006 }
22007
22008 __extension__ extern __inline uint8_t
22009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_u8(uint8x8_t __a)22010 vminv_u8 (uint8x8_t __a)
22011 {
22012 return __builtin_aarch64_reduc_umin_scal_v8qi_uu (__a);
22013 }
22014
22015 __extension__ extern __inline uint16_t
22016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_u16(uint16x4_t __a)22017 vminv_u16 (uint16x4_t __a)
22018 {
22019 return __builtin_aarch64_reduc_umin_scal_v4hi_uu (__a);
22020 }
22021
22022 __extension__ extern __inline uint32_t
22023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_u32(uint32x2_t __a)22024 vminv_u32 (uint32x2_t __a)
22025 {
22026 return __builtin_aarch64_reduc_umin_scal_v2si_uu (__a);
22027 }
22028
22029 __extension__ extern __inline float32_t
22030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_f32(float32x4_t __a)22031 vminvq_f32 (float32x4_t __a)
22032 {
22033 return __builtin_aarch64_reduc_smin_nan_scal_v4sf (__a);
22034 }
22035
22036 __extension__ extern __inline float64_t
22037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_f64(float64x2_t __a)22038 vminvq_f64 (float64x2_t __a)
22039 {
22040 return __builtin_aarch64_reduc_smin_nan_scal_v2df (__a);
22041 }
22042
22043 __extension__ extern __inline int8_t
22044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_s8(int8x16_t __a)22045 vminvq_s8 (int8x16_t __a)
22046 {
22047 return __builtin_aarch64_reduc_smin_scal_v16qi (__a);
22048 }
22049
22050 __extension__ extern __inline int16_t
22051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_s16(int16x8_t __a)22052 vminvq_s16 (int16x8_t __a)
22053 {
22054 return __builtin_aarch64_reduc_smin_scal_v8hi (__a);
22055 }
22056
22057 __extension__ extern __inline int32_t
22058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_s32(int32x4_t __a)22059 vminvq_s32 (int32x4_t __a)
22060 {
22061 return __builtin_aarch64_reduc_smin_scal_v4si (__a);
22062 }
22063
22064 __extension__ extern __inline uint8_t
22065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_u8(uint8x16_t __a)22066 vminvq_u8 (uint8x16_t __a)
22067 {
22068 return __builtin_aarch64_reduc_umin_scal_v16qi_uu (__a);
22069 }
22070
22071 __extension__ extern __inline uint16_t
22072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_u16(uint16x8_t __a)22073 vminvq_u16 (uint16x8_t __a)
22074 {
22075 return __builtin_aarch64_reduc_umin_scal_v8hi_uu (__a);
22076 }
22077
22078 __extension__ extern __inline uint32_t
22079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_u32(uint32x4_t __a)22080 vminvq_u32 (uint32x4_t __a)
22081 {
22082 return __builtin_aarch64_reduc_umin_scal_v4si_uu (__a);
22083 }
22084
22085 /* vminnmv */
22086
22087 __extension__ extern __inline float32_t
22088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmv_f32(float32x2_t __a)22089 vminnmv_f32 (float32x2_t __a)
22090 {
22091 return __builtin_aarch64_reduc_smin_scal_v2sf (__a);
22092 }
22093
22094 __extension__ extern __inline float32_t
22095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmvq_f32(float32x4_t __a)22096 vminnmvq_f32 (float32x4_t __a)
22097 {
22098 return __builtin_aarch64_reduc_smin_scal_v4sf (__a);
22099 }
22100
22101 __extension__ extern __inline float64_t
22102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmvq_f64(float64x2_t __a)22103 vminnmvq_f64 (float64x2_t __a)
22104 {
22105 return __builtin_aarch64_reduc_smin_scal_v2df (__a);
22106 }
22107
22108 /* vmla */
22109
22110 __extension__ extern __inline float32x2_t
22111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c)22112 vmla_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
22113 {
22114 return __a + __b * __c;
22115 }
22116
22117 __extension__ extern __inline float64x1_t
22118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c)22119 vmla_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
22120 {
22121 return __a + __b * __c;
22122 }
22123
22124 __extension__ extern __inline float32x4_t
22125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c)22126 vmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
22127 {
22128 return __a + __b * __c;
22129 }
22130
22131 __extension__ extern __inline float64x2_t
22132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_f64(float64x2_t __a,float64x2_t __b,float64x2_t __c)22133 vmlaq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
22134 {
22135 return __a + __b * __c;
22136 }
22137
22138 /* vmla_lane */
22139
22140 __extension__ extern __inline float32x2_t
22141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c,const int __lane)22142 vmla_lane_f32 (float32x2_t __a, float32x2_t __b,
22143 float32x2_t __c, const int __lane)
22144 {
22145 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22146 }
22147
22148 __extension__ extern __inline int16x4_t
22149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __lane)22150 vmla_lane_s16 (int16x4_t __a, int16x4_t __b,
22151 int16x4_t __c, const int __lane)
22152 {
22153 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22154 }
22155
22156 __extension__ extern __inline int32x2_t
22157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __lane)22158 vmla_lane_s32 (int32x2_t __a, int32x2_t __b,
22159 int32x2_t __c, const int __lane)
22160 {
22161 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22162 }
22163
22164 __extension__ extern __inline uint16x4_t
22165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c,const int __lane)22166 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b,
22167 uint16x4_t __c, const int __lane)
22168 {
22169 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22170 }
22171
22172 __extension__ extern __inline uint32x2_t
22173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_lane_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c,const int __lane)22174 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b,
22175 uint32x2_t __c, const int __lane)
22176 {
22177 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22178 }
22179
22180 /* vmla_laneq */
22181
22182 __extension__ extern __inline float32x2_t
22183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_laneq_f32(float32x2_t __a,float32x2_t __b,float32x4_t __c,const int __lane)22184 vmla_laneq_f32 (float32x2_t __a, float32x2_t __b,
22185 float32x4_t __c, const int __lane)
22186 {
22187 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22188 }
22189
22190 __extension__ extern __inline int16x4_t
22191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_laneq_s16(int16x4_t __a,int16x4_t __b,int16x8_t __c,const int __lane)22192 vmla_laneq_s16 (int16x4_t __a, int16x4_t __b,
22193 int16x8_t __c, const int __lane)
22194 {
22195 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22196 }
22197
22198 __extension__ extern __inline int32x2_t
22199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_laneq_s32(int32x2_t __a,int32x2_t __b,int32x4_t __c,const int __lane)22200 vmla_laneq_s32 (int32x2_t __a, int32x2_t __b,
22201 int32x4_t __c, const int __lane)
22202 {
22203 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22204 }
22205
22206 __extension__ extern __inline uint16x4_t
22207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_laneq_u16(uint16x4_t __a,uint16x4_t __b,uint16x8_t __c,const int __lane)22208 vmla_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
22209 uint16x8_t __c, const int __lane)
22210 {
22211 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22212 }
22213
22214 __extension__ extern __inline uint32x2_t
22215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmla_laneq_u32(uint32x2_t __a,uint32x2_t __b,uint32x4_t __c,const int __lane)22216 vmla_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
22217 uint32x4_t __c, const int __lane)
22218 {
22219 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22220 }
22221
22222 /* vmlaq_lane */
22223
22224 __extension__ extern __inline float32x4_t
22225 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_f32(float32x4_t __a,float32x4_t __b,float32x2_t __c,const int __lane)22226 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b,
22227 float32x2_t __c, const int __lane)
22228 {
22229 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22230 }
22231
22232 __extension__ extern __inline int16x8_t
22233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __lane)22234 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b,
22235 int16x4_t __c, const int __lane)
22236 {
22237 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22238 }
22239
22240 __extension__ extern __inline int32x4_t
22241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __lane)22242 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b,
22243 int32x2_t __c, const int __lane)
22244 {
22245 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22246 }
22247
22248 __extension__ extern __inline uint16x8_t
22249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_u16(uint16x8_t __a,uint16x8_t __b,uint16x4_t __c,const int __lane)22250 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
22251 uint16x4_t __c, const int __lane)
22252 {
22253 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22254 }
22255
22256 __extension__ extern __inline uint32x4_t
22257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_lane_u32(uint32x4_t __a,uint32x4_t __b,uint32x2_t __c,const int __lane)22258 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
22259 uint32x2_t __c, const int __lane)
22260 {
22261 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22262 }
22263
22264 /* vmlaq_laneq */
22265
22266 __extension__ extern __inline float32x4_t
22267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_laneq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c,const int __lane)22268 vmlaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
22269 float32x4_t __c, const int __lane)
22270 {
22271 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22272 }
22273
22274 __extension__ extern __inline int16x8_t
22275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_laneq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c,const int __lane)22276 vmlaq_laneq_s16 (int16x8_t __a, int16x8_t __b,
22277 int16x8_t __c, const int __lane)
22278 {
22279 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22280 }
22281
22282 __extension__ extern __inline int32x4_t
22283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_laneq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c,const int __lane)22284 vmlaq_laneq_s32 (int32x4_t __a, int32x4_t __b,
22285 int32x4_t __c, const int __lane)
22286 {
22287 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22288 }
22289
22290 __extension__ extern __inline uint16x8_t
22291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_laneq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c,const int __lane)22292 vmlaq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
22293 uint16x8_t __c, const int __lane)
22294 {
22295 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22296 }
22297
22298 __extension__ extern __inline uint32x4_t
22299 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlaq_laneq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __lane)22300 vmlaq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
22301 uint32x4_t __c, const int __lane)
22302 {
22303 return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
22304 }
22305
22306 /* vmls */
22307
22308 __extension__ extern __inline float32x2_t
22309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c)22310 vmls_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c)
22311 {
22312 return __a - __b * __c;
22313 }
22314
22315 __extension__ extern __inline float64x1_t
22316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_f64(float64x1_t __a,float64x1_t __b,float64x1_t __c)22317 vmls_f64 (float64x1_t __a, float64x1_t __b, float64x1_t __c)
22318 {
22319 return __a - __b * __c;
22320 }
22321
22322 __extension__ extern __inline float32x4_t
22323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c)22324 vmlsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c)
22325 {
22326 return __a - __b * __c;
22327 }
22328
22329 __extension__ extern __inline float64x2_t
22330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_f64(float64x2_t __a,float64x2_t __b,float64x2_t __c)22331 vmlsq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c)
22332 {
22333 return __a - __b * __c;
22334 }
22335
22336 /* vmls_lane */
22337
22338 __extension__ extern __inline float32x2_t
22339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_f32(float32x2_t __a,float32x2_t __b,float32x2_t __c,const int __lane)22340 vmls_lane_f32 (float32x2_t __a, float32x2_t __b,
22341 float32x2_t __c, const int __lane)
22342 {
22343 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22344 }
22345
22346 __extension__ extern __inline int16x4_t
22347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_s16(int16x4_t __a,int16x4_t __b,int16x4_t __c,const int __lane)22348 vmls_lane_s16 (int16x4_t __a, int16x4_t __b,
22349 int16x4_t __c, const int __lane)
22350 {
22351 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22352 }
22353
22354 __extension__ extern __inline int32x2_t
22355 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_s32(int32x2_t __a,int32x2_t __b,int32x2_t __c,const int __lane)22356 vmls_lane_s32 (int32x2_t __a, int32x2_t __b,
22357 int32x2_t __c, const int __lane)
22358 {
22359 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22360 }
22361
22362 __extension__ extern __inline uint16x4_t
22363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_u16(uint16x4_t __a,uint16x4_t __b,uint16x4_t __c,const int __lane)22364 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b,
22365 uint16x4_t __c, const int __lane)
22366 {
22367 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22368 }
22369
22370 __extension__ extern __inline uint32x2_t
22371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_lane_u32(uint32x2_t __a,uint32x2_t __b,uint32x2_t __c,const int __lane)22372 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b,
22373 uint32x2_t __c, const int __lane)
22374 {
22375 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22376 }
22377
22378 /* vmls_laneq */
22379
22380 __extension__ extern __inline float32x2_t
22381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_laneq_f32(float32x2_t __a,float32x2_t __b,float32x4_t __c,const int __lane)22382 vmls_laneq_f32 (float32x2_t __a, float32x2_t __b,
22383 float32x4_t __c, const int __lane)
22384 {
22385 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22386 }
22387
22388 __extension__ extern __inline int16x4_t
22389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_laneq_s16(int16x4_t __a,int16x4_t __b,int16x8_t __c,const int __lane)22390 vmls_laneq_s16 (int16x4_t __a, int16x4_t __b,
22391 int16x8_t __c, const int __lane)
22392 {
22393 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22394 }
22395
22396 __extension__ extern __inline int32x2_t
22397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_laneq_s32(int32x2_t __a,int32x2_t __b,int32x4_t __c,const int __lane)22398 vmls_laneq_s32 (int32x2_t __a, int32x2_t __b,
22399 int32x4_t __c, const int __lane)
22400 {
22401 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22402 }
22403
22404 __extension__ extern __inline uint16x4_t
22405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_laneq_u16(uint16x4_t __a,uint16x4_t __b,uint16x8_t __c,const int __lane)22406 vmls_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
22407 uint16x8_t __c, const int __lane)
22408 {
22409 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22410 }
22411
22412 __extension__ extern __inline uint32x2_t
22413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmls_laneq_u32(uint32x2_t __a,uint32x2_t __b,uint32x4_t __c,const int __lane)22414 vmls_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
22415 uint32x4_t __c, const int __lane)
22416 {
22417 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22418 }
22419
22420 /* vmlsq_lane */
22421
22422 __extension__ extern __inline float32x4_t
22423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_f32(float32x4_t __a,float32x4_t __b,float32x2_t __c,const int __lane)22424 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b,
22425 float32x2_t __c, const int __lane)
22426 {
22427 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22428 }
22429
22430 __extension__ extern __inline int16x8_t
22431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_s16(int16x8_t __a,int16x8_t __b,int16x4_t __c,const int __lane)22432 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b,
22433 int16x4_t __c, const int __lane)
22434 {
22435 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22436 }
22437
22438 __extension__ extern __inline int32x4_t
22439 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_s32(int32x4_t __a,int32x4_t __b,int32x2_t __c,const int __lane)22440 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b,
22441 int32x2_t __c, const int __lane)
22442 {
22443 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22444 }
22445
22446 __extension__ extern __inline uint16x8_t
22447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_u16(uint16x8_t __a,uint16x8_t __b,uint16x4_t __c,const int __lane)22448 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
22449 uint16x4_t __c, const int __lane)
22450 {
22451 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22452 }
22453
22454 __extension__ extern __inline uint32x4_t
22455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_lane_u32(uint32x4_t __a,uint32x4_t __b,uint32x2_t __c,const int __lane)22456 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
22457 uint32x2_t __c, const int __lane)
22458 {
22459 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22460 }
22461
22462 /* vmlsq_laneq */
22463
22464 __extension__ extern __inline float32x4_t
22465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_laneq_f32(float32x4_t __a,float32x4_t __b,float32x4_t __c,const int __lane)22466 vmlsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
22467 float32x4_t __c, const int __lane)
22468 {
22469 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22470 }
22471
22472 __extension__ extern __inline int16x8_t
22473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_laneq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c,const int __lane)22474 vmlsq_laneq_s16 (int16x8_t __a, int16x8_t __b,
22475 int16x8_t __c, const int __lane)
22476 {
22477 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22478 }
22479
22480 __extension__ extern __inline int32x4_t
22481 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_laneq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c,const int __lane)22482 vmlsq_laneq_s32 (int32x4_t __a, int32x4_t __b,
22483 int32x4_t __c, const int __lane)
22484 {
22485 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22486 }
22487 __extension__ extern __inline uint16x8_t
22488 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_laneq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c,const int __lane)22489 vmlsq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
22490 uint16x8_t __c, const int __lane)
22491 {
22492 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22493 }
22494
22495 __extension__ extern __inline uint32x4_t
22496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmlsq_laneq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __lane)22497 vmlsq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
22498 uint32x4_t __c, const int __lane)
22499 {
22500 return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
22501 }
22502
22503 /* vmov_n_ */
22504
22505 __extension__ extern __inline float16x4_t
22506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_f16(float16_t __a)22507 vmov_n_f16 (float16_t __a)
22508 {
22509 return vdup_n_f16 (__a);
22510 }
22511
22512 __extension__ extern __inline float32x2_t
22513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_f32(float32_t __a)22514 vmov_n_f32 (float32_t __a)
22515 {
22516 return vdup_n_f32 (__a);
22517 }
22518
22519 __extension__ extern __inline float64x1_t
22520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_f64(float64_t __a)22521 vmov_n_f64 (float64_t __a)
22522 {
22523 return (float64x1_t) {__a};
22524 }
22525
22526 __extension__ extern __inline poly8x8_t
22527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_p8(poly8_t __a)22528 vmov_n_p8 (poly8_t __a)
22529 {
22530 return vdup_n_p8 (__a);
22531 }
22532
22533 __extension__ extern __inline poly16x4_t
22534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_p16(poly16_t __a)22535 vmov_n_p16 (poly16_t __a)
22536 {
22537 return vdup_n_p16 (__a);
22538 }
22539
22540 __extension__ extern __inline poly64x1_t
22541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_p64(poly64_t __a)22542 vmov_n_p64 (poly64_t __a)
22543 {
22544 return vdup_n_p64 (__a);
22545 }
22546
22547 __extension__ extern __inline int8x8_t
22548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s8(int8_t __a)22549 vmov_n_s8 (int8_t __a)
22550 {
22551 return vdup_n_s8 (__a);
22552 }
22553
22554 __extension__ extern __inline int16x4_t
22555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s16(int16_t __a)22556 vmov_n_s16 (int16_t __a)
22557 {
22558 return vdup_n_s16 (__a);
22559 }
22560
22561 __extension__ extern __inline int32x2_t
22562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s32(int32_t __a)22563 vmov_n_s32 (int32_t __a)
22564 {
22565 return vdup_n_s32 (__a);
22566 }
22567
22568 __extension__ extern __inline int64x1_t
22569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_s64(int64_t __a)22570 vmov_n_s64 (int64_t __a)
22571 {
22572 return (int64x1_t) {__a};
22573 }
22574
22575 __extension__ extern __inline uint8x8_t
22576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u8(uint8_t __a)22577 vmov_n_u8 (uint8_t __a)
22578 {
22579 return vdup_n_u8 (__a);
22580 }
22581
22582 __extension__ extern __inline uint16x4_t
22583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u16(uint16_t __a)22584 vmov_n_u16 (uint16_t __a)
22585 {
22586 return vdup_n_u16 (__a);
22587 }
22588
22589 __extension__ extern __inline uint32x2_t
22590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u32(uint32_t __a)22591 vmov_n_u32 (uint32_t __a)
22592 {
22593 return vdup_n_u32 (__a);
22594 }
22595
22596 __extension__ extern __inline uint64x1_t
22597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmov_n_u64(uint64_t __a)22598 vmov_n_u64 (uint64_t __a)
22599 {
22600 return (uint64x1_t) {__a};
22601 }
22602
22603 __extension__ extern __inline float16x8_t
22604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_f16(float16_t __a)22605 vmovq_n_f16 (float16_t __a)
22606 {
22607 return vdupq_n_f16 (__a);
22608 }
22609
22610 __extension__ extern __inline float32x4_t
22611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_f32(float32_t __a)22612 vmovq_n_f32 (float32_t __a)
22613 {
22614 return vdupq_n_f32 (__a);
22615 }
22616
22617 __extension__ extern __inline float64x2_t
22618 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_f64(float64_t __a)22619 vmovq_n_f64 (float64_t __a)
22620 {
22621 return vdupq_n_f64 (__a);
22622 }
22623
22624 __extension__ extern __inline poly8x16_t
22625 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_p8(poly8_t __a)22626 vmovq_n_p8 (poly8_t __a)
22627 {
22628 return vdupq_n_p8 (__a);
22629 }
22630
22631 __extension__ extern __inline poly16x8_t
22632 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_p16(poly16_t __a)22633 vmovq_n_p16 (poly16_t __a)
22634 {
22635 return vdupq_n_p16 (__a);
22636 }
22637
22638 __extension__ extern __inline poly64x2_t
22639 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_p64(poly64_t __a)22640 vmovq_n_p64 (poly64_t __a)
22641 {
22642 return vdupq_n_p64 (__a);
22643 }
22644
22645 __extension__ extern __inline int8x16_t
22646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_s8(int8_t __a)22647 vmovq_n_s8 (int8_t __a)
22648 {
22649 return vdupq_n_s8 (__a);
22650 }
22651
22652 __extension__ extern __inline int16x8_t
22653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_s16(int16_t __a)22654 vmovq_n_s16 (int16_t __a)
22655 {
22656 return vdupq_n_s16 (__a);
22657 }
22658
22659 __extension__ extern __inline int32x4_t
22660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_s32(int32_t __a)22661 vmovq_n_s32 (int32_t __a)
22662 {
22663 return vdupq_n_s32 (__a);
22664 }
22665
22666 __extension__ extern __inline int64x2_t
22667 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_s64(int64_t __a)22668 vmovq_n_s64 (int64_t __a)
22669 {
22670 return vdupq_n_s64 (__a);
22671 }
22672
22673 __extension__ extern __inline uint8x16_t
22674 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_u8(uint8_t __a)22675 vmovq_n_u8 (uint8_t __a)
22676 {
22677 return vdupq_n_u8 (__a);
22678 }
22679
22680 __extension__ extern __inline uint16x8_t
22681 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_u16(uint16_t __a)22682 vmovq_n_u16 (uint16_t __a)
22683 {
22684 return vdupq_n_u16 (__a);
22685 }
22686
22687 __extension__ extern __inline uint32x4_t
22688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_u32(uint32_t __a)22689 vmovq_n_u32 (uint32_t __a)
22690 {
22691 return vdupq_n_u32 (__a);
22692 }
22693
22694 __extension__ extern __inline uint64x2_t
22695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmovq_n_u64(uint64_t __a)22696 vmovq_n_u64 (uint64_t __a)
22697 {
22698 return vdupq_n_u64 (__a);
22699 }
22700
22701 /* vmul_lane */
22702
22703 __extension__ extern __inline float32x2_t
22704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_f32(float32x2_t __a,float32x2_t __b,const int __lane)22705 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __lane)
22706 {
22707 return __a * __aarch64_vget_lane_any (__b, __lane);
22708 }
22709
22710 __extension__ extern __inline float64x1_t
22711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_f64(float64x1_t __a,float64x1_t __b,const int __lane)22712 vmul_lane_f64 (float64x1_t __a, float64x1_t __b, const int __lane)
22713 {
22714 return __a * __b;
22715 }
22716
22717 __extension__ extern __inline int16x4_t
22718 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_s16(int16x4_t __a,int16x4_t __b,const int __lane)22719 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __lane)
22720 {
22721 return __a * __aarch64_vget_lane_any (__b, __lane);
22722 }
22723
22724 __extension__ extern __inline int32x2_t
22725 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_s32(int32x2_t __a,int32x2_t __b,const int __lane)22726 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __lane)
22727 {
22728 return __a * __aarch64_vget_lane_any (__b, __lane);
22729 }
22730
22731 __extension__ extern __inline uint16x4_t
22732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_u16(uint16x4_t __a,uint16x4_t __b,const int __lane)22733 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __lane)
22734 {
22735 return __a * __aarch64_vget_lane_any (__b, __lane);
22736 }
22737
22738 __extension__ extern __inline uint32x2_t
22739 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_u32(uint32x2_t __a,uint32x2_t __b,const int __lane)22740 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __lane)
22741 {
22742 return __a * __aarch64_vget_lane_any (__b, __lane);
22743 }
22744
22745 /* vmuld_lane */
22746
22747 __extension__ extern __inline float64_t
22748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmuld_lane_f64(float64_t __a,float64x1_t __b,const int __lane)22749 vmuld_lane_f64 (float64_t __a, float64x1_t __b, const int __lane)
22750 {
22751 return __a * __aarch64_vget_lane_any (__b, __lane);
22752 }
22753
22754 __extension__ extern __inline float64_t
22755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmuld_laneq_f64(float64_t __a,float64x2_t __b,const int __lane)22756 vmuld_laneq_f64 (float64_t __a, float64x2_t __b, const int __lane)
22757 {
22758 return __a * __aarch64_vget_lane_any (__b, __lane);
22759 }
22760
22761 /* vmuls_lane */
22762
22763 __extension__ extern __inline float32_t
22764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmuls_lane_f32(float32_t __a,float32x2_t __b,const int __lane)22765 vmuls_lane_f32 (float32_t __a, float32x2_t __b, const int __lane)
22766 {
22767 return __a * __aarch64_vget_lane_any (__b, __lane);
22768 }
22769
22770 __extension__ extern __inline float32_t
22771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmuls_laneq_f32(float32_t __a,float32x4_t __b,const int __lane)22772 vmuls_laneq_f32 (float32_t __a, float32x4_t __b, const int __lane)
22773 {
22774 return __a * __aarch64_vget_lane_any (__b, __lane);
22775 }
22776
22777 /* vmul_laneq */
22778
22779 __extension__ extern __inline float32x2_t
22780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_f32(float32x2_t __a,float32x4_t __b,const int __lane)22781 vmul_laneq_f32 (float32x2_t __a, float32x4_t __b, const int __lane)
22782 {
22783 return __a * __aarch64_vget_lane_any (__b, __lane);
22784 }
22785
22786 __extension__ extern __inline float64x1_t
22787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_f64(float64x1_t __a,float64x2_t __b,const int __lane)22788 vmul_laneq_f64 (float64x1_t __a, float64x2_t __b, const int __lane)
22789 {
22790 return __a * __aarch64_vget_lane_any (__b, __lane);
22791 }
22792
22793 __extension__ extern __inline int16x4_t
22794 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_s16(int16x4_t __a,int16x8_t __b,const int __lane)22795 vmul_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __lane)
22796 {
22797 return __a * __aarch64_vget_lane_any (__b, __lane);
22798 }
22799
22800 __extension__ extern __inline int32x2_t
22801 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_s32(int32x2_t __a,int32x4_t __b,const int __lane)22802 vmul_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __lane)
22803 {
22804 return __a * __aarch64_vget_lane_any (__b, __lane);
22805 }
22806
22807 __extension__ extern __inline uint16x4_t
22808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_u16(uint16x4_t __a,uint16x8_t __b,const int __lane)22809 vmul_laneq_u16 (uint16x4_t __a, uint16x8_t __b, const int __lane)
22810 {
22811 return __a * __aarch64_vget_lane_any (__b, __lane);
22812 }
22813
22814 __extension__ extern __inline uint32x2_t
22815 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_u32(uint32x2_t __a,uint32x4_t __b,const int __lane)22816 vmul_laneq_u32 (uint32x2_t __a, uint32x4_t __b, const int __lane)
22817 {
22818 return __a * __aarch64_vget_lane_any (__b, __lane);
22819 }
22820
22821 /* vmul_n */
22822
22823 __extension__ extern __inline float64x1_t
22824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_f64(float64x1_t __a,float64_t __b)22825 vmul_n_f64 (float64x1_t __a, float64_t __b)
22826 {
22827 return (float64x1_t) { vget_lane_f64 (__a, 0) * __b };
22828 }
22829
22830 /* vmulq_lane */
22831
22832 __extension__ extern __inline float32x4_t
22833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_f32(float32x4_t __a,float32x2_t __b,const int __lane)22834 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __lane)
22835 {
22836 return __a * __aarch64_vget_lane_any (__b, __lane);
22837 }
22838
22839 __extension__ extern __inline float64x2_t
22840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_f64(float64x2_t __a,float64x1_t __b,const int __lane)22841 vmulq_lane_f64 (float64x2_t __a, float64x1_t __b, const int __lane)
22842 {
22843 __AARCH64_LANE_CHECK (__a, __lane);
22844 return __a * __b[0];
22845 }
22846
22847 __extension__ extern __inline int16x8_t
22848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_s16(int16x8_t __a,int16x4_t __b,const int __lane)22849 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __lane)
22850 {
22851 return __a * __aarch64_vget_lane_any (__b, __lane);
22852 }
22853
22854 __extension__ extern __inline int32x4_t
22855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_s32(int32x4_t __a,int32x2_t __b,const int __lane)22856 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __lane)
22857 {
22858 return __a * __aarch64_vget_lane_any (__b, __lane);
22859 }
22860
22861 __extension__ extern __inline uint16x8_t
22862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_u16(uint16x8_t __a,uint16x4_t __b,const int __lane)22863 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __lane)
22864 {
22865 return __a * __aarch64_vget_lane_any (__b, __lane);
22866 }
22867
22868 __extension__ extern __inline uint32x4_t
22869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_u32(uint32x4_t __a,uint32x2_t __b,const int __lane)22870 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __lane)
22871 {
22872 return __a * __aarch64_vget_lane_any (__b, __lane);
22873 }
22874
22875 /* vmulq_laneq */
22876
22877 __extension__ extern __inline float32x4_t
22878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_f32(float32x4_t __a,float32x4_t __b,const int __lane)22879 vmulq_laneq_f32 (float32x4_t __a, float32x4_t __b, const int __lane)
22880 {
22881 return __a * __aarch64_vget_lane_any (__b, __lane);
22882 }
22883
22884 __extension__ extern __inline float64x2_t
22885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_f64(float64x2_t __a,float64x2_t __b,const int __lane)22886 vmulq_laneq_f64 (float64x2_t __a, float64x2_t __b, const int __lane)
22887 {
22888 return __a * __aarch64_vget_lane_any (__b, __lane);
22889 }
22890
22891 __extension__ extern __inline int16x8_t
22892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_s16(int16x8_t __a,int16x8_t __b,const int __lane)22893 vmulq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __lane)
22894 {
22895 return __a * __aarch64_vget_lane_any (__b, __lane);
22896 }
22897
22898 __extension__ extern __inline int32x4_t
22899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_s32(int32x4_t __a,int32x4_t __b,const int __lane)22900 vmulq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __lane)
22901 {
22902 return __a * __aarch64_vget_lane_any (__b, __lane);
22903 }
22904
22905 __extension__ extern __inline uint16x8_t
22906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_u16(uint16x8_t __a,uint16x8_t __b,const int __lane)22907 vmulq_laneq_u16 (uint16x8_t __a, uint16x8_t __b, const int __lane)
22908 {
22909 return __a * __aarch64_vget_lane_any (__b, __lane);
22910 }
22911
22912 __extension__ extern __inline uint32x4_t
22913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_u32(uint32x4_t __a,uint32x4_t __b,const int __lane)22914 vmulq_laneq_u32 (uint32x4_t __a, uint32x4_t __b, const int __lane)
22915 {
22916 return __a * __aarch64_vget_lane_any (__b, __lane);
22917 }
22918
22919 /* vmul_n. */
22920
22921 __extension__ extern __inline float32x2_t
22922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_f32(float32x2_t __a,float32_t __b)22923 vmul_n_f32 (float32x2_t __a, float32_t __b)
22924 {
22925 return __a * __b;
22926 }
22927
22928 __extension__ extern __inline float32x4_t
22929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_f32(float32x4_t __a,float32_t __b)22930 vmulq_n_f32 (float32x4_t __a, float32_t __b)
22931 {
22932 return __a * __b;
22933 }
22934
22935 __extension__ extern __inline float64x2_t
22936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_f64(float64x2_t __a,float64_t __b)22937 vmulq_n_f64 (float64x2_t __a, float64_t __b)
22938 {
22939 return __a * __b;
22940 }
22941
22942 __extension__ extern __inline int16x4_t
22943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_s16(int16x4_t __a,int16_t __b)22944 vmul_n_s16 (int16x4_t __a, int16_t __b)
22945 {
22946 return __a * __b;
22947 }
22948
22949 __extension__ extern __inline int16x8_t
22950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_s16(int16x8_t __a,int16_t __b)22951 vmulq_n_s16 (int16x8_t __a, int16_t __b)
22952 {
22953 return __a * __b;
22954 }
22955
22956 __extension__ extern __inline int32x2_t
22957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_s32(int32x2_t __a,int32_t __b)22958 vmul_n_s32 (int32x2_t __a, int32_t __b)
22959 {
22960 return __a * __b;
22961 }
22962
22963 __extension__ extern __inline int32x4_t
22964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_s32(int32x4_t __a,int32_t __b)22965 vmulq_n_s32 (int32x4_t __a, int32_t __b)
22966 {
22967 return __a * __b;
22968 }
22969
22970 __extension__ extern __inline uint16x4_t
22971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_u16(uint16x4_t __a,uint16_t __b)22972 vmul_n_u16 (uint16x4_t __a, uint16_t __b)
22973 {
22974 return __a * __b;
22975 }
22976
22977 __extension__ extern __inline uint16x8_t
22978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_u16(uint16x8_t __a,uint16_t __b)22979 vmulq_n_u16 (uint16x8_t __a, uint16_t __b)
22980 {
22981 return __a * __b;
22982 }
22983
22984 __extension__ extern __inline uint32x2_t
22985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_u32(uint32x2_t __a,uint32_t __b)22986 vmul_n_u32 (uint32x2_t __a, uint32_t __b)
22987 {
22988 return __a * __b;
22989 }
22990
22991 __extension__ extern __inline uint32x4_t
22992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_u32(uint32x4_t __a,uint32_t __b)22993 vmulq_n_u32 (uint32x4_t __a, uint32_t __b)
22994 {
22995 return __a * __b;
22996 }
22997
22998 /* vmvn */
22999
23000 __extension__ extern __inline poly8x8_t
23001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_p8(poly8x8_t __a)23002 vmvn_p8 (poly8x8_t __a)
23003 {
23004 return (poly8x8_t) ~((int8x8_t) __a);
23005 }
23006
23007 __extension__ extern __inline int8x8_t
23008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_s8(int8x8_t __a)23009 vmvn_s8 (int8x8_t __a)
23010 {
23011 return ~__a;
23012 }
23013
23014 __extension__ extern __inline int16x4_t
23015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_s16(int16x4_t __a)23016 vmvn_s16 (int16x4_t __a)
23017 {
23018 return ~__a;
23019 }
23020
23021 __extension__ extern __inline int32x2_t
23022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_s32(int32x2_t __a)23023 vmvn_s32 (int32x2_t __a)
23024 {
23025 return ~__a;
23026 }
23027
23028 __extension__ extern __inline uint8x8_t
23029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_u8(uint8x8_t __a)23030 vmvn_u8 (uint8x8_t __a)
23031 {
23032 return ~__a;
23033 }
23034
23035 __extension__ extern __inline uint16x4_t
23036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_u16(uint16x4_t __a)23037 vmvn_u16 (uint16x4_t __a)
23038 {
23039 return ~__a;
23040 }
23041
23042 __extension__ extern __inline uint32x2_t
23043 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvn_u32(uint32x2_t __a)23044 vmvn_u32 (uint32x2_t __a)
23045 {
23046 return ~__a;
23047 }
23048
23049 __extension__ extern __inline poly8x16_t
23050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_p8(poly8x16_t __a)23051 vmvnq_p8 (poly8x16_t __a)
23052 {
23053 return (poly8x16_t) ~((int8x16_t) __a);
23054 }
23055
23056 __extension__ extern __inline int8x16_t
23057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_s8(int8x16_t __a)23058 vmvnq_s8 (int8x16_t __a)
23059 {
23060 return ~__a;
23061 }
23062
23063 __extension__ extern __inline int16x8_t
23064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_s16(int16x8_t __a)23065 vmvnq_s16 (int16x8_t __a)
23066 {
23067 return ~__a;
23068 }
23069
23070 __extension__ extern __inline int32x4_t
23071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_s32(int32x4_t __a)23072 vmvnq_s32 (int32x4_t __a)
23073 {
23074 return ~__a;
23075 }
23076
23077 __extension__ extern __inline uint8x16_t
23078 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_u8(uint8x16_t __a)23079 vmvnq_u8 (uint8x16_t __a)
23080 {
23081 return ~__a;
23082 }
23083
23084 __extension__ extern __inline uint16x8_t
23085 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_u16(uint16x8_t __a)23086 vmvnq_u16 (uint16x8_t __a)
23087 {
23088 return ~__a;
23089 }
23090
23091 __extension__ extern __inline uint32x4_t
23092 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmvnq_u32(uint32x4_t __a)23093 vmvnq_u32 (uint32x4_t __a)
23094 {
23095 return ~__a;
23096 }
23097
23098 /* vneg */
23099
23100 __extension__ extern __inline float32x2_t
23101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_f32(float32x2_t __a)23102 vneg_f32 (float32x2_t __a)
23103 {
23104 return -__a;
23105 }
23106
23107 __extension__ extern __inline float64x1_t
23108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_f64(float64x1_t __a)23109 vneg_f64 (float64x1_t __a)
23110 {
23111 return -__a;
23112 }
23113
23114 __extension__ extern __inline int8x8_t
23115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_s8(int8x8_t __a)23116 vneg_s8 (int8x8_t __a)
23117 {
23118 return -__a;
23119 }
23120
23121 __extension__ extern __inline int16x4_t
23122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_s16(int16x4_t __a)23123 vneg_s16 (int16x4_t __a)
23124 {
23125 return -__a;
23126 }
23127
23128 __extension__ extern __inline int32x2_t
23129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_s32(int32x2_t __a)23130 vneg_s32 (int32x2_t __a)
23131 {
23132 return -__a;
23133 }
23134
23135 __extension__ extern __inline int64x1_t
23136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_s64(int64x1_t __a)23137 vneg_s64 (int64x1_t __a)
23138 {
23139 return -__a;
23140 }
23141
23142 /* According to the ACLE, the negative of the minimum (signed)
23143 value is itself. This leads to a semantics mismatch, as this is
23144 undefined behaviour in C. The value range predictor is not
23145 aware that the negation of a negative number can still be negative
23146 and it may try to fold the expression. See the test in
23147 gcc.target/aarch64/vnegd_s64.c for an example.
23148
23149 The cast below tricks the value range predictor to include
23150 INT64_MIN in the range it computes. So for x in the range
23151 [INT64_MIN, y] the range prediction after vnegd_s64 (x) will
23152 be ~[INT64_MIN + 1, y]. */
23153
23154 __extension__ extern __inline int64_t
23155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegd_s64(int64_t __a)23156 vnegd_s64 (int64_t __a)
23157 {
23158 return - (uint64_t) __a;
23159 }
23160
23161 __extension__ extern __inline float32x4_t
23162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_f32(float32x4_t __a)23163 vnegq_f32 (float32x4_t __a)
23164 {
23165 return -__a;
23166 }
23167
23168 __extension__ extern __inline float64x2_t
23169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_f64(float64x2_t __a)23170 vnegq_f64 (float64x2_t __a)
23171 {
23172 return -__a;
23173 }
23174
23175 __extension__ extern __inline int8x16_t
23176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_s8(int8x16_t __a)23177 vnegq_s8 (int8x16_t __a)
23178 {
23179 return -__a;
23180 }
23181
23182 __extension__ extern __inline int16x8_t
23183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_s16(int16x8_t __a)23184 vnegq_s16 (int16x8_t __a)
23185 {
23186 return -__a;
23187 }
23188
23189 __extension__ extern __inline int32x4_t
23190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_s32(int32x4_t __a)23191 vnegq_s32 (int32x4_t __a)
23192 {
23193 return -__a;
23194 }
23195
23196 __extension__ extern __inline int64x2_t
23197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_s64(int64x2_t __a)23198 vnegq_s64 (int64x2_t __a)
23199 {
23200 return -__a;
23201 }
23202
23203 /* vpadd */
23204
23205 __extension__ extern __inline float32x2_t
23206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_f32(float32x2_t __a,float32x2_t __b)23207 vpadd_f32 (float32x2_t __a, float32x2_t __b)
23208 {
23209 return __builtin_aarch64_faddpv2sf (__a, __b);
23210 }
23211
23212 __extension__ extern __inline float32x4_t
23213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_f32(float32x4_t __a,float32x4_t __b)23214 vpaddq_f32 (float32x4_t __a, float32x4_t __b)
23215 {
23216 return __builtin_aarch64_faddpv4sf (__a, __b);
23217 }
23218
23219 __extension__ extern __inline float64x2_t
23220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_f64(float64x2_t __a,float64x2_t __b)23221 vpaddq_f64 (float64x2_t __a, float64x2_t __b)
23222 {
23223 return __builtin_aarch64_faddpv2df (__a, __b);
23224 }
23225
23226 __extension__ extern __inline int8x8_t
23227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_s8(int8x8_t __a,int8x8_t __b)23228 vpadd_s8 (int8x8_t __a, int8x8_t __b)
23229 {
23230 return __builtin_aarch64_addpv8qi (__a, __b);
23231 }
23232
23233 __extension__ extern __inline int16x4_t
23234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_s16(int16x4_t __a,int16x4_t __b)23235 vpadd_s16 (int16x4_t __a, int16x4_t __b)
23236 {
23237 return __builtin_aarch64_addpv4hi (__a, __b);
23238 }
23239
23240 __extension__ extern __inline int32x2_t
23241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_s32(int32x2_t __a,int32x2_t __b)23242 vpadd_s32 (int32x2_t __a, int32x2_t __b)
23243 {
23244 return __builtin_aarch64_addpv2si (__a, __b);
23245 }
23246
23247 __extension__ extern __inline uint8x8_t
23248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_u8(uint8x8_t __a,uint8x8_t __b)23249 vpadd_u8 (uint8x8_t __a, uint8x8_t __b)
23250 {
23251 return (uint8x8_t) __builtin_aarch64_addpv8qi ((int8x8_t) __a,
23252 (int8x8_t) __b);
23253 }
23254
23255 __extension__ extern __inline uint16x4_t
23256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_u16(uint16x4_t __a,uint16x4_t __b)23257 vpadd_u16 (uint16x4_t __a, uint16x4_t __b)
23258 {
23259 return (uint16x4_t) __builtin_aarch64_addpv4hi ((int16x4_t) __a,
23260 (int16x4_t) __b);
23261 }
23262
23263 __extension__ extern __inline uint32x2_t
23264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_u32(uint32x2_t __a,uint32x2_t __b)23265 vpadd_u32 (uint32x2_t __a, uint32x2_t __b)
23266 {
23267 return (uint32x2_t) __builtin_aarch64_addpv2si ((int32x2_t) __a,
23268 (int32x2_t) __b);
23269 }
23270
23271 __extension__ extern __inline float32_t
23272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadds_f32(float32x2_t __a)23273 vpadds_f32 (float32x2_t __a)
23274 {
23275 return __builtin_aarch64_reduc_plus_scal_v2sf (__a);
23276 }
23277
23278 __extension__ extern __inline float64_t
23279 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddd_f64(float64x2_t __a)23280 vpaddd_f64 (float64x2_t __a)
23281 {
23282 return __builtin_aarch64_reduc_plus_scal_v2df (__a);
23283 }
23284
23285 __extension__ extern __inline int64_t
23286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddd_s64(int64x2_t __a)23287 vpaddd_s64 (int64x2_t __a)
23288 {
23289 return __builtin_aarch64_addpdi (__a);
23290 }
23291
23292 __extension__ extern __inline uint64_t
23293 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddd_u64(uint64x2_t __a)23294 vpaddd_u64 (uint64x2_t __a)
23295 {
23296 return __builtin_aarch64_addpdi ((int64x2_t) __a);
23297 }
23298
23299 /* vqabs */
23300
23301 __extension__ extern __inline int64x2_t
23302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsq_s64(int64x2_t __a)23303 vqabsq_s64 (int64x2_t __a)
23304 {
23305 return (int64x2_t) __builtin_aarch64_sqabsv2di (__a);
23306 }
23307
23308 __extension__ extern __inline int8_t
23309 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsb_s8(int8_t __a)23310 vqabsb_s8 (int8_t __a)
23311 {
23312 return (int8_t) __builtin_aarch64_sqabsqi (__a);
23313 }
23314
23315 __extension__ extern __inline int16_t
23316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsh_s16(int16_t __a)23317 vqabsh_s16 (int16_t __a)
23318 {
23319 return (int16_t) __builtin_aarch64_sqabshi (__a);
23320 }
23321
23322 __extension__ extern __inline int32_t
23323 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabss_s32(int32_t __a)23324 vqabss_s32 (int32_t __a)
23325 {
23326 return (int32_t) __builtin_aarch64_sqabssi (__a);
23327 }
23328
23329 __extension__ extern __inline int64_t
23330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqabsd_s64(int64_t __a)23331 vqabsd_s64 (int64_t __a)
23332 {
23333 return __builtin_aarch64_sqabsdi (__a);
23334 }
23335
23336 /* vqadd */
23337
23338 __extension__ extern __inline int8_t
23339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddb_s8(int8_t __a,int8_t __b)23340 vqaddb_s8 (int8_t __a, int8_t __b)
23341 {
23342 return (int8_t) __builtin_aarch64_sqaddqi (__a, __b);
23343 }
23344
23345 __extension__ extern __inline int16_t
23346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddh_s16(int16_t __a,int16_t __b)23347 vqaddh_s16 (int16_t __a, int16_t __b)
23348 {
23349 return (int16_t) __builtin_aarch64_sqaddhi (__a, __b);
23350 }
23351
23352 __extension__ extern __inline int32_t
23353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadds_s32(int32_t __a,int32_t __b)23354 vqadds_s32 (int32_t __a, int32_t __b)
23355 {
23356 return (int32_t) __builtin_aarch64_sqaddsi (__a, __b);
23357 }
23358
23359 __extension__ extern __inline int64_t
23360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddd_s64(int64_t __a,int64_t __b)23361 vqaddd_s64 (int64_t __a, int64_t __b)
23362 {
23363 return __builtin_aarch64_sqadddi (__a, __b);
23364 }
23365
23366 __extension__ extern __inline uint8_t
23367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddb_u8(uint8_t __a,uint8_t __b)23368 vqaddb_u8 (uint8_t __a, uint8_t __b)
23369 {
23370 return (uint8_t) __builtin_aarch64_uqaddqi_uuu (__a, __b);
23371 }
23372
23373 __extension__ extern __inline uint16_t
23374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddh_u16(uint16_t __a,uint16_t __b)23375 vqaddh_u16 (uint16_t __a, uint16_t __b)
23376 {
23377 return (uint16_t) __builtin_aarch64_uqaddhi_uuu (__a, __b);
23378 }
23379
23380 __extension__ extern __inline uint32_t
23381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqadds_u32(uint32_t __a,uint32_t __b)23382 vqadds_u32 (uint32_t __a, uint32_t __b)
23383 {
23384 return (uint32_t) __builtin_aarch64_uqaddsi_uuu (__a, __b);
23385 }
23386
23387 __extension__ extern __inline uint64_t
23388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqaddd_u64(uint64_t __a,uint64_t __b)23389 vqaddd_u64 (uint64_t __a, uint64_t __b)
23390 {
23391 return __builtin_aarch64_uqadddi_uuu (__a, __b);
23392 }
23393
23394 /* vqdmlal */
23395
23396 __extension__ extern __inline int32x4_t
23397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)23398 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
23399 {
23400 return __builtin_aarch64_sqdmlalv4hi (__a, __b, __c);
23401 }
23402
23403 __extension__ extern __inline int32x4_t
23404 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_s16(int32x4_t __a,int16x8_t __b,int16x8_t __c)23405 vqdmlal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
23406 {
23407 return __builtin_aarch64_sqdmlal2v8hi (__a, __b, __c);
23408 }
23409
23410 __extension__ extern __inline int32x4_t
23411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_lane_s16(int32x4_t __a,int16x8_t __b,int16x4_t __c,int const __d)23412 vqdmlal_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
23413 int const __d)
23414 {
23415 return __builtin_aarch64_sqdmlal2_lanev8hi (__a, __b, __c, __d);
23416 }
23417
23418 __extension__ extern __inline int32x4_t
23419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_laneq_s16(int32x4_t __a,int16x8_t __b,int16x8_t __c,int const __d)23420 vqdmlal_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
23421 int const __d)
23422 {
23423 return __builtin_aarch64_sqdmlal2_laneqv8hi (__a, __b, __c, __d);
23424 }
23425
23426 __extension__ extern __inline int32x4_t
23427 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_n_s16(int32x4_t __a,int16x8_t __b,int16_t __c)23428 vqdmlal_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
23429 {
23430 return __builtin_aarch64_sqdmlal2_nv8hi (__a, __b, __c);
23431 }
23432
23433 __extension__ extern __inline int32x4_t
23434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_lane_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c,int const __d)23435 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
23436 {
23437 return __builtin_aarch64_sqdmlal_lanev4hi (__a, __b, __c, __d);
23438 }
23439
23440 __extension__ extern __inline int32x4_t
23441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_laneq_s16(int32x4_t __a,int16x4_t __b,int16x8_t __c,int const __d)23442 vqdmlal_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
23443 {
23444 return __builtin_aarch64_sqdmlal_laneqv4hi (__a, __b, __c, __d);
23445 }
23446
23447 __extension__ extern __inline int32x4_t
23448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_n_s16(int32x4_t __a,int16x4_t __b,int16_t __c)23449 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
23450 {
23451 return __builtin_aarch64_sqdmlal_nv4hi (__a, __b, __c);
23452 }
23453
23454 __extension__ extern __inline int64x2_t
23455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)23456 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
23457 {
23458 return __builtin_aarch64_sqdmlalv2si (__a, __b, __c);
23459 }
23460
23461 __extension__ extern __inline int64x2_t
23462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_s32(int64x2_t __a,int32x4_t __b,int32x4_t __c)23463 vqdmlal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
23464 {
23465 return __builtin_aarch64_sqdmlal2v4si (__a, __b, __c);
23466 }
23467
23468 __extension__ extern __inline int64x2_t
23469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_lane_s32(int64x2_t __a,int32x4_t __b,int32x2_t __c,int const __d)23470 vqdmlal_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
23471 int const __d)
23472 {
23473 return __builtin_aarch64_sqdmlal2_lanev4si (__a, __b, __c, __d);
23474 }
23475
23476 __extension__ extern __inline int64x2_t
23477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_laneq_s32(int64x2_t __a,int32x4_t __b,int32x4_t __c,int const __d)23478 vqdmlal_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
23479 int const __d)
23480 {
23481 return __builtin_aarch64_sqdmlal2_laneqv4si (__a, __b, __c, __d);
23482 }
23483
23484 __extension__ extern __inline int64x2_t
23485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_high_n_s32(int64x2_t __a,int32x4_t __b,int32_t __c)23486 vqdmlal_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
23487 {
23488 return __builtin_aarch64_sqdmlal2_nv4si (__a, __b, __c);
23489 }
23490
23491 __extension__ extern __inline int64x2_t
23492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_lane_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c,int const __d)23493 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
23494 {
23495 return __builtin_aarch64_sqdmlal_lanev2si (__a, __b, __c, __d);
23496 }
23497
23498 __extension__ extern __inline int64x2_t
23499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_laneq_s32(int64x2_t __a,int32x2_t __b,int32x4_t __c,int const __d)23500 vqdmlal_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
23501 {
23502 return __builtin_aarch64_sqdmlal_laneqv2si (__a, __b, __c, __d);
23503 }
23504
23505 __extension__ extern __inline int64x2_t
23506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlal_n_s32(int64x2_t __a,int32x2_t __b,int32_t __c)23507 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
23508 {
23509 return __builtin_aarch64_sqdmlal_nv2si (__a, __b, __c);
23510 }
23511
23512 __extension__ extern __inline int32_t
23513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlalh_s16(int32_t __a,int16_t __b,int16_t __c)23514 vqdmlalh_s16 (int32_t __a, int16_t __b, int16_t __c)
23515 {
23516 return __builtin_aarch64_sqdmlalhi (__a, __b, __c);
23517 }
23518
23519 __extension__ extern __inline int32_t
23520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlalh_lane_s16(int32_t __a,int16_t __b,int16x4_t __c,const int __d)23521 vqdmlalh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
23522 {
23523 return __builtin_aarch64_sqdmlal_lanehi (__a, __b, __c, __d);
23524 }
23525
23526 __extension__ extern __inline int32_t
23527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlalh_laneq_s16(int32_t __a,int16_t __b,int16x8_t __c,const int __d)23528 vqdmlalh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
23529 {
23530 return __builtin_aarch64_sqdmlal_laneqhi (__a, __b, __c, __d);
23531 }
23532
23533 __extension__ extern __inline int64_t
23534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlals_s32(int64_t __a,int32_t __b,int32_t __c)23535 vqdmlals_s32 (int64_t __a, int32_t __b, int32_t __c)
23536 {
23537 return __builtin_aarch64_sqdmlalsi (__a, __b, __c);
23538 }
23539
23540 __extension__ extern __inline int64_t
23541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlals_lane_s32(int64_t __a,int32_t __b,int32x2_t __c,const int __d)23542 vqdmlals_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
23543 {
23544 return __builtin_aarch64_sqdmlal_lanesi (__a, __b, __c, __d);
23545 }
23546
23547 __extension__ extern __inline int64_t
23548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlals_laneq_s32(int64_t __a,int32_t __b,int32x4_t __c,const int __d)23549 vqdmlals_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
23550 {
23551 return __builtin_aarch64_sqdmlal_laneqsi (__a, __b, __c, __d);
23552 }
23553
23554 /* vqdmlsl */
23555
23556 __extension__ extern __inline int32x4_t
23557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c)23558 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c)
23559 {
23560 return __builtin_aarch64_sqdmlslv4hi (__a, __b, __c);
23561 }
23562
23563 __extension__ extern __inline int32x4_t
23564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_s16(int32x4_t __a,int16x8_t __b,int16x8_t __c)23565 vqdmlsl_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c)
23566 {
23567 return __builtin_aarch64_sqdmlsl2v8hi (__a, __b, __c);
23568 }
23569
23570 __extension__ extern __inline int32x4_t
23571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_lane_s16(int32x4_t __a,int16x8_t __b,int16x4_t __c,int const __d)23572 vqdmlsl_high_lane_s16 (int32x4_t __a, int16x8_t __b, int16x4_t __c,
23573 int const __d)
23574 {
23575 return __builtin_aarch64_sqdmlsl2_lanev8hi (__a, __b, __c, __d);
23576 }
23577
23578 __extension__ extern __inline int32x4_t
23579 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_laneq_s16(int32x4_t __a,int16x8_t __b,int16x8_t __c,int const __d)23580 vqdmlsl_high_laneq_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c,
23581 int const __d)
23582 {
23583 return __builtin_aarch64_sqdmlsl2_laneqv8hi (__a, __b, __c, __d);
23584 }
23585
23586 __extension__ extern __inline int32x4_t
23587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_n_s16(int32x4_t __a,int16x8_t __b,int16_t __c)23588 vqdmlsl_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c)
23589 {
23590 return __builtin_aarch64_sqdmlsl2_nv8hi (__a, __b, __c);
23591 }
23592
23593 __extension__ extern __inline int32x4_t
23594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_lane_s16(int32x4_t __a,int16x4_t __b,int16x4_t __c,int const __d)23595 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, int const __d)
23596 {
23597 return __builtin_aarch64_sqdmlsl_lanev4hi (__a, __b, __c, __d);
23598 }
23599
23600 __extension__ extern __inline int32x4_t
23601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_laneq_s16(int32x4_t __a,int16x4_t __b,int16x8_t __c,int const __d)23602 vqdmlsl_laneq_s16 (int32x4_t __a, int16x4_t __b, int16x8_t __c, int const __d)
23603 {
23604 return __builtin_aarch64_sqdmlsl_laneqv4hi (__a, __b, __c, __d);
23605 }
23606
23607 __extension__ extern __inline int32x4_t
23608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_n_s16(int32x4_t __a,int16x4_t __b,int16_t __c)23609 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c)
23610 {
23611 return __builtin_aarch64_sqdmlsl_nv4hi (__a, __b, __c);
23612 }
23613
23614 __extension__ extern __inline int64x2_t
23615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c)23616 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c)
23617 {
23618 return __builtin_aarch64_sqdmlslv2si (__a, __b, __c);
23619 }
23620
23621 __extension__ extern __inline int64x2_t
23622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_s32(int64x2_t __a,int32x4_t __b,int32x4_t __c)23623 vqdmlsl_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c)
23624 {
23625 return __builtin_aarch64_sqdmlsl2v4si (__a, __b, __c);
23626 }
23627
23628 __extension__ extern __inline int64x2_t
23629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_lane_s32(int64x2_t __a,int32x4_t __b,int32x2_t __c,int const __d)23630 vqdmlsl_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c,
23631 int const __d)
23632 {
23633 return __builtin_aarch64_sqdmlsl2_lanev4si (__a, __b, __c, __d);
23634 }
23635
23636 __extension__ extern __inline int64x2_t
23637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_laneq_s32(int64x2_t __a,int32x4_t __b,int32x4_t __c,int const __d)23638 vqdmlsl_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c,
23639 int const __d)
23640 {
23641 return __builtin_aarch64_sqdmlsl2_laneqv4si (__a, __b, __c, __d);
23642 }
23643
23644 __extension__ extern __inline int64x2_t
23645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_high_n_s32(int64x2_t __a,int32x4_t __b,int32_t __c)23646 vqdmlsl_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c)
23647 {
23648 return __builtin_aarch64_sqdmlsl2_nv4si (__a, __b, __c);
23649 }
23650
23651 __extension__ extern __inline int64x2_t
23652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_lane_s32(int64x2_t __a,int32x2_t __b,int32x2_t __c,int const __d)23653 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, int const __d)
23654 {
23655 return __builtin_aarch64_sqdmlsl_lanev2si (__a, __b, __c, __d);
23656 }
23657
23658 __extension__ extern __inline int64x2_t
23659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_laneq_s32(int64x2_t __a,int32x2_t __b,int32x4_t __c,int const __d)23660 vqdmlsl_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c, int const __d)
23661 {
23662 return __builtin_aarch64_sqdmlsl_laneqv2si (__a, __b, __c, __d);
23663 }
23664
23665 __extension__ extern __inline int64x2_t
23666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsl_n_s32(int64x2_t __a,int32x2_t __b,int32_t __c)23667 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c)
23668 {
23669 return __builtin_aarch64_sqdmlsl_nv2si (__a, __b, __c);
23670 }
23671
23672 __extension__ extern __inline int32_t
23673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlslh_s16(int32_t __a,int16_t __b,int16_t __c)23674 vqdmlslh_s16 (int32_t __a, int16_t __b, int16_t __c)
23675 {
23676 return __builtin_aarch64_sqdmlslhi (__a, __b, __c);
23677 }
23678
23679 __extension__ extern __inline int32_t
23680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlslh_lane_s16(int32_t __a,int16_t __b,int16x4_t __c,const int __d)23681 vqdmlslh_lane_s16 (int32_t __a, int16_t __b, int16x4_t __c, const int __d)
23682 {
23683 return __builtin_aarch64_sqdmlsl_lanehi (__a, __b, __c, __d);
23684 }
23685
23686 __extension__ extern __inline int32_t
23687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlslh_laneq_s16(int32_t __a,int16_t __b,int16x8_t __c,const int __d)23688 vqdmlslh_laneq_s16 (int32_t __a, int16_t __b, int16x8_t __c, const int __d)
23689 {
23690 return __builtin_aarch64_sqdmlsl_laneqhi (__a, __b, __c, __d);
23691 }
23692
23693 __extension__ extern __inline int64_t
23694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsls_s32(int64_t __a,int32_t __b,int32_t __c)23695 vqdmlsls_s32 (int64_t __a, int32_t __b, int32_t __c)
23696 {
23697 return __builtin_aarch64_sqdmlslsi (__a, __b, __c);
23698 }
23699
23700 __extension__ extern __inline int64_t
23701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsls_lane_s32(int64_t __a,int32_t __b,int32x2_t __c,const int __d)23702 vqdmlsls_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d)
23703 {
23704 return __builtin_aarch64_sqdmlsl_lanesi (__a, __b, __c, __d);
23705 }
23706
23707 __extension__ extern __inline int64_t
23708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmlsls_laneq_s32(int64_t __a,int32_t __b,int32x4_t __c,const int __d)23709 vqdmlsls_laneq_s32 (int64_t __a, int32_t __b, int32x4_t __c, const int __d)
23710 {
23711 return __builtin_aarch64_sqdmlsl_laneqsi (__a, __b, __c, __d);
23712 }
23713
23714 /* vqdmulh */
23715
23716 __extension__ extern __inline int16x4_t
23717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)23718 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
23719 {
23720 return __builtin_aarch64_sqdmulh_lanev4hi (__a, __b, __c);
23721 }
23722
23723 __extension__ extern __inline int32x2_t
23724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulh_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)23725 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
23726 {
23727 return __builtin_aarch64_sqdmulh_lanev2si (__a, __b, __c);
23728 }
23729
23730 __extension__ extern __inline int16x8_t
23731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_lane_s16(int16x8_t __a,int16x4_t __b,const int __c)23732 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
23733 {
23734 return __builtin_aarch64_sqdmulh_lanev8hi (__a, __b, __c);
23735 }
23736
23737 __extension__ extern __inline int32x4_t
23738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhq_lane_s32(int32x4_t __a,int32x2_t __b,const int __c)23739 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
23740 {
23741 return __builtin_aarch64_sqdmulh_lanev4si (__a, __b, __c);
23742 }
23743
23744 __extension__ extern __inline int16_t
23745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhh_s16(int16_t __a,int16_t __b)23746 vqdmulhh_s16 (int16_t __a, int16_t __b)
23747 {
23748 return (int16_t) __builtin_aarch64_sqdmulhhi (__a, __b);
23749 }
23750
23751 __extension__ extern __inline int16_t
23752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhh_lane_s16(int16_t __a,int16x4_t __b,const int __c)23753 vqdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
23754 {
23755 return __builtin_aarch64_sqdmulh_lanehi (__a, __b, __c);
23756 }
23757
23758 __extension__ extern __inline int16_t
23759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhh_laneq_s16(int16_t __a,int16x8_t __b,const int __c)23760 vqdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
23761 {
23762 return __builtin_aarch64_sqdmulh_laneqhi (__a, __b, __c);
23763 }
23764
23765 __extension__ extern __inline int32_t
23766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhs_s32(int32_t __a,int32_t __b)23767 vqdmulhs_s32 (int32_t __a, int32_t __b)
23768 {
23769 return (int32_t) __builtin_aarch64_sqdmulhsi (__a, __b);
23770 }
23771
23772 __extension__ extern __inline int32_t
23773 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhs_lane_s32(int32_t __a,int32x2_t __b,const int __c)23774 vqdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
23775 {
23776 return __builtin_aarch64_sqdmulh_lanesi (__a, __b, __c);
23777 }
23778
23779 __extension__ extern __inline int32_t
23780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulhs_laneq_s32(int32_t __a,int32x4_t __b,const int __c)23781 vqdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
23782 {
23783 return __builtin_aarch64_sqdmulh_laneqsi (__a, __b, __c);
23784 }
23785
23786 /* vqdmull */
23787
23788 __extension__ extern __inline int32x4_t
23789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_s16(int16x4_t __a,int16x4_t __b)23790 vqdmull_s16 (int16x4_t __a, int16x4_t __b)
23791 {
23792 return __builtin_aarch64_sqdmullv4hi (__a, __b);
23793 }
23794
23795 __extension__ extern __inline int32x4_t
23796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_s16(int16x8_t __a,int16x8_t __b)23797 vqdmull_high_s16 (int16x8_t __a, int16x8_t __b)
23798 {
23799 return __builtin_aarch64_sqdmull2v8hi (__a, __b);
23800 }
23801
23802 __extension__ extern __inline int32x4_t
23803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_lane_s16(int16x8_t __a,int16x4_t __b,int const __c)23804 vqdmull_high_lane_s16 (int16x8_t __a, int16x4_t __b, int const __c)
23805 {
23806 return __builtin_aarch64_sqdmull2_lanev8hi (__a, __b,__c);
23807 }
23808
23809 __extension__ extern __inline int32x4_t
23810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_laneq_s16(int16x8_t __a,int16x8_t __b,int const __c)23811 vqdmull_high_laneq_s16 (int16x8_t __a, int16x8_t __b, int const __c)
23812 {
23813 return __builtin_aarch64_sqdmull2_laneqv8hi (__a, __b,__c);
23814 }
23815
23816 __extension__ extern __inline int32x4_t
23817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_n_s16(int16x8_t __a,int16_t __b)23818 vqdmull_high_n_s16 (int16x8_t __a, int16_t __b)
23819 {
23820 return __builtin_aarch64_sqdmull2_nv8hi (__a, __b);
23821 }
23822
23823 __extension__ extern __inline int32x4_t
23824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_lane_s16(int16x4_t __a,int16x4_t __b,int const __c)23825 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, int const __c)
23826 {
23827 return __builtin_aarch64_sqdmull_lanev4hi (__a, __b, __c);
23828 }
23829
23830 __extension__ extern __inline int32x4_t
23831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_laneq_s16(int16x4_t __a,int16x8_t __b,int const __c)23832 vqdmull_laneq_s16 (int16x4_t __a, int16x8_t __b, int const __c)
23833 {
23834 return __builtin_aarch64_sqdmull_laneqv4hi (__a, __b, __c);
23835 }
23836
23837 __extension__ extern __inline int32x4_t
23838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_n_s16(int16x4_t __a,int16_t __b)23839 vqdmull_n_s16 (int16x4_t __a, int16_t __b)
23840 {
23841 return __builtin_aarch64_sqdmull_nv4hi (__a, __b);
23842 }
23843
23844 __extension__ extern __inline int64x2_t
23845 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_s32(int32x2_t __a,int32x2_t __b)23846 vqdmull_s32 (int32x2_t __a, int32x2_t __b)
23847 {
23848 return __builtin_aarch64_sqdmullv2si (__a, __b);
23849 }
23850
23851 __extension__ extern __inline int64x2_t
23852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_s32(int32x4_t __a,int32x4_t __b)23853 vqdmull_high_s32 (int32x4_t __a, int32x4_t __b)
23854 {
23855 return __builtin_aarch64_sqdmull2v4si (__a, __b);
23856 }
23857
23858 __extension__ extern __inline int64x2_t
23859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_lane_s32(int32x4_t __a,int32x2_t __b,int const __c)23860 vqdmull_high_lane_s32 (int32x4_t __a, int32x2_t __b, int const __c)
23861 {
23862 return __builtin_aarch64_sqdmull2_lanev4si (__a, __b, __c);
23863 }
23864
23865 __extension__ extern __inline int64x2_t
23866 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_laneq_s32(int32x4_t __a,int32x4_t __b,int const __c)23867 vqdmull_high_laneq_s32 (int32x4_t __a, int32x4_t __b, int const __c)
23868 {
23869 return __builtin_aarch64_sqdmull2_laneqv4si (__a, __b, __c);
23870 }
23871
23872 __extension__ extern __inline int64x2_t
23873 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_high_n_s32(int32x4_t __a,int32_t __b)23874 vqdmull_high_n_s32 (int32x4_t __a, int32_t __b)
23875 {
23876 return __builtin_aarch64_sqdmull2_nv4si (__a, __b);
23877 }
23878
23879 __extension__ extern __inline int64x2_t
23880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_lane_s32(int32x2_t __a,int32x2_t __b,int const __c)23881 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, int const __c)
23882 {
23883 return __builtin_aarch64_sqdmull_lanev2si (__a, __b, __c);
23884 }
23885
23886 __extension__ extern __inline int64x2_t
23887 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_laneq_s32(int32x2_t __a,int32x4_t __b,int const __c)23888 vqdmull_laneq_s32 (int32x2_t __a, int32x4_t __b, int const __c)
23889 {
23890 return __builtin_aarch64_sqdmull_laneqv2si (__a, __b, __c);
23891 }
23892
23893 __extension__ extern __inline int64x2_t
23894 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmull_n_s32(int32x2_t __a,int32_t __b)23895 vqdmull_n_s32 (int32x2_t __a, int32_t __b)
23896 {
23897 return __builtin_aarch64_sqdmull_nv2si (__a, __b);
23898 }
23899
23900 __extension__ extern __inline int32_t
23901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmullh_s16(int16_t __a,int16_t __b)23902 vqdmullh_s16 (int16_t __a, int16_t __b)
23903 {
23904 return (int32_t) __builtin_aarch64_sqdmullhi (__a, __b);
23905 }
23906
23907 __extension__ extern __inline int32_t
23908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmullh_lane_s16(int16_t __a,int16x4_t __b,const int __c)23909 vqdmullh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
23910 {
23911 return __builtin_aarch64_sqdmull_lanehi (__a, __b, __c);
23912 }
23913
23914 __extension__ extern __inline int32_t
23915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmullh_laneq_s16(int16_t __a,int16x8_t __b,const int __c)23916 vqdmullh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
23917 {
23918 return __builtin_aarch64_sqdmull_laneqhi (__a, __b, __c);
23919 }
23920
23921 __extension__ extern __inline int64_t
23922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulls_s32(int32_t __a,int32_t __b)23923 vqdmulls_s32 (int32_t __a, int32_t __b)
23924 {
23925 return __builtin_aarch64_sqdmullsi (__a, __b);
23926 }
23927
23928 __extension__ extern __inline int64_t
23929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulls_lane_s32(int32_t __a,int32x2_t __b,const int __c)23930 vqdmulls_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
23931 {
23932 return __builtin_aarch64_sqdmull_lanesi (__a, __b, __c);
23933 }
23934
23935 __extension__ extern __inline int64_t
23936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqdmulls_laneq_s32(int32_t __a,int32x4_t __b,const int __c)23937 vqdmulls_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
23938 {
23939 return __builtin_aarch64_sqdmull_laneqsi (__a, __b, __c);
23940 }
23941
23942 /* vqmovn */
23943
23944 __extension__ extern __inline int8x8_t
23945 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_s16(int16x8_t __a)23946 vqmovn_s16 (int16x8_t __a)
23947 {
23948 return (int8x8_t) __builtin_aarch64_sqmovnv8hi (__a);
23949 }
23950
23951 __extension__ extern __inline int16x4_t
23952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_s32(int32x4_t __a)23953 vqmovn_s32 (int32x4_t __a)
23954 {
23955 return (int16x4_t) __builtin_aarch64_sqmovnv4si (__a);
23956 }
23957
23958 __extension__ extern __inline int32x2_t
23959 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_s64(int64x2_t __a)23960 vqmovn_s64 (int64x2_t __a)
23961 {
23962 return (int32x2_t) __builtin_aarch64_sqmovnv2di (__a);
23963 }
23964
23965 __extension__ extern __inline uint8x8_t
23966 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_u16(uint16x8_t __a)23967 vqmovn_u16 (uint16x8_t __a)
23968 {
23969 return (uint8x8_t) __builtin_aarch64_uqmovnv8hi ((int16x8_t) __a);
23970 }
23971
23972 __extension__ extern __inline uint16x4_t
23973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_u32(uint32x4_t __a)23974 vqmovn_u32 (uint32x4_t __a)
23975 {
23976 return (uint16x4_t) __builtin_aarch64_uqmovnv4si ((int32x4_t) __a);
23977 }
23978
23979 __extension__ extern __inline uint32x2_t
23980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovn_u64(uint64x2_t __a)23981 vqmovn_u64 (uint64x2_t __a)
23982 {
23983 return (uint32x2_t) __builtin_aarch64_uqmovnv2di ((int64x2_t) __a);
23984 }
23985
23986 __extension__ extern __inline int8_t
23987 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovnh_s16(int16_t __a)23988 vqmovnh_s16 (int16_t __a)
23989 {
23990 return (int8_t) __builtin_aarch64_sqmovnhi (__a);
23991 }
23992
23993 __extension__ extern __inline int16_t
23994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovns_s32(int32_t __a)23995 vqmovns_s32 (int32_t __a)
23996 {
23997 return (int16_t) __builtin_aarch64_sqmovnsi (__a);
23998 }
23999
24000 __extension__ extern __inline int32_t
24001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovnd_s64(int64_t __a)24002 vqmovnd_s64 (int64_t __a)
24003 {
24004 return (int32_t) __builtin_aarch64_sqmovndi (__a);
24005 }
24006
24007 __extension__ extern __inline uint8_t
24008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovnh_u16(uint16_t __a)24009 vqmovnh_u16 (uint16_t __a)
24010 {
24011 return (uint8_t) __builtin_aarch64_uqmovnhi (__a);
24012 }
24013
24014 __extension__ extern __inline uint16_t
24015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovns_u32(uint32_t __a)24016 vqmovns_u32 (uint32_t __a)
24017 {
24018 return (uint16_t) __builtin_aarch64_uqmovnsi (__a);
24019 }
24020
24021 __extension__ extern __inline uint32_t
24022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovnd_u64(uint64_t __a)24023 vqmovnd_u64 (uint64_t __a)
24024 {
24025 return (uint32_t) __builtin_aarch64_uqmovndi (__a);
24026 }
24027
24028 /* vqmovun */
24029
24030 __extension__ extern __inline uint8x8_t
24031 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_s16(int16x8_t __a)24032 vqmovun_s16 (int16x8_t __a)
24033 {
24034 return __builtin_aarch64_sqmovunv8hi_us (__a);
24035 }
24036
24037 __extension__ extern __inline uint16x4_t
24038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_s32(int32x4_t __a)24039 vqmovun_s32 (int32x4_t __a)
24040 {
24041 return __builtin_aarch64_sqmovunv4si_us (__a);
24042 }
24043
24044 __extension__ extern __inline uint32x2_t
24045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovun_s64(int64x2_t __a)24046 vqmovun_s64 (int64x2_t __a)
24047 {
24048 return __builtin_aarch64_sqmovunv2di_us (__a);
24049 }
24050
24051 __extension__ extern __inline uint8_t
24052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovunh_s16(int16_t __a)24053 vqmovunh_s16 (int16_t __a)
24054 {
24055 return __builtin_aarch64_sqmovunhi_us (__a);
24056 }
24057
24058 __extension__ extern __inline uint16_t
24059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovuns_s32(int32_t __a)24060 vqmovuns_s32 (int32_t __a)
24061 {
24062 return __builtin_aarch64_sqmovunsi_us (__a);
24063 }
24064
24065 __extension__ extern __inline uint32_t
24066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqmovund_s64(int64_t __a)24067 vqmovund_s64 (int64_t __a)
24068 {
24069 return __builtin_aarch64_sqmovundi_us (__a);
24070 }
24071
24072 /* vqneg */
24073
24074 __extension__ extern __inline int64x2_t
24075 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegq_s64(int64x2_t __a)24076 vqnegq_s64 (int64x2_t __a)
24077 {
24078 return (int64x2_t) __builtin_aarch64_sqnegv2di (__a);
24079 }
24080
24081 __extension__ extern __inline int8_t
24082 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegb_s8(int8_t __a)24083 vqnegb_s8 (int8_t __a)
24084 {
24085 return (int8_t) __builtin_aarch64_sqnegqi (__a);
24086 }
24087
24088 __extension__ extern __inline int16_t
24089 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegh_s16(int16_t __a)24090 vqnegh_s16 (int16_t __a)
24091 {
24092 return (int16_t) __builtin_aarch64_sqneghi (__a);
24093 }
24094
24095 __extension__ extern __inline int32_t
24096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegs_s32(int32_t __a)24097 vqnegs_s32 (int32_t __a)
24098 {
24099 return (int32_t) __builtin_aarch64_sqnegsi (__a);
24100 }
24101
24102 __extension__ extern __inline int64_t
24103 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqnegd_s64(int64_t __a)24104 vqnegd_s64 (int64_t __a)
24105 {
24106 return __builtin_aarch64_sqnegdi (__a);
24107 }
24108
24109 /* vqrdmulh */
24110
24111 __extension__ extern __inline int16x4_t
24112 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_lane_s16(int16x4_t __a,int16x4_t __b,const int __c)24113 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c)
24114 {
24115 return __builtin_aarch64_sqrdmulh_lanev4hi (__a, __b, __c);
24116 }
24117
24118 __extension__ extern __inline int32x2_t
24119 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulh_lane_s32(int32x2_t __a,int32x2_t __b,const int __c)24120 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c)
24121 {
24122 return __builtin_aarch64_sqrdmulh_lanev2si (__a, __b, __c);
24123 }
24124
24125 __extension__ extern __inline int16x8_t
24126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_lane_s16(int16x8_t __a,int16x4_t __b,const int __c)24127 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c)
24128 {
24129 return __builtin_aarch64_sqrdmulh_lanev8hi (__a, __b, __c);
24130 }
24131
24132 __extension__ extern __inline int32x4_t
24133 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhq_lane_s32(int32x4_t __a,int32x2_t __b,const int __c)24134 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c)
24135 {
24136 return __builtin_aarch64_sqrdmulh_lanev4si (__a, __b, __c);
24137 }
24138
24139 __extension__ extern __inline int16_t
24140 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhh_s16(int16_t __a,int16_t __b)24141 vqrdmulhh_s16 (int16_t __a, int16_t __b)
24142 {
24143 return (int16_t) __builtin_aarch64_sqrdmulhhi (__a, __b);
24144 }
24145
24146 __extension__ extern __inline int16_t
24147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhh_lane_s16(int16_t __a,int16x4_t __b,const int __c)24148 vqrdmulhh_lane_s16 (int16_t __a, int16x4_t __b, const int __c)
24149 {
24150 return __builtin_aarch64_sqrdmulh_lanehi (__a, __b, __c);
24151 }
24152
24153 __extension__ extern __inline int16_t
24154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhh_laneq_s16(int16_t __a,int16x8_t __b,const int __c)24155 vqrdmulhh_laneq_s16 (int16_t __a, int16x8_t __b, const int __c)
24156 {
24157 return __builtin_aarch64_sqrdmulh_laneqhi (__a, __b, __c);
24158 }
24159
24160 __extension__ extern __inline int32_t
24161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhs_s32(int32_t __a,int32_t __b)24162 vqrdmulhs_s32 (int32_t __a, int32_t __b)
24163 {
24164 return (int32_t) __builtin_aarch64_sqrdmulhsi (__a, __b);
24165 }
24166
24167 __extension__ extern __inline int32_t
24168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhs_lane_s32(int32_t __a,int32x2_t __b,const int __c)24169 vqrdmulhs_lane_s32 (int32_t __a, int32x2_t __b, const int __c)
24170 {
24171 return __builtin_aarch64_sqrdmulh_lanesi (__a, __b, __c);
24172 }
24173
24174 __extension__ extern __inline int32_t
24175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrdmulhs_laneq_s32(int32_t __a,int32x4_t __b,const int __c)24176 vqrdmulhs_laneq_s32 (int32_t __a, int32x4_t __b, const int __c)
24177 {
24178 return __builtin_aarch64_sqrdmulh_laneqsi (__a, __b, __c);
24179 }
24180
24181 /* vqrshl */
24182
24183 __extension__ extern __inline int8x8_t
24184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_s8(int8x8_t __a,int8x8_t __b)24185 vqrshl_s8 (int8x8_t __a, int8x8_t __b)
24186 {
24187 return __builtin_aarch64_sqrshlv8qi (__a, __b);
24188 }
24189
24190 __extension__ extern __inline int16x4_t
24191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_s16(int16x4_t __a,int16x4_t __b)24192 vqrshl_s16 (int16x4_t __a, int16x4_t __b)
24193 {
24194 return __builtin_aarch64_sqrshlv4hi (__a, __b);
24195 }
24196
24197 __extension__ extern __inline int32x2_t
24198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_s32(int32x2_t __a,int32x2_t __b)24199 vqrshl_s32 (int32x2_t __a, int32x2_t __b)
24200 {
24201 return __builtin_aarch64_sqrshlv2si (__a, __b);
24202 }
24203
24204 __extension__ extern __inline int64x1_t
24205 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_s64(int64x1_t __a,int64x1_t __b)24206 vqrshl_s64 (int64x1_t __a, int64x1_t __b)
24207 {
24208 return (int64x1_t) {__builtin_aarch64_sqrshldi (__a[0], __b[0])};
24209 }
24210
24211 __extension__ extern __inline uint8x8_t
24212 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_u8(uint8x8_t __a,int8x8_t __b)24213 vqrshl_u8 (uint8x8_t __a, int8x8_t __b)
24214 {
24215 return __builtin_aarch64_uqrshlv8qi_uus ( __a, __b);
24216 }
24217
24218 __extension__ extern __inline uint16x4_t
24219 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_u16(uint16x4_t __a,int16x4_t __b)24220 vqrshl_u16 (uint16x4_t __a, int16x4_t __b)
24221 {
24222 return __builtin_aarch64_uqrshlv4hi_uus ( __a, __b);
24223 }
24224
24225 __extension__ extern __inline uint32x2_t
24226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_u32(uint32x2_t __a,int32x2_t __b)24227 vqrshl_u32 (uint32x2_t __a, int32x2_t __b)
24228 {
24229 return __builtin_aarch64_uqrshlv2si_uus ( __a, __b);
24230 }
24231
24232 __extension__ extern __inline uint64x1_t
24233 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshl_u64(uint64x1_t __a,int64x1_t __b)24234 vqrshl_u64 (uint64x1_t __a, int64x1_t __b)
24235 {
24236 return (uint64x1_t) {__builtin_aarch64_uqrshldi_uus (__a[0], __b[0])};
24237 }
24238
24239 __extension__ extern __inline int8x16_t
24240 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_s8(int8x16_t __a,int8x16_t __b)24241 vqrshlq_s8 (int8x16_t __a, int8x16_t __b)
24242 {
24243 return __builtin_aarch64_sqrshlv16qi (__a, __b);
24244 }
24245
24246 __extension__ extern __inline int16x8_t
24247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_s16(int16x8_t __a,int16x8_t __b)24248 vqrshlq_s16 (int16x8_t __a, int16x8_t __b)
24249 {
24250 return __builtin_aarch64_sqrshlv8hi (__a, __b);
24251 }
24252
24253 __extension__ extern __inline int32x4_t
24254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_s32(int32x4_t __a,int32x4_t __b)24255 vqrshlq_s32 (int32x4_t __a, int32x4_t __b)
24256 {
24257 return __builtin_aarch64_sqrshlv4si (__a, __b);
24258 }
24259
24260 __extension__ extern __inline int64x2_t
24261 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_s64(int64x2_t __a,int64x2_t __b)24262 vqrshlq_s64 (int64x2_t __a, int64x2_t __b)
24263 {
24264 return __builtin_aarch64_sqrshlv2di (__a, __b);
24265 }
24266
24267 __extension__ extern __inline uint8x16_t
24268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_u8(uint8x16_t __a,int8x16_t __b)24269 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b)
24270 {
24271 return __builtin_aarch64_uqrshlv16qi_uus ( __a, __b);
24272 }
24273
24274 __extension__ extern __inline uint16x8_t
24275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_u16(uint16x8_t __a,int16x8_t __b)24276 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b)
24277 {
24278 return __builtin_aarch64_uqrshlv8hi_uus ( __a, __b);
24279 }
24280
24281 __extension__ extern __inline uint32x4_t
24282 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_u32(uint32x4_t __a,int32x4_t __b)24283 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b)
24284 {
24285 return __builtin_aarch64_uqrshlv4si_uus ( __a, __b);
24286 }
24287
24288 __extension__ extern __inline uint64x2_t
24289 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlq_u64(uint64x2_t __a,int64x2_t __b)24290 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b)
24291 {
24292 return __builtin_aarch64_uqrshlv2di_uus ( __a, __b);
24293 }
24294
24295 __extension__ extern __inline int8_t
24296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlb_s8(int8_t __a,int8_t __b)24297 vqrshlb_s8 (int8_t __a, int8_t __b)
24298 {
24299 return __builtin_aarch64_sqrshlqi (__a, __b);
24300 }
24301
24302 __extension__ extern __inline int16_t
24303 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlh_s16(int16_t __a,int16_t __b)24304 vqrshlh_s16 (int16_t __a, int16_t __b)
24305 {
24306 return __builtin_aarch64_sqrshlhi (__a, __b);
24307 }
24308
24309 __extension__ extern __inline int32_t
24310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshls_s32(int32_t __a,int32_t __b)24311 vqrshls_s32 (int32_t __a, int32_t __b)
24312 {
24313 return __builtin_aarch64_sqrshlsi (__a, __b);
24314 }
24315
24316 __extension__ extern __inline int64_t
24317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshld_s64(int64_t __a,int64_t __b)24318 vqrshld_s64 (int64_t __a, int64_t __b)
24319 {
24320 return __builtin_aarch64_sqrshldi (__a, __b);
24321 }
24322
24323 __extension__ extern __inline uint8_t
24324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlb_u8(uint8_t __a,int8_t __b)24325 vqrshlb_u8 (uint8_t __a, int8_t __b)
24326 {
24327 return __builtin_aarch64_uqrshlqi_uus (__a, __b);
24328 }
24329
24330 __extension__ extern __inline uint16_t
24331 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshlh_u16(uint16_t __a,int16_t __b)24332 vqrshlh_u16 (uint16_t __a, int16_t __b)
24333 {
24334 return __builtin_aarch64_uqrshlhi_uus (__a, __b);
24335 }
24336
24337 __extension__ extern __inline uint32_t
24338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshls_u32(uint32_t __a,int32_t __b)24339 vqrshls_u32 (uint32_t __a, int32_t __b)
24340 {
24341 return __builtin_aarch64_uqrshlsi_uus (__a, __b);
24342 }
24343
24344 __extension__ extern __inline uint64_t
24345 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshld_u64(uint64_t __a,int64_t __b)24346 vqrshld_u64 (uint64_t __a, int64_t __b)
24347 {
24348 return __builtin_aarch64_uqrshldi_uus (__a, __b);
24349 }
24350
24351 /* vqrshrn */
24352
24353 __extension__ extern __inline int8x8_t
24354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_s16(int16x8_t __a,const int __b)24355 vqrshrn_n_s16 (int16x8_t __a, const int __b)
24356 {
24357 return (int8x8_t) __builtin_aarch64_sqrshrn_nv8hi (__a, __b);
24358 }
24359
24360 __extension__ extern __inline int16x4_t
24361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_s32(int32x4_t __a,const int __b)24362 vqrshrn_n_s32 (int32x4_t __a, const int __b)
24363 {
24364 return (int16x4_t) __builtin_aarch64_sqrshrn_nv4si (__a, __b);
24365 }
24366
24367 __extension__ extern __inline int32x2_t
24368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_s64(int64x2_t __a,const int __b)24369 vqrshrn_n_s64 (int64x2_t __a, const int __b)
24370 {
24371 return (int32x2_t) __builtin_aarch64_sqrshrn_nv2di (__a, __b);
24372 }
24373
24374 __extension__ extern __inline uint8x8_t
24375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_u16(uint16x8_t __a,const int __b)24376 vqrshrn_n_u16 (uint16x8_t __a, const int __b)
24377 {
24378 return __builtin_aarch64_uqrshrn_nv8hi_uus ( __a, __b);
24379 }
24380
24381 __extension__ extern __inline uint16x4_t
24382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_u32(uint32x4_t __a,const int __b)24383 vqrshrn_n_u32 (uint32x4_t __a, const int __b)
24384 {
24385 return __builtin_aarch64_uqrshrn_nv4si_uus ( __a, __b);
24386 }
24387
24388 __extension__ extern __inline uint32x2_t
24389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrn_n_u64(uint64x2_t __a,const int __b)24390 vqrshrn_n_u64 (uint64x2_t __a, const int __b)
24391 {
24392 return __builtin_aarch64_uqrshrn_nv2di_uus ( __a, __b);
24393 }
24394
24395 __extension__ extern __inline int8_t
24396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrnh_n_s16(int16_t __a,const int __b)24397 vqrshrnh_n_s16 (int16_t __a, const int __b)
24398 {
24399 return (int8_t) __builtin_aarch64_sqrshrn_nhi (__a, __b);
24400 }
24401
24402 __extension__ extern __inline int16_t
24403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrns_n_s32(int32_t __a,const int __b)24404 vqrshrns_n_s32 (int32_t __a, const int __b)
24405 {
24406 return (int16_t) __builtin_aarch64_sqrshrn_nsi (__a, __b);
24407 }
24408
24409 __extension__ extern __inline int32_t
24410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrnd_n_s64(int64_t __a,const int __b)24411 vqrshrnd_n_s64 (int64_t __a, const int __b)
24412 {
24413 return (int32_t) __builtin_aarch64_sqrshrn_ndi (__a, __b);
24414 }
24415
24416 __extension__ extern __inline uint8_t
24417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrnh_n_u16(uint16_t __a,const int __b)24418 vqrshrnh_n_u16 (uint16_t __a, const int __b)
24419 {
24420 return __builtin_aarch64_uqrshrn_nhi_uus (__a, __b);
24421 }
24422
24423 __extension__ extern __inline uint16_t
24424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrns_n_u32(uint32_t __a,const int __b)24425 vqrshrns_n_u32 (uint32_t __a, const int __b)
24426 {
24427 return __builtin_aarch64_uqrshrn_nsi_uus (__a, __b);
24428 }
24429
24430 __extension__ extern __inline uint32_t
24431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrnd_n_u64(uint64_t __a,const int __b)24432 vqrshrnd_n_u64 (uint64_t __a, const int __b)
24433 {
24434 return __builtin_aarch64_uqrshrn_ndi_uus (__a, __b);
24435 }
24436
24437 /* vqrshrun */
24438
24439 __extension__ extern __inline uint8x8_t
24440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrun_n_s16(int16x8_t __a,const int __b)24441 vqrshrun_n_s16 (int16x8_t __a, const int __b)
24442 {
24443 return (uint8x8_t) __builtin_aarch64_sqrshrun_nv8hi (__a, __b);
24444 }
24445
24446 __extension__ extern __inline uint16x4_t
24447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrun_n_s32(int32x4_t __a,const int __b)24448 vqrshrun_n_s32 (int32x4_t __a, const int __b)
24449 {
24450 return (uint16x4_t) __builtin_aarch64_sqrshrun_nv4si (__a, __b);
24451 }
24452
24453 __extension__ extern __inline uint32x2_t
24454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrun_n_s64(int64x2_t __a,const int __b)24455 vqrshrun_n_s64 (int64x2_t __a, const int __b)
24456 {
24457 return (uint32x2_t) __builtin_aarch64_sqrshrun_nv2di (__a, __b);
24458 }
24459
24460 __extension__ extern __inline int8_t
24461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrunh_n_s16(int16_t __a,const int __b)24462 vqrshrunh_n_s16 (int16_t __a, const int __b)
24463 {
24464 return (int8_t) __builtin_aarch64_sqrshrun_nhi (__a, __b);
24465 }
24466
24467 __extension__ extern __inline int16_t
24468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshruns_n_s32(int32_t __a,const int __b)24469 vqrshruns_n_s32 (int32_t __a, const int __b)
24470 {
24471 return (int16_t) __builtin_aarch64_sqrshrun_nsi (__a, __b);
24472 }
24473
24474 __extension__ extern __inline int32_t
24475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqrshrund_n_s64(int64_t __a,const int __b)24476 vqrshrund_n_s64 (int64_t __a, const int __b)
24477 {
24478 return (int32_t) __builtin_aarch64_sqrshrun_ndi (__a, __b);
24479 }
24480
24481 /* vqshl */
24482
24483 __extension__ extern __inline int8x8_t
24484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_s8(int8x8_t __a,int8x8_t __b)24485 vqshl_s8 (int8x8_t __a, int8x8_t __b)
24486 {
24487 return __builtin_aarch64_sqshlv8qi (__a, __b);
24488 }
24489
24490 __extension__ extern __inline int16x4_t
24491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_s16(int16x4_t __a,int16x4_t __b)24492 vqshl_s16 (int16x4_t __a, int16x4_t __b)
24493 {
24494 return __builtin_aarch64_sqshlv4hi (__a, __b);
24495 }
24496
24497 __extension__ extern __inline int32x2_t
24498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_s32(int32x2_t __a,int32x2_t __b)24499 vqshl_s32 (int32x2_t __a, int32x2_t __b)
24500 {
24501 return __builtin_aarch64_sqshlv2si (__a, __b);
24502 }
24503
24504 __extension__ extern __inline int64x1_t
24505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_s64(int64x1_t __a,int64x1_t __b)24506 vqshl_s64 (int64x1_t __a, int64x1_t __b)
24507 {
24508 return (int64x1_t) {__builtin_aarch64_sqshldi (__a[0], __b[0])};
24509 }
24510
24511 __extension__ extern __inline uint8x8_t
24512 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_u8(uint8x8_t __a,int8x8_t __b)24513 vqshl_u8 (uint8x8_t __a, int8x8_t __b)
24514 {
24515 return __builtin_aarch64_uqshlv8qi_uus ( __a, __b);
24516 }
24517
24518 __extension__ extern __inline uint16x4_t
24519 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_u16(uint16x4_t __a,int16x4_t __b)24520 vqshl_u16 (uint16x4_t __a, int16x4_t __b)
24521 {
24522 return __builtin_aarch64_uqshlv4hi_uus ( __a, __b);
24523 }
24524
24525 __extension__ extern __inline uint32x2_t
24526 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_u32(uint32x2_t __a,int32x2_t __b)24527 vqshl_u32 (uint32x2_t __a, int32x2_t __b)
24528 {
24529 return __builtin_aarch64_uqshlv2si_uus ( __a, __b);
24530 }
24531
24532 __extension__ extern __inline uint64x1_t
24533 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_u64(uint64x1_t __a,int64x1_t __b)24534 vqshl_u64 (uint64x1_t __a, int64x1_t __b)
24535 {
24536 return (uint64x1_t) {__builtin_aarch64_uqshldi_uus (__a[0], __b[0])};
24537 }
24538
24539 __extension__ extern __inline int8x16_t
24540 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_s8(int8x16_t __a,int8x16_t __b)24541 vqshlq_s8 (int8x16_t __a, int8x16_t __b)
24542 {
24543 return __builtin_aarch64_sqshlv16qi (__a, __b);
24544 }
24545
24546 __extension__ extern __inline int16x8_t
24547 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_s16(int16x8_t __a,int16x8_t __b)24548 vqshlq_s16 (int16x8_t __a, int16x8_t __b)
24549 {
24550 return __builtin_aarch64_sqshlv8hi (__a, __b);
24551 }
24552
24553 __extension__ extern __inline int32x4_t
24554 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_s32(int32x4_t __a,int32x4_t __b)24555 vqshlq_s32 (int32x4_t __a, int32x4_t __b)
24556 {
24557 return __builtin_aarch64_sqshlv4si (__a, __b);
24558 }
24559
24560 __extension__ extern __inline int64x2_t
24561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_s64(int64x2_t __a,int64x2_t __b)24562 vqshlq_s64 (int64x2_t __a, int64x2_t __b)
24563 {
24564 return __builtin_aarch64_sqshlv2di (__a, __b);
24565 }
24566
24567 __extension__ extern __inline uint8x16_t
24568 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_u8(uint8x16_t __a,int8x16_t __b)24569 vqshlq_u8 (uint8x16_t __a, int8x16_t __b)
24570 {
24571 return __builtin_aarch64_uqshlv16qi_uus ( __a, __b);
24572 }
24573
24574 __extension__ extern __inline uint16x8_t
24575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_u16(uint16x8_t __a,int16x8_t __b)24576 vqshlq_u16 (uint16x8_t __a, int16x8_t __b)
24577 {
24578 return __builtin_aarch64_uqshlv8hi_uus ( __a, __b);
24579 }
24580
24581 __extension__ extern __inline uint32x4_t
24582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_u32(uint32x4_t __a,int32x4_t __b)24583 vqshlq_u32 (uint32x4_t __a, int32x4_t __b)
24584 {
24585 return __builtin_aarch64_uqshlv4si_uus ( __a, __b);
24586 }
24587
24588 __extension__ extern __inline uint64x2_t
24589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_u64(uint64x2_t __a,int64x2_t __b)24590 vqshlq_u64 (uint64x2_t __a, int64x2_t __b)
24591 {
24592 return __builtin_aarch64_uqshlv2di_uus ( __a, __b);
24593 }
24594
24595 __extension__ extern __inline int8_t
24596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlb_s8(int8_t __a,int8_t __b)24597 vqshlb_s8 (int8_t __a, int8_t __b)
24598 {
24599 return __builtin_aarch64_sqshlqi (__a, __b);
24600 }
24601
24602 __extension__ extern __inline int16_t
24603 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlh_s16(int16_t __a,int16_t __b)24604 vqshlh_s16 (int16_t __a, int16_t __b)
24605 {
24606 return __builtin_aarch64_sqshlhi (__a, __b);
24607 }
24608
24609 __extension__ extern __inline int32_t
24610 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshls_s32(int32_t __a,int32_t __b)24611 vqshls_s32 (int32_t __a, int32_t __b)
24612 {
24613 return __builtin_aarch64_sqshlsi (__a, __b);
24614 }
24615
24616 __extension__ extern __inline int64_t
24617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshld_s64(int64_t __a,int64_t __b)24618 vqshld_s64 (int64_t __a, int64_t __b)
24619 {
24620 return __builtin_aarch64_sqshldi (__a, __b);
24621 }
24622
24623 __extension__ extern __inline uint8_t
24624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlb_u8(uint8_t __a,int8_t __b)24625 vqshlb_u8 (uint8_t __a, int8_t __b)
24626 {
24627 return __builtin_aarch64_uqshlqi_uus (__a, __b);
24628 }
24629
24630 __extension__ extern __inline uint16_t
24631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlh_u16(uint16_t __a,int16_t __b)24632 vqshlh_u16 (uint16_t __a, int16_t __b)
24633 {
24634 return __builtin_aarch64_uqshlhi_uus (__a, __b);
24635 }
24636
24637 __extension__ extern __inline uint32_t
24638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshls_u32(uint32_t __a,int32_t __b)24639 vqshls_u32 (uint32_t __a, int32_t __b)
24640 {
24641 return __builtin_aarch64_uqshlsi_uus (__a, __b);
24642 }
24643
24644 __extension__ extern __inline uint64_t
24645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshld_u64(uint64_t __a,int64_t __b)24646 vqshld_u64 (uint64_t __a, int64_t __b)
24647 {
24648 return __builtin_aarch64_uqshldi_uus (__a, __b);
24649 }
24650
24651 __extension__ extern __inline int8x8_t
24652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_s8(int8x8_t __a,const int __b)24653 vqshl_n_s8 (int8x8_t __a, const int __b)
24654 {
24655 return (int8x8_t) __builtin_aarch64_sqshl_nv8qi (__a, __b);
24656 }
24657
24658 __extension__ extern __inline int16x4_t
24659 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_s16(int16x4_t __a,const int __b)24660 vqshl_n_s16 (int16x4_t __a, const int __b)
24661 {
24662 return (int16x4_t) __builtin_aarch64_sqshl_nv4hi (__a, __b);
24663 }
24664
24665 __extension__ extern __inline int32x2_t
24666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_s32(int32x2_t __a,const int __b)24667 vqshl_n_s32 (int32x2_t __a, const int __b)
24668 {
24669 return (int32x2_t) __builtin_aarch64_sqshl_nv2si (__a, __b);
24670 }
24671
24672 __extension__ extern __inline int64x1_t
24673 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_s64(int64x1_t __a,const int __b)24674 vqshl_n_s64 (int64x1_t __a, const int __b)
24675 {
24676 return (int64x1_t) {__builtin_aarch64_sqshl_ndi (__a[0], __b)};
24677 }
24678
24679 __extension__ extern __inline uint8x8_t
24680 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_u8(uint8x8_t __a,const int __b)24681 vqshl_n_u8 (uint8x8_t __a, const int __b)
24682 {
24683 return __builtin_aarch64_uqshl_nv8qi_uus (__a, __b);
24684 }
24685
24686 __extension__ extern __inline uint16x4_t
24687 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_u16(uint16x4_t __a,const int __b)24688 vqshl_n_u16 (uint16x4_t __a, const int __b)
24689 {
24690 return __builtin_aarch64_uqshl_nv4hi_uus (__a, __b);
24691 }
24692
24693 __extension__ extern __inline uint32x2_t
24694 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_u32(uint32x2_t __a,const int __b)24695 vqshl_n_u32 (uint32x2_t __a, const int __b)
24696 {
24697 return __builtin_aarch64_uqshl_nv2si_uus (__a, __b);
24698 }
24699
24700 __extension__ extern __inline uint64x1_t
24701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshl_n_u64(uint64x1_t __a,const int __b)24702 vqshl_n_u64 (uint64x1_t __a, const int __b)
24703 {
24704 return (uint64x1_t) {__builtin_aarch64_uqshl_ndi_uus (__a[0], __b)};
24705 }
24706
24707 __extension__ extern __inline int8x16_t
24708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_s8(int8x16_t __a,const int __b)24709 vqshlq_n_s8 (int8x16_t __a, const int __b)
24710 {
24711 return (int8x16_t) __builtin_aarch64_sqshl_nv16qi (__a, __b);
24712 }
24713
24714 __extension__ extern __inline int16x8_t
24715 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_s16(int16x8_t __a,const int __b)24716 vqshlq_n_s16 (int16x8_t __a, const int __b)
24717 {
24718 return (int16x8_t) __builtin_aarch64_sqshl_nv8hi (__a, __b);
24719 }
24720
24721 __extension__ extern __inline int32x4_t
24722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_s32(int32x4_t __a,const int __b)24723 vqshlq_n_s32 (int32x4_t __a, const int __b)
24724 {
24725 return (int32x4_t) __builtin_aarch64_sqshl_nv4si (__a, __b);
24726 }
24727
24728 __extension__ extern __inline int64x2_t
24729 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_s64(int64x2_t __a,const int __b)24730 vqshlq_n_s64 (int64x2_t __a, const int __b)
24731 {
24732 return (int64x2_t) __builtin_aarch64_sqshl_nv2di (__a, __b);
24733 }
24734
24735 __extension__ extern __inline uint8x16_t
24736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_u8(uint8x16_t __a,const int __b)24737 vqshlq_n_u8 (uint8x16_t __a, const int __b)
24738 {
24739 return __builtin_aarch64_uqshl_nv16qi_uus (__a, __b);
24740 }
24741
24742 __extension__ extern __inline uint16x8_t
24743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_u16(uint16x8_t __a,const int __b)24744 vqshlq_n_u16 (uint16x8_t __a, const int __b)
24745 {
24746 return __builtin_aarch64_uqshl_nv8hi_uus (__a, __b);
24747 }
24748
24749 __extension__ extern __inline uint32x4_t
24750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_u32(uint32x4_t __a,const int __b)24751 vqshlq_n_u32 (uint32x4_t __a, const int __b)
24752 {
24753 return __builtin_aarch64_uqshl_nv4si_uus (__a, __b);
24754 }
24755
24756 __extension__ extern __inline uint64x2_t
24757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlq_n_u64(uint64x2_t __a,const int __b)24758 vqshlq_n_u64 (uint64x2_t __a, const int __b)
24759 {
24760 return __builtin_aarch64_uqshl_nv2di_uus (__a, __b);
24761 }
24762
24763 __extension__ extern __inline int8_t
24764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlb_n_s8(int8_t __a,const int __b)24765 vqshlb_n_s8 (int8_t __a, const int __b)
24766 {
24767 return (int8_t) __builtin_aarch64_sqshl_nqi (__a, __b);
24768 }
24769
24770 __extension__ extern __inline int16_t
24771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlh_n_s16(int16_t __a,const int __b)24772 vqshlh_n_s16 (int16_t __a, const int __b)
24773 {
24774 return (int16_t) __builtin_aarch64_sqshl_nhi (__a, __b);
24775 }
24776
24777 __extension__ extern __inline int32_t
24778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshls_n_s32(int32_t __a,const int __b)24779 vqshls_n_s32 (int32_t __a, const int __b)
24780 {
24781 return (int32_t) __builtin_aarch64_sqshl_nsi (__a, __b);
24782 }
24783
24784 __extension__ extern __inline int64_t
24785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshld_n_s64(int64_t __a,const int __b)24786 vqshld_n_s64 (int64_t __a, const int __b)
24787 {
24788 return __builtin_aarch64_sqshl_ndi (__a, __b);
24789 }
24790
24791 __extension__ extern __inline uint8_t
24792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlb_n_u8(uint8_t __a,const int __b)24793 vqshlb_n_u8 (uint8_t __a, const int __b)
24794 {
24795 return __builtin_aarch64_uqshl_nqi_uus (__a, __b);
24796 }
24797
24798 __extension__ extern __inline uint16_t
24799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlh_n_u16(uint16_t __a,const int __b)24800 vqshlh_n_u16 (uint16_t __a, const int __b)
24801 {
24802 return __builtin_aarch64_uqshl_nhi_uus (__a, __b);
24803 }
24804
24805 __extension__ extern __inline uint32_t
24806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshls_n_u32(uint32_t __a,const int __b)24807 vqshls_n_u32 (uint32_t __a, const int __b)
24808 {
24809 return __builtin_aarch64_uqshl_nsi_uus (__a, __b);
24810 }
24811
24812 __extension__ extern __inline uint64_t
24813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshld_n_u64(uint64_t __a,const int __b)24814 vqshld_n_u64 (uint64_t __a, const int __b)
24815 {
24816 return __builtin_aarch64_uqshl_ndi_uus (__a, __b);
24817 }
24818
24819 /* vqshlu */
24820
24821 __extension__ extern __inline uint8x8_t
24822 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlu_n_s8(int8x8_t __a,const int __b)24823 vqshlu_n_s8 (int8x8_t __a, const int __b)
24824 {
24825 return __builtin_aarch64_sqshlu_nv8qi_uss (__a, __b);
24826 }
24827
24828 __extension__ extern __inline uint16x4_t
24829 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlu_n_s16(int16x4_t __a,const int __b)24830 vqshlu_n_s16 (int16x4_t __a, const int __b)
24831 {
24832 return __builtin_aarch64_sqshlu_nv4hi_uss (__a, __b);
24833 }
24834
24835 __extension__ extern __inline uint32x2_t
24836 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlu_n_s32(int32x2_t __a,const int __b)24837 vqshlu_n_s32 (int32x2_t __a, const int __b)
24838 {
24839 return __builtin_aarch64_sqshlu_nv2si_uss (__a, __b);
24840 }
24841
24842 __extension__ extern __inline uint64x1_t
24843 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlu_n_s64(int64x1_t __a,const int __b)24844 vqshlu_n_s64 (int64x1_t __a, const int __b)
24845 {
24846 return (uint64x1_t) {__builtin_aarch64_sqshlu_ndi_uss (__a[0], __b)};
24847 }
24848
24849 __extension__ extern __inline uint8x16_t
24850 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluq_n_s8(int8x16_t __a,const int __b)24851 vqshluq_n_s8 (int8x16_t __a, const int __b)
24852 {
24853 return __builtin_aarch64_sqshlu_nv16qi_uss (__a, __b);
24854 }
24855
24856 __extension__ extern __inline uint16x8_t
24857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluq_n_s16(int16x8_t __a,const int __b)24858 vqshluq_n_s16 (int16x8_t __a, const int __b)
24859 {
24860 return __builtin_aarch64_sqshlu_nv8hi_uss (__a, __b);
24861 }
24862
24863 __extension__ extern __inline uint32x4_t
24864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluq_n_s32(int32x4_t __a,const int __b)24865 vqshluq_n_s32 (int32x4_t __a, const int __b)
24866 {
24867 return __builtin_aarch64_sqshlu_nv4si_uss (__a, __b);
24868 }
24869
24870 __extension__ extern __inline uint64x2_t
24871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluq_n_s64(int64x2_t __a,const int __b)24872 vqshluq_n_s64 (int64x2_t __a, const int __b)
24873 {
24874 return __builtin_aarch64_sqshlu_nv2di_uss (__a, __b);
24875 }
24876
24877 __extension__ extern __inline int8_t
24878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlub_n_s8(int8_t __a,const int __b)24879 vqshlub_n_s8 (int8_t __a, const int __b)
24880 {
24881 return (int8_t) __builtin_aarch64_sqshlu_nqi_uss (__a, __b);
24882 }
24883
24884 __extension__ extern __inline int16_t
24885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshluh_n_s16(int16_t __a,const int __b)24886 vqshluh_n_s16 (int16_t __a, const int __b)
24887 {
24888 return (int16_t) __builtin_aarch64_sqshlu_nhi_uss (__a, __b);
24889 }
24890
24891 __extension__ extern __inline int32_t
24892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlus_n_s32(int32_t __a,const int __b)24893 vqshlus_n_s32 (int32_t __a, const int __b)
24894 {
24895 return (int32_t) __builtin_aarch64_sqshlu_nsi_uss (__a, __b);
24896 }
24897
24898 __extension__ extern __inline uint64_t
24899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshlud_n_s64(int64_t __a,const int __b)24900 vqshlud_n_s64 (int64_t __a, const int __b)
24901 {
24902 return __builtin_aarch64_sqshlu_ndi_uss (__a, __b);
24903 }
24904
24905 /* vqshrn */
24906
24907 __extension__ extern __inline int8x8_t
24908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_s16(int16x8_t __a,const int __b)24909 vqshrn_n_s16 (int16x8_t __a, const int __b)
24910 {
24911 return (int8x8_t) __builtin_aarch64_sqshrn_nv8hi (__a, __b);
24912 }
24913
24914 __extension__ extern __inline int16x4_t
24915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_s32(int32x4_t __a,const int __b)24916 vqshrn_n_s32 (int32x4_t __a, const int __b)
24917 {
24918 return (int16x4_t) __builtin_aarch64_sqshrn_nv4si (__a, __b);
24919 }
24920
24921 __extension__ extern __inline int32x2_t
24922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_s64(int64x2_t __a,const int __b)24923 vqshrn_n_s64 (int64x2_t __a, const int __b)
24924 {
24925 return (int32x2_t) __builtin_aarch64_sqshrn_nv2di (__a, __b);
24926 }
24927
24928 __extension__ extern __inline uint8x8_t
24929 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_u16(uint16x8_t __a,const int __b)24930 vqshrn_n_u16 (uint16x8_t __a, const int __b)
24931 {
24932 return __builtin_aarch64_uqshrn_nv8hi_uus ( __a, __b);
24933 }
24934
24935 __extension__ extern __inline uint16x4_t
24936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_u32(uint32x4_t __a,const int __b)24937 vqshrn_n_u32 (uint32x4_t __a, const int __b)
24938 {
24939 return __builtin_aarch64_uqshrn_nv4si_uus ( __a, __b);
24940 }
24941
24942 __extension__ extern __inline uint32x2_t
24943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrn_n_u64(uint64x2_t __a,const int __b)24944 vqshrn_n_u64 (uint64x2_t __a, const int __b)
24945 {
24946 return __builtin_aarch64_uqshrn_nv2di_uus ( __a, __b);
24947 }
24948
24949 __extension__ extern __inline int8_t
24950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrnh_n_s16(int16_t __a,const int __b)24951 vqshrnh_n_s16 (int16_t __a, const int __b)
24952 {
24953 return (int8_t) __builtin_aarch64_sqshrn_nhi (__a, __b);
24954 }
24955
24956 __extension__ extern __inline int16_t
24957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrns_n_s32(int32_t __a,const int __b)24958 vqshrns_n_s32 (int32_t __a, const int __b)
24959 {
24960 return (int16_t) __builtin_aarch64_sqshrn_nsi (__a, __b);
24961 }
24962
24963 __extension__ extern __inline int32_t
24964 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrnd_n_s64(int64_t __a,const int __b)24965 vqshrnd_n_s64 (int64_t __a, const int __b)
24966 {
24967 return (int32_t) __builtin_aarch64_sqshrn_ndi (__a, __b);
24968 }
24969
24970 __extension__ extern __inline uint8_t
24971 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrnh_n_u16(uint16_t __a,const int __b)24972 vqshrnh_n_u16 (uint16_t __a, const int __b)
24973 {
24974 return __builtin_aarch64_uqshrn_nhi_uus (__a, __b);
24975 }
24976
24977 __extension__ extern __inline uint16_t
24978 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrns_n_u32(uint32_t __a,const int __b)24979 vqshrns_n_u32 (uint32_t __a, const int __b)
24980 {
24981 return __builtin_aarch64_uqshrn_nsi_uus (__a, __b);
24982 }
24983
24984 __extension__ extern __inline uint32_t
24985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrnd_n_u64(uint64_t __a,const int __b)24986 vqshrnd_n_u64 (uint64_t __a, const int __b)
24987 {
24988 return __builtin_aarch64_uqshrn_ndi_uus (__a, __b);
24989 }
24990
24991 /* vqshrun */
24992
24993 __extension__ extern __inline uint8x8_t
24994 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrun_n_s16(int16x8_t __a,const int __b)24995 vqshrun_n_s16 (int16x8_t __a, const int __b)
24996 {
24997 return (uint8x8_t) __builtin_aarch64_sqshrun_nv8hi (__a, __b);
24998 }
24999
25000 __extension__ extern __inline uint16x4_t
25001 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrun_n_s32(int32x4_t __a,const int __b)25002 vqshrun_n_s32 (int32x4_t __a, const int __b)
25003 {
25004 return (uint16x4_t) __builtin_aarch64_sqshrun_nv4si (__a, __b);
25005 }
25006
25007 __extension__ extern __inline uint32x2_t
25008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrun_n_s64(int64x2_t __a,const int __b)25009 vqshrun_n_s64 (int64x2_t __a, const int __b)
25010 {
25011 return (uint32x2_t) __builtin_aarch64_sqshrun_nv2di (__a, __b);
25012 }
25013
25014 __extension__ extern __inline int8_t
25015 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrunh_n_s16(int16_t __a,const int __b)25016 vqshrunh_n_s16 (int16_t __a, const int __b)
25017 {
25018 return (int8_t) __builtin_aarch64_sqshrun_nhi (__a, __b);
25019 }
25020
25021 __extension__ extern __inline int16_t
25022 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshruns_n_s32(int32_t __a,const int __b)25023 vqshruns_n_s32 (int32_t __a, const int __b)
25024 {
25025 return (int16_t) __builtin_aarch64_sqshrun_nsi (__a, __b);
25026 }
25027
25028 __extension__ extern __inline int32_t
25029 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqshrund_n_s64(int64_t __a,const int __b)25030 vqshrund_n_s64 (int64_t __a, const int __b)
25031 {
25032 return (int32_t) __builtin_aarch64_sqshrun_ndi (__a, __b);
25033 }
25034
25035 /* vqsub */
25036
25037 __extension__ extern __inline int8_t
25038 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubb_s8(int8_t __a,int8_t __b)25039 vqsubb_s8 (int8_t __a, int8_t __b)
25040 {
25041 return (int8_t) __builtin_aarch64_sqsubqi (__a, __b);
25042 }
25043
25044 __extension__ extern __inline int16_t
25045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubh_s16(int16_t __a,int16_t __b)25046 vqsubh_s16 (int16_t __a, int16_t __b)
25047 {
25048 return (int16_t) __builtin_aarch64_sqsubhi (__a, __b);
25049 }
25050
25051 __extension__ extern __inline int32_t
25052 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubs_s32(int32_t __a,int32_t __b)25053 vqsubs_s32 (int32_t __a, int32_t __b)
25054 {
25055 return (int32_t) __builtin_aarch64_sqsubsi (__a, __b);
25056 }
25057
25058 __extension__ extern __inline int64_t
25059 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubd_s64(int64_t __a,int64_t __b)25060 vqsubd_s64 (int64_t __a, int64_t __b)
25061 {
25062 return __builtin_aarch64_sqsubdi (__a, __b);
25063 }
25064
25065 __extension__ extern __inline uint8_t
25066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubb_u8(uint8_t __a,uint8_t __b)25067 vqsubb_u8 (uint8_t __a, uint8_t __b)
25068 {
25069 return (uint8_t) __builtin_aarch64_uqsubqi_uuu (__a, __b);
25070 }
25071
25072 __extension__ extern __inline uint16_t
25073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubh_u16(uint16_t __a,uint16_t __b)25074 vqsubh_u16 (uint16_t __a, uint16_t __b)
25075 {
25076 return (uint16_t) __builtin_aarch64_uqsubhi_uuu (__a, __b);
25077 }
25078
25079 __extension__ extern __inline uint32_t
25080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubs_u32(uint32_t __a,uint32_t __b)25081 vqsubs_u32 (uint32_t __a, uint32_t __b)
25082 {
25083 return (uint32_t) __builtin_aarch64_uqsubsi_uuu (__a, __b);
25084 }
25085
25086 __extension__ extern __inline uint64_t
25087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqsubd_u64(uint64_t __a,uint64_t __b)25088 vqsubd_u64 (uint64_t __a, uint64_t __b)
25089 {
25090 return __builtin_aarch64_uqsubdi_uuu (__a, __b);
25091 }
25092
25093 /* vqtbl2 */
25094
25095 __extension__ extern __inline int8x8_t
25096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2_s8(int8x16x2_t __tab,uint8x8_t __idx)25097 vqtbl2_s8 (int8x16x2_t __tab, uint8x8_t __idx)
25098 {
25099 __builtin_aarch64_simd_oi __o;
25100 __o = __builtin_aarch64_set_qregoiv16qi (__o, __tab.val[0], 0);
25101 __o = __builtin_aarch64_set_qregoiv16qi (__o, __tab.val[1], 1);
25102 return __builtin_aarch64_tbl3v8qi (__o, (int8x8_t)__idx);
25103 }
25104
25105 __extension__ extern __inline uint8x8_t
25106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2_u8(uint8x16x2_t __tab,uint8x8_t __idx)25107 vqtbl2_u8 (uint8x16x2_t __tab, uint8x8_t __idx)
25108 {
25109 __builtin_aarch64_simd_oi __o;
25110 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25111 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25112 return (uint8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)__idx);
25113 }
25114
25115 __extension__ extern __inline poly8x8_t
25116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2_p8(poly8x16x2_t __tab,uint8x8_t __idx)25117 vqtbl2_p8 (poly8x16x2_t __tab, uint8x8_t __idx)
25118 {
25119 __builtin_aarch64_simd_oi __o;
25120 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25121 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25122 return (poly8x8_t)__builtin_aarch64_tbl3v8qi (__o, (int8x8_t)__idx);
25123 }
25124
25125 __extension__ extern __inline int8x16_t
25126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2q_s8(int8x16x2_t __tab,uint8x16_t __idx)25127 vqtbl2q_s8 (int8x16x2_t __tab, uint8x16_t __idx)
25128 {
25129 __builtin_aarch64_simd_oi __o;
25130 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25131 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25132 return __builtin_aarch64_tbl3v16qi (__o, (int8x16_t)__idx);
25133 }
25134
25135 __extension__ extern __inline uint8x16_t
25136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2q_u8(uint8x16x2_t __tab,uint8x16_t __idx)25137 vqtbl2q_u8 (uint8x16x2_t __tab, uint8x16_t __idx)
25138 {
25139 __builtin_aarch64_simd_oi __o;
25140 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25141 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25142 return (uint8x16_t)__builtin_aarch64_tbl3v16qi (__o, (int8x16_t)__idx);
25143 }
25144
25145 __extension__ extern __inline poly8x16_t
25146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl2q_p8(poly8x16x2_t __tab,uint8x16_t __idx)25147 vqtbl2q_p8 (poly8x16x2_t __tab, uint8x16_t __idx)
25148 {
25149 __builtin_aarch64_simd_oi __o;
25150 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25151 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25152 return (poly8x16_t)__builtin_aarch64_tbl3v16qi (__o, (int8x16_t)__idx);
25153 }
25154
25155 /* vqtbl3 */
25156
25157 __extension__ extern __inline int8x8_t
25158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3_s8(int8x16x3_t __tab,uint8x8_t __idx)25159 vqtbl3_s8 (int8x16x3_t __tab, uint8x8_t __idx)
25160 {
25161 __builtin_aarch64_simd_ci __o;
25162 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25163 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25164 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25165 return __builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)__idx);
25166 }
25167
25168 __extension__ extern __inline uint8x8_t
25169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3_u8(uint8x16x3_t __tab,uint8x8_t __idx)25170 vqtbl3_u8 (uint8x16x3_t __tab, uint8x8_t __idx)
25171 {
25172 __builtin_aarch64_simd_ci __o;
25173 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25174 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25175 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25176 return (uint8x8_t)__builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)__idx);
25177 }
25178
25179 __extension__ extern __inline poly8x8_t
25180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3_p8(poly8x16x3_t __tab,uint8x8_t __idx)25181 vqtbl3_p8 (poly8x16x3_t __tab, uint8x8_t __idx)
25182 {
25183 __builtin_aarch64_simd_ci __o;
25184 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25185 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25186 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25187 return (poly8x8_t)__builtin_aarch64_qtbl3v8qi (__o, (int8x8_t)__idx);
25188 }
25189
25190 __extension__ extern __inline int8x16_t
25191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3q_s8(int8x16x3_t __tab,uint8x16_t __idx)25192 vqtbl3q_s8 (int8x16x3_t __tab, uint8x16_t __idx)
25193 {
25194 __builtin_aarch64_simd_ci __o;
25195 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25196 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25197 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25198 return __builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)__idx);
25199 }
25200
25201 __extension__ extern __inline uint8x16_t
25202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3q_u8(uint8x16x3_t __tab,uint8x16_t __idx)25203 vqtbl3q_u8 (uint8x16x3_t __tab, uint8x16_t __idx)
25204 {
25205 __builtin_aarch64_simd_ci __o;
25206 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25207 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25208 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25209 return (uint8x16_t)__builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)__idx);
25210 }
25211
25212 __extension__ extern __inline poly8x16_t
25213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl3q_p8(poly8x16x3_t __tab,uint8x16_t __idx)25214 vqtbl3q_p8 (poly8x16x3_t __tab, uint8x16_t __idx)
25215 {
25216 __builtin_aarch64_simd_ci __o;
25217 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25218 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25219 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25220 return (poly8x16_t)__builtin_aarch64_qtbl3v16qi (__o, (int8x16_t)__idx);
25221 }
25222
25223 /* vqtbl4 */
25224
25225 __extension__ extern __inline int8x8_t
25226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4_s8(int8x16x4_t __tab,uint8x8_t __idx)25227 vqtbl4_s8 (int8x16x4_t __tab, uint8x8_t __idx)
25228 {
25229 __builtin_aarch64_simd_xi __o;
25230 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25231 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25232 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25233 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25234 return __builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)__idx);
25235 }
25236
25237 __extension__ extern __inline uint8x8_t
25238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4_u8(uint8x16x4_t __tab,uint8x8_t __idx)25239 vqtbl4_u8 (uint8x16x4_t __tab, uint8x8_t __idx)
25240 {
25241 __builtin_aarch64_simd_xi __o;
25242 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25243 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25244 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25245 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25246 return (uint8x8_t)__builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)__idx);
25247 }
25248
25249 __extension__ extern __inline poly8x8_t
25250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4_p8(poly8x16x4_t __tab,uint8x8_t __idx)25251 vqtbl4_p8 (poly8x16x4_t __tab, uint8x8_t __idx)
25252 {
25253 __builtin_aarch64_simd_xi __o;
25254 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25255 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25256 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25257 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25258 return (poly8x8_t)__builtin_aarch64_qtbl4v8qi (__o, (int8x8_t)__idx);
25259 }
25260
25261 __extension__ extern __inline int8x16_t
25262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4q_s8(int8x16x4_t __tab,uint8x16_t __idx)25263 vqtbl4q_s8 (int8x16x4_t __tab, uint8x16_t __idx)
25264 {
25265 __builtin_aarch64_simd_xi __o;
25266 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25267 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25268 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25269 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25270 return __builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)__idx);
25271 }
25272
25273 __extension__ extern __inline uint8x16_t
25274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4q_u8(uint8x16x4_t __tab,uint8x16_t __idx)25275 vqtbl4q_u8 (uint8x16x4_t __tab, uint8x16_t __idx)
25276 {
25277 __builtin_aarch64_simd_xi __o;
25278 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25279 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25280 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25281 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25282 return (uint8x16_t)__builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)__idx);
25283 }
25284
25285 __extension__ extern __inline poly8x16_t
25286 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbl4q_p8(poly8x16x4_t __tab,uint8x16_t __idx)25287 vqtbl4q_p8 (poly8x16x4_t __tab, uint8x16_t __idx)
25288 {
25289 __builtin_aarch64_simd_xi __o;
25290 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25291 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25292 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25293 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25294 return (poly8x16_t)__builtin_aarch64_qtbl4v16qi (__o, (int8x16_t)__idx);
25295 }
25296
25297
25298 /* vqtbx2 */
25299 __extension__ extern __inline int8x8_t
25300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2_s8(int8x8_t __r,int8x16x2_t __tab,uint8x8_t __idx)25301 vqtbx2_s8 (int8x8_t __r, int8x16x2_t __tab, uint8x8_t __idx)
25302 {
25303 __builtin_aarch64_simd_oi __o;
25304 __o = __builtin_aarch64_set_qregoiv16qi (__o, __tab.val[0], 0);
25305 __o = __builtin_aarch64_set_qregoiv16qi (__o, __tab.val[1], 1);
25306 return __builtin_aarch64_tbx4v8qi (__r, __o, (int8x8_t)__idx);
25307 }
25308
25309 __extension__ extern __inline uint8x8_t
25310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2_u8(uint8x8_t __r,uint8x16x2_t __tab,uint8x8_t __idx)25311 vqtbx2_u8 (uint8x8_t __r, uint8x16x2_t __tab, uint8x8_t __idx)
25312 {
25313 __builtin_aarch64_simd_oi __o;
25314 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25315 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25316 return (uint8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
25317 (int8x8_t)__idx);
25318 }
25319
25320 __extension__ extern __inline poly8x8_t
25321 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2_p8(poly8x8_t __r,poly8x16x2_t __tab,uint8x8_t __idx)25322 vqtbx2_p8 (poly8x8_t __r, poly8x16x2_t __tab, uint8x8_t __idx)
25323 {
25324 __builtin_aarch64_simd_oi __o;
25325 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25326 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25327 return (poly8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
25328 (int8x8_t)__idx);
25329 }
25330
25331 __extension__ extern __inline int8x16_t
25332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2q_s8(int8x16_t __r,int8x16x2_t __tab,uint8x16_t __idx)25333 vqtbx2q_s8 (int8x16_t __r, int8x16x2_t __tab, uint8x16_t __idx)
25334 {
25335 __builtin_aarch64_simd_oi __o;
25336 __o = __builtin_aarch64_set_qregoiv16qi (__o, __tab.val[0], 0);
25337 __o = __builtin_aarch64_set_qregoiv16qi (__o, __tab.val[1], 1);
25338 return __builtin_aarch64_tbx4v16qi (__r, __o, (int8x16_t)__idx);
25339 }
25340
25341 __extension__ extern __inline uint8x16_t
25342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2q_u8(uint8x16_t __r,uint8x16x2_t __tab,uint8x16_t __idx)25343 vqtbx2q_u8 (uint8x16_t __r, uint8x16x2_t __tab, uint8x16_t __idx)
25344 {
25345 __builtin_aarch64_simd_oi __o;
25346 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25347 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25348 return (uint8x16_t)__builtin_aarch64_tbx4v16qi ((int8x16_t)__r, __o,
25349 (int8x16_t)__idx);
25350 }
25351
25352 __extension__ extern __inline poly8x16_t
25353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx2q_p8(poly8x16_t __r,poly8x16x2_t __tab,uint8x16_t __idx)25354 vqtbx2q_p8 (poly8x16_t __r, poly8x16x2_t __tab, uint8x16_t __idx)
25355 {
25356 __builtin_aarch64_simd_oi __o;
25357 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25358 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25359 return (poly8x16_t)__builtin_aarch64_tbx4v16qi ((int8x16_t)__r, __o,
25360 (int8x16_t)__idx);
25361 }
25362
25363 /* vqtbx3 */
25364 __extension__ extern __inline int8x8_t
25365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3_s8(int8x8_t __r,int8x16x3_t __tab,uint8x8_t __idx)25366 vqtbx3_s8 (int8x8_t __r, int8x16x3_t __tab, uint8x8_t __idx)
25367 {
25368 __builtin_aarch64_simd_ci __o;
25369 __o = __builtin_aarch64_set_qregciv16qi (__o, __tab.val[0], 0);
25370 __o = __builtin_aarch64_set_qregciv16qi (__o, __tab.val[1], 1);
25371 __o = __builtin_aarch64_set_qregciv16qi (__o, __tab.val[2], 2);
25372 return __builtin_aarch64_qtbx3v8qi (__r, __o, (int8x8_t)__idx);
25373 }
25374
25375 __extension__ extern __inline uint8x8_t
25376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3_u8(uint8x8_t __r,uint8x16x3_t __tab,uint8x8_t __idx)25377 vqtbx3_u8 (uint8x8_t __r, uint8x16x3_t __tab, uint8x8_t __idx)
25378 {
25379 __builtin_aarch64_simd_ci __o;
25380 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25381 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25382 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25383 return (uint8x8_t)__builtin_aarch64_qtbx3v8qi ((int8x8_t)__r, __o,
25384 (int8x8_t)__idx);
25385 }
25386
25387 __extension__ extern __inline poly8x8_t
25388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3_p8(poly8x8_t __r,poly8x16x3_t __tab,uint8x8_t __idx)25389 vqtbx3_p8 (poly8x8_t __r, poly8x16x3_t __tab, uint8x8_t __idx)
25390 {
25391 __builtin_aarch64_simd_ci __o;
25392 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25393 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25394 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25395 return (poly8x8_t)__builtin_aarch64_qtbx3v8qi ((int8x8_t)__r, __o,
25396 (int8x8_t)__idx);
25397 }
25398
25399 __extension__ extern __inline int8x16_t
25400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3q_s8(int8x16_t __r,int8x16x3_t __tab,uint8x16_t __idx)25401 vqtbx3q_s8 (int8x16_t __r, int8x16x3_t __tab, uint8x16_t __idx)
25402 {
25403 __builtin_aarch64_simd_ci __o;
25404 __o = __builtin_aarch64_set_qregciv16qi (__o, __tab.val[0], 0);
25405 __o = __builtin_aarch64_set_qregciv16qi (__o, __tab.val[1], 1);
25406 __o = __builtin_aarch64_set_qregciv16qi (__o, __tab.val[2], 2);
25407 return __builtin_aarch64_qtbx3v16qi (__r, __o, (int8x16_t)__idx);
25408 }
25409
25410 __extension__ extern __inline uint8x16_t
25411 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3q_u8(uint8x16_t __r,uint8x16x3_t __tab,uint8x16_t __idx)25412 vqtbx3q_u8 (uint8x16_t __r, uint8x16x3_t __tab, uint8x16_t __idx)
25413 {
25414 __builtin_aarch64_simd_ci __o;
25415 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25416 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25417 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25418 return (uint8x16_t)__builtin_aarch64_qtbx3v16qi ((int8x16_t)__r, __o,
25419 (int8x16_t)__idx);
25420 }
25421
25422 __extension__ extern __inline poly8x16_t
25423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx3q_p8(poly8x16_t __r,poly8x16x3_t __tab,uint8x16_t __idx)25424 vqtbx3q_p8 (poly8x16_t __r, poly8x16x3_t __tab, uint8x16_t __idx)
25425 {
25426 __builtin_aarch64_simd_ci __o;
25427 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[0], 0);
25428 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[1], 1);
25429 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t)__tab.val[2], 2);
25430 return (poly8x16_t)__builtin_aarch64_qtbx3v16qi ((int8x16_t)__r, __o,
25431 (int8x16_t)__idx);
25432 }
25433
25434 /* vqtbx4 */
25435
25436 __extension__ extern __inline int8x8_t
25437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4_s8(int8x8_t __r,int8x16x4_t __tab,uint8x8_t __idx)25438 vqtbx4_s8 (int8x8_t __r, int8x16x4_t __tab, uint8x8_t __idx)
25439 {
25440 __builtin_aarch64_simd_xi __o;
25441 __o = __builtin_aarch64_set_qregxiv16qi (__o, __tab.val[0], 0);
25442 __o = __builtin_aarch64_set_qregxiv16qi (__o, __tab.val[1], 1);
25443 __o = __builtin_aarch64_set_qregxiv16qi (__o, __tab.val[2], 2);
25444 __o = __builtin_aarch64_set_qregxiv16qi (__o, __tab.val[3], 3);
25445 return __builtin_aarch64_qtbx4v8qi (__r, __o, (int8x8_t)__idx);
25446 }
25447
25448 __extension__ extern __inline uint8x8_t
25449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4_u8(uint8x8_t __r,uint8x16x4_t __tab,uint8x8_t __idx)25450 vqtbx4_u8 (uint8x8_t __r, uint8x16x4_t __tab, uint8x8_t __idx)
25451 {
25452 __builtin_aarch64_simd_xi __o;
25453 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25454 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25455 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25456 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25457 return (uint8x8_t)__builtin_aarch64_qtbx4v8qi ((int8x8_t)__r, __o,
25458 (int8x8_t)__idx);
25459 }
25460
25461 __extension__ extern __inline poly8x8_t
25462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4_p8(poly8x8_t __r,poly8x16x4_t __tab,uint8x8_t __idx)25463 vqtbx4_p8 (poly8x8_t __r, poly8x16x4_t __tab, uint8x8_t __idx)
25464 {
25465 __builtin_aarch64_simd_xi __o;
25466 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25467 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25468 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25469 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25470 return (poly8x8_t)__builtin_aarch64_qtbx4v8qi ((int8x8_t)__r, __o,
25471 (int8x8_t)__idx);
25472 }
25473
25474 __extension__ extern __inline int8x16_t
25475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4q_s8(int8x16_t __r,int8x16x4_t __tab,uint8x16_t __idx)25476 vqtbx4q_s8 (int8x16_t __r, int8x16x4_t __tab, uint8x16_t __idx)
25477 {
25478 __builtin_aarch64_simd_xi __o;
25479 __o = __builtin_aarch64_set_qregxiv16qi (__o, __tab.val[0], 0);
25480 __o = __builtin_aarch64_set_qregxiv16qi (__o, __tab.val[1], 1);
25481 __o = __builtin_aarch64_set_qregxiv16qi (__o, __tab.val[2], 2);
25482 __o = __builtin_aarch64_set_qregxiv16qi (__o, __tab.val[3], 3);
25483 return __builtin_aarch64_qtbx4v16qi (__r, __o, (int8x16_t)__idx);
25484 }
25485
25486 __extension__ extern __inline uint8x16_t
25487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4q_u8(uint8x16_t __r,uint8x16x4_t __tab,uint8x16_t __idx)25488 vqtbx4q_u8 (uint8x16_t __r, uint8x16x4_t __tab, uint8x16_t __idx)
25489 {
25490 __builtin_aarch64_simd_xi __o;
25491 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25492 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25493 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25494 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25495 return (uint8x16_t)__builtin_aarch64_qtbx4v16qi ((int8x16_t)__r, __o,
25496 (int8x16_t)__idx);
25497 }
25498
25499 __extension__ extern __inline poly8x16_t
25500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vqtbx4q_p8(poly8x16_t __r,poly8x16x4_t __tab,uint8x16_t __idx)25501 vqtbx4q_p8 (poly8x16_t __r, poly8x16x4_t __tab, uint8x16_t __idx)
25502 {
25503 __builtin_aarch64_simd_xi __o;
25504 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[0], 0);
25505 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[1], 1);
25506 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[2], 2);
25507 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t)__tab.val[3], 3);
25508 return (poly8x16_t)__builtin_aarch64_qtbx4v16qi ((int8x16_t)__r, __o,
25509 (int8x16_t)__idx);
25510 }
25511
25512 /* vrbit */
25513
25514 __extension__ extern __inline poly8x8_t
25515 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbit_p8(poly8x8_t __a)25516 vrbit_p8 (poly8x8_t __a)
25517 {
25518 return (poly8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
25519 }
25520
25521 __extension__ extern __inline int8x8_t
25522 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbit_s8(int8x8_t __a)25523 vrbit_s8 (int8x8_t __a)
25524 {
25525 return __builtin_aarch64_rbitv8qi (__a);
25526 }
25527
25528 __extension__ extern __inline uint8x8_t
25529 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbit_u8(uint8x8_t __a)25530 vrbit_u8 (uint8x8_t __a)
25531 {
25532 return (uint8x8_t) __builtin_aarch64_rbitv8qi ((int8x8_t) __a);
25533 }
25534
25535 __extension__ extern __inline poly8x16_t
25536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbitq_p8(poly8x16_t __a)25537 vrbitq_p8 (poly8x16_t __a)
25538 {
25539 return (poly8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t)__a);
25540 }
25541
25542 __extension__ extern __inline int8x16_t
25543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbitq_s8(int8x16_t __a)25544 vrbitq_s8 (int8x16_t __a)
25545 {
25546 return __builtin_aarch64_rbitv16qi (__a);
25547 }
25548
25549 __extension__ extern __inline uint8x16_t
25550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrbitq_u8(uint8x16_t __a)25551 vrbitq_u8 (uint8x16_t __a)
25552 {
25553 return (uint8x16_t) __builtin_aarch64_rbitv16qi ((int8x16_t) __a);
25554 }
25555
25556 /* vrecpe */
25557
25558 __extension__ extern __inline uint32x2_t
25559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpe_u32(uint32x2_t __a)25560 vrecpe_u32 (uint32x2_t __a)
25561 {
25562 return (uint32x2_t) __builtin_aarch64_urecpev2si ((int32x2_t) __a);
25563 }
25564
25565 __extension__ extern __inline uint32x4_t
25566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpeq_u32(uint32x4_t __a)25567 vrecpeq_u32 (uint32x4_t __a)
25568 {
25569 return (uint32x4_t) __builtin_aarch64_urecpev4si ((int32x4_t) __a);
25570 }
25571
25572 __extension__ extern __inline float32_t
25573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpes_f32(float32_t __a)25574 vrecpes_f32 (float32_t __a)
25575 {
25576 return __builtin_aarch64_frecpesf (__a);
25577 }
25578
25579 __extension__ extern __inline float64_t
25580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecped_f64(float64_t __a)25581 vrecped_f64 (float64_t __a)
25582 {
25583 return __builtin_aarch64_frecpedf (__a);
25584 }
25585
25586 __extension__ extern __inline float32x2_t
25587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpe_f32(float32x2_t __a)25588 vrecpe_f32 (float32x2_t __a)
25589 {
25590 return __builtin_aarch64_frecpev2sf (__a);
25591 }
25592
25593 __extension__ extern __inline float64x1_t
25594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpe_f64(float64x1_t __a)25595 vrecpe_f64 (float64x1_t __a)
25596 {
25597 return (float64x1_t) { vrecped_f64 (vget_lane_f64 (__a, 0)) };
25598 }
25599
25600 __extension__ extern __inline float32x4_t
25601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpeq_f32(float32x4_t __a)25602 vrecpeq_f32 (float32x4_t __a)
25603 {
25604 return __builtin_aarch64_frecpev4sf (__a);
25605 }
25606
25607 __extension__ extern __inline float64x2_t
25608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpeq_f64(float64x2_t __a)25609 vrecpeq_f64 (float64x2_t __a)
25610 {
25611 return __builtin_aarch64_frecpev2df (__a);
25612 }
25613
25614 /* vrecps */
25615
25616 __extension__ extern __inline float32_t
25617 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpss_f32(float32_t __a,float32_t __b)25618 vrecpss_f32 (float32_t __a, float32_t __b)
25619 {
25620 return __builtin_aarch64_frecpssf (__a, __b);
25621 }
25622
25623 __extension__ extern __inline float64_t
25624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpsd_f64(float64_t __a,float64_t __b)25625 vrecpsd_f64 (float64_t __a, float64_t __b)
25626 {
25627 return __builtin_aarch64_frecpsdf (__a, __b);
25628 }
25629
25630 __extension__ extern __inline float32x2_t
25631 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecps_f32(float32x2_t __a,float32x2_t __b)25632 vrecps_f32 (float32x2_t __a, float32x2_t __b)
25633 {
25634 return __builtin_aarch64_frecpsv2sf (__a, __b);
25635 }
25636
25637 __extension__ extern __inline float64x1_t
25638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecps_f64(float64x1_t __a,float64x1_t __b)25639 vrecps_f64 (float64x1_t __a, float64x1_t __b)
25640 {
25641 return (float64x1_t) { vrecpsd_f64 (vget_lane_f64 (__a, 0),
25642 vget_lane_f64 (__b, 0)) };
25643 }
25644
25645 __extension__ extern __inline float32x4_t
25646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpsq_f32(float32x4_t __a,float32x4_t __b)25647 vrecpsq_f32 (float32x4_t __a, float32x4_t __b)
25648 {
25649 return __builtin_aarch64_frecpsv4sf (__a, __b);
25650 }
25651
25652 __extension__ extern __inline float64x2_t
25653 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpsq_f64(float64x2_t __a,float64x2_t __b)25654 vrecpsq_f64 (float64x2_t __a, float64x2_t __b)
25655 {
25656 return __builtin_aarch64_frecpsv2df (__a, __b);
25657 }
25658
25659 /* vrecpx */
25660
25661 __extension__ extern __inline float32_t
25662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpxs_f32(float32_t __a)25663 vrecpxs_f32 (float32_t __a)
25664 {
25665 return __builtin_aarch64_frecpxsf (__a);
25666 }
25667
25668 __extension__ extern __inline float64_t
25669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpxd_f64(float64_t __a)25670 vrecpxd_f64 (float64_t __a)
25671 {
25672 return __builtin_aarch64_frecpxdf (__a);
25673 }
25674
25675
25676 /* vrev */
25677
25678 __extension__ extern __inline poly8x8_t
25679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16_p8(poly8x8_t __a)25680 vrev16_p8 (poly8x8_t __a)
25681 {
25682 return __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25683 }
25684
25685 __extension__ extern __inline int8x8_t
25686 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16_s8(int8x8_t __a)25687 vrev16_s8 (int8x8_t __a)
25688 {
25689 return __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25690 }
25691
25692 __extension__ extern __inline uint8x8_t
25693 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16_u8(uint8x8_t __a)25694 vrev16_u8 (uint8x8_t __a)
25695 {
25696 return __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25697 }
25698
25699 __extension__ extern __inline poly8x16_t
25700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16q_p8(poly8x16_t __a)25701 vrev16q_p8 (poly8x16_t __a)
25702 {
25703 return __builtin_shuffle (__a,
25704 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25705 }
25706
25707 __extension__ extern __inline int8x16_t
25708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16q_s8(int8x16_t __a)25709 vrev16q_s8 (int8x16_t __a)
25710 {
25711 return __builtin_shuffle (__a,
25712 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25713 }
25714
25715 __extension__ extern __inline uint8x16_t
25716 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev16q_u8(uint8x16_t __a)25717 vrev16q_u8 (uint8x16_t __a)
25718 {
25719 return __builtin_shuffle (__a,
25720 (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 });
25721 }
25722
25723 __extension__ extern __inline poly8x8_t
25724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_p8(poly8x8_t __a)25725 vrev32_p8 (poly8x8_t __a)
25726 {
25727 return __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25728 }
25729
25730 __extension__ extern __inline poly16x4_t
25731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_p16(poly16x4_t __a)25732 vrev32_p16 (poly16x4_t __a)
25733 {
25734 return __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
25735 }
25736
25737 __extension__ extern __inline int8x8_t
25738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_s8(int8x8_t __a)25739 vrev32_s8 (int8x8_t __a)
25740 {
25741 return __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25742 }
25743
25744 __extension__ extern __inline int16x4_t
25745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_s16(int16x4_t __a)25746 vrev32_s16 (int16x4_t __a)
25747 {
25748 return __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
25749 }
25750
25751 __extension__ extern __inline uint8x8_t
25752 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_u8(uint8x8_t __a)25753 vrev32_u8 (uint8x8_t __a)
25754 {
25755 return __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25756 }
25757
25758 __extension__ extern __inline uint16x4_t
25759 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32_u16(uint16x4_t __a)25760 vrev32_u16 (uint16x4_t __a)
25761 {
25762 return __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 });
25763 }
25764
25765 __extension__ extern __inline poly8x16_t
25766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_p8(poly8x16_t __a)25767 vrev32q_p8 (poly8x16_t __a)
25768 {
25769 return __builtin_shuffle (__a,
25770 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25771 }
25772
25773 __extension__ extern __inline poly16x8_t
25774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_p16(poly16x8_t __a)25775 vrev32q_p16 (poly16x8_t __a)
25776 {
25777 return __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25778 }
25779
25780 __extension__ extern __inline int8x16_t
25781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_s8(int8x16_t __a)25782 vrev32q_s8 (int8x16_t __a)
25783 {
25784 return __builtin_shuffle (__a,
25785 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25786 }
25787
25788 __extension__ extern __inline int16x8_t
25789 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_s16(int16x8_t __a)25790 vrev32q_s16 (int16x8_t __a)
25791 {
25792 return __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25793 }
25794
25795 __extension__ extern __inline uint8x16_t
25796 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_u8(uint8x16_t __a)25797 vrev32q_u8 (uint8x16_t __a)
25798 {
25799 return __builtin_shuffle (__a,
25800 (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 });
25801 }
25802
25803 __extension__ extern __inline uint16x8_t
25804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev32q_u16(uint16x8_t __a)25805 vrev32q_u16 (uint16x8_t __a)
25806 {
25807 return __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 });
25808 }
25809
25810 __extension__ extern __inline float16x4_t
25811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_f16(float16x4_t __a)25812 vrev64_f16 (float16x4_t __a)
25813 {
25814 return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
25815 }
25816
25817 __extension__ extern __inline float32x2_t
25818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_f32(float32x2_t __a)25819 vrev64_f32 (float32x2_t __a)
25820 {
25821 return __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
25822 }
25823
25824 __extension__ extern __inline poly8x8_t
25825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_p8(poly8x8_t __a)25826 vrev64_p8 (poly8x8_t __a)
25827 {
25828 return __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25829 }
25830
25831 __extension__ extern __inline poly16x4_t
25832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_p16(poly16x4_t __a)25833 vrev64_p16 (poly16x4_t __a)
25834 {
25835 return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
25836 }
25837
25838 __extension__ extern __inline int8x8_t
25839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_s8(int8x8_t __a)25840 vrev64_s8 (int8x8_t __a)
25841 {
25842 return __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25843 }
25844
25845 __extension__ extern __inline int16x4_t
25846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_s16(int16x4_t __a)25847 vrev64_s16 (int16x4_t __a)
25848 {
25849 return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
25850 }
25851
25852 __extension__ extern __inline int32x2_t
25853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_s32(int32x2_t __a)25854 vrev64_s32 (int32x2_t __a)
25855 {
25856 return __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
25857 }
25858
25859 __extension__ extern __inline uint8x8_t
25860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_u8(uint8x8_t __a)25861 vrev64_u8 (uint8x8_t __a)
25862 {
25863 return __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 });
25864 }
25865
25866 __extension__ extern __inline uint16x4_t
25867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_u16(uint16x4_t __a)25868 vrev64_u16 (uint16x4_t __a)
25869 {
25870 return __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 });
25871 }
25872
25873 __extension__ extern __inline uint32x2_t
25874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64_u32(uint32x2_t __a)25875 vrev64_u32 (uint32x2_t __a)
25876 {
25877 return __builtin_shuffle (__a, (uint32x2_t) { 1, 0 });
25878 }
25879
25880 __extension__ extern __inline float16x8_t
25881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_f16(float16x8_t __a)25882 vrev64q_f16 (float16x8_t __a)
25883 {
25884 return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25885 }
25886
25887 __extension__ extern __inline float32x4_t
25888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_f32(float32x4_t __a)25889 vrev64q_f32 (float32x4_t __a)
25890 {
25891 return __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
25892 }
25893
25894 __extension__ extern __inline poly8x16_t
25895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_p8(poly8x16_t __a)25896 vrev64q_p8 (poly8x16_t __a)
25897 {
25898 return __builtin_shuffle (__a,
25899 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
25900 }
25901
25902 __extension__ extern __inline poly16x8_t
25903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_p16(poly16x8_t __a)25904 vrev64q_p16 (poly16x8_t __a)
25905 {
25906 return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25907 }
25908
25909 __extension__ extern __inline int8x16_t
25910 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_s8(int8x16_t __a)25911 vrev64q_s8 (int8x16_t __a)
25912 {
25913 return __builtin_shuffle (__a,
25914 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
25915 }
25916
25917 __extension__ extern __inline int16x8_t
25918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_s16(int16x8_t __a)25919 vrev64q_s16 (int16x8_t __a)
25920 {
25921 return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25922 }
25923
25924 __extension__ extern __inline int32x4_t
25925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_s32(int32x4_t __a)25926 vrev64q_s32 (int32x4_t __a)
25927 {
25928 return __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
25929 }
25930
25931 __extension__ extern __inline uint8x16_t
25932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_u8(uint8x16_t __a)25933 vrev64q_u8 (uint8x16_t __a)
25934 {
25935 return __builtin_shuffle (__a,
25936 (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 });
25937 }
25938
25939 __extension__ extern __inline uint16x8_t
25940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_u16(uint16x8_t __a)25941 vrev64q_u16 (uint16x8_t __a)
25942 {
25943 return __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 });
25944 }
25945
25946 __extension__ extern __inline uint32x4_t
25947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrev64q_u32(uint32x4_t __a)25948 vrev64q_u32 (uint32x4_t __a)
25949 {
25950 return __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 });
25951 }
25952
25953 /* vrnd */
25954
25955 __extension__ extern __inline float32x2_t
25956 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd_f32(float32x2_t __a)25957 vrnd_f32 (float32x2_t __a)
25958 {
25959 return __builtin_aarch64_btruncv2sf (__a);
25960 }
25961
25962 __extension__ extern __inline float64x1_t
25963 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd_f64(float64x1_t __a)25964 vrnd_f64 (float64x1_t __a)
25965 {
25966 return vset_lane_f64 (__builtin_trunc (vget_lane_f64 (__a, 0)), __a, 0);
25967 }
25968
25969 __extension__ extern __inline float32x4_t
25970 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndq_f32(float32x4_t __a)25971 vrndq_f32 (float32x4_t __a)
25972 {
25973 return __builtin_aarch64_btruncv4sf (__a);
25974 }
25975
25976 __extension__ extern __inline float64x2_t
25977 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndq_f64(float64x2_t __a)25978 vrndq_f64 (float64x2_t __a)
25979 {
25980 return __builtin_aarch64_btruncv2df (__a);
25981 }
25982
25983 /* vrnda */
25984
25985 __extension__ extern __inline float32x2_t
25986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnda_f32(float32x2_t __a)25987 vrnda_f32 (float32x2_t __a)
25988 {
25989 return __builtin_aarch64_roundv2sf (__a);
25990 }
25991
25992 __extension__ extern __inline float64x1_t
25993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnda_f64(float64x1_t __a)25994 vrnda_f64 (float64x1_t __a)
25995 {
25996 return vset_lane_f64 (__builtin_round (vget_lane_f64 (__a, 0)), __a, 0);
25997 }
25998
25999 __extension__ extern __inline float32x4_t
26000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndaq_f32(float32x4_t __a)26001 vrndaq_f32 (float32x4_t __a)
26002 {
26003 return __builtin_aarch64_roundv4sf (__a);
26004 }
26005
26006 __extension__ extern __inline float64x2_t
26007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndaq_f64(float64x2_t __a)26008 vrndaq_f64 (float64x2_t __a)
26009 {
26010 return __builtin_aarch64_roundv2df (__a);
26011 }
26012
26013 /* vrndi */
26014
26015 __extension__ extern __inline float32x2_t
26016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndi_f32(float32x2_t __a)26017 vrndi_f32 (float32x2_t __a)
26018 {
26019 return __builtin_aarch64_nearbyintv2sf (__a);
26020 }
26021
26022 __extension__ extern __inline float64x1_t
26023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndi_f64(float64x1_t __a)26024 vrndi_f64 (float64x1_t __a)
26025 {
26026 return vset_lane_f64 (__builtin_nearbyint (vget_lane_f64 (__a, 0)), __a, 0);
26027 }
26028
26029 __extension__ extern __inline float32x4_t
26030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndiq_f32(float32x4_t __a)26031 vrndiq_f32 (float32x4_t __a)
26032 {
26033 return __builtin_aarch64_nearbyintv4sf (__a);
26034 }
26035
26036 __extension__ extern __inline float64x2_t
26037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndiq_f64(float64x2_t __a)26038 vrndiq_f64 (float64x2_t __a)
26039 {
26040 return __builtin_aarch64_nearbyintv2df (__a);
26041 }
26042
26043 /* vrndm */
26044
26045 __extension__ extern __inline float32x2_t
26046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndm_f32(float32x2_t __a)26047 vrndm_f32 (float32x2_t __a)
26048 {
26049 return __builtin_aarch64_floorv2sf (__a);
26050 }
26051
26052 __extension__ extern __inline float64x1_t
26053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndm_f64(float64x1_t __a)26054 vrndm_f64 (float64x1_t __a)
26055 {
26056 return vset_lane_f64 (__builtin_floor (vget_lane_f64 (__a, 0)), __a, 0);
26057 }
26058
26059 __extension__ extern __inline float32x4_t
26060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndmq_f32(float32x4_t __a)26061 vrndmq_f32 (float32x4_t __a)
26062 {
26063 return __builtin_aarch64_floorv4sf (__a);
26064 }
26065
26066 __extension__ extern __inline float64x2_t
26067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndmq_f64(float64x2_t __a)26068 vrndmq_f64 (float64x2_t __a)
26069 {
26070 return __builtin_aarch64_floorv2df (__a);
26071 }
26072
26073 /* vrndn */
26074
26075 __extension__ extern __inline float32_t
26076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndns_f32(float32_t __a)26077 vrndns_f32 (float32_t __a)
26078 {
26079 return __builtin_aarch64_frintnsf (__a);
26080 }
26081
26082 __extension__ extern __inline float32x2_t
26083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndn_f32(float32x2_t __a)26084 vrndn_f32 (float32x2_t __a)
26085 {
26086 return __builtin_aarch64_frintnv2sf (__a);
26087 }
26088
26089 __extension__ extern __inline float64x1_t
26090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndn_f64(float64x1_t __a)26091 vrndn_f64 (float64x1_t __a)
26092 {
26093 return (float64x1_t) {__builtin_aarch64_frintndf (__a[0])};
26094 }
26095
26096 __extension__ extern __inline float32x4_t
26097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndnq_f32(float32x4_t __a)26098 vrndnq_f32 (float32x4_t __a)
26099 {
26100 return __builtin_aarch64_frintnv4sf (__a);
26101 }
26102
26103 __extension__ extern __inline float64x2_t
26104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndnq_f64(float64x2_t __a)26105 vrndnq_f64 (float64x2_t __a)
26106 {
26107 return __builtin_aarch64_frintnv2df (__a);
26108 }
26109
26110 /* vrndp */
26111
26112 __extension__ extern __inline float32x2_t
26113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndp_f32(float32x2_t __a)26114 vrndp_f32 (float32x2_t __a)
26115 {
26116 return __builtin_aarch64_ceilv2sf (__a);
26117 }
26118
26119 __extension__ extern __inline float64x1_t
26120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndp_f64(float64x1_t __a)26121 vrndp_f64 (float64x1_t __a)
26122 {
26123 return vset_lane_f64 (__builtin_ceil (vget_lane_f64 (__a, 0)), __a, 0);
26124 }
26125
26126 __extension__ extern __inline float32x4_t
26127 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndpq_f32(float32x4_t __a)26128 vrndpq_f32 (float32x4_t __a)
26129 {
26130 return __builtin_aarch64_ceilv4sf (__a);
26131 }
26132
26133 __extension__ extern __inline float64x2_t
26134 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndpq_f64(float64x2_t __a)26135 vrndpq_f64 (float64x2_t __a)
26136 {
26137 return __builtin_aarch64_ceilv2df (__a);
26138 }
26139
26140 /* vrndx */
26141
26142 __extension__ extern __inline float32x2_t
26143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndx_f32(float32x2_t __a)26144 vrndx_f32 (float32x2_t __a)
26145 {
26146 return __builtin_aarch64_rintv2sf (__a);
26147 }
26148
26149 __extension__ extern __inline float64x1_t
26150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndx_f64(float64x1_t __a)26151 vrndx_f64 (float64x1_t __a)
26152 {
26153 return vset_lane_f64 (__builtin_rint (vget_lane_f64 (__a, 0)), __a, 0);
26154 }
26155
26156 __extension__ extern __inline float32x4_t
26157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndxq_f32(float32x4_t __a)26158 vrndxq_f32 (float32x4_t __a)
26159 {
26160 return __builtin_aarch64_rintv4sf (__a);
26161 }
26162
26163 __extension__ extern __inline float64x2_t
26164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndxq_f64(float64x2_t __a)26165 vrndxq_f64 (float64x2_t __a)
26166 {
26167 return __builtin_aarch64_rintv2df (__a);
26168 }
26169
26170 /* vrshl */
26171
26172 __extension__ extern __inline int8x8_t
26173 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_s8(int8x8_t __a,int8x8_t __b)26174 vrshl_s8 (int8x8_t __a, int8x8_t __b)
26175 {
26176 return (int8x8_t) __builtin_aarch64_srshlv8qi (__a, __b);
26177 }
26178
26179 __extension__ extern __inline int16x4_t
26180 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_s16(int16x4_t __a,int16x4_t __b)26181 vrshl_s16 (int16x4_t __a, int16x4_t __b)
26182 {
26183 return (int16x4_t) __builtin_aarch64_srshlv4hi (__a, __b);
26184 }
26185
26186 __extension__ extern __inline int32x2_t
26187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_s32(int32x2_t __a,int32x2_t __b)26188 vrshl_s32 (int32x2_t __a, int32x2_t __b)
26189 {
26190 return (int32x2_t) __builtin_aarch64_srshlv2si (__a, __b);
26191 }
26192
26193 __extension__ extern __inline int64x1_t
26194 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_s64(int64x1_t __a,int64x1_t __b)26195 vrshl_s64 (int64x1_t __a, int64x1_t __b)
26196 {
26197 return (int64x1_t) {__builtin_aarch64_srshldi (__a[0], __b[0])};
26198 }
26199
26200 __extension__ extern __inline uint8x8_t
26201 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_u8(uint8x8_t __a,int8x8_t __b)26202 vrshl_u8 (uint8x8_t __a, int8x8_t __b)
26203 {
26204 return __builtin_aarch64_urshlv8qi_uus (__a, __b);
26205 }
26206
26207 __extension__ extern __inline uint16x4_t
26208 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_u16(uint16x4_t __a,int16x4_t __b)26209 vrshl_u16 (uint16x4_t __a, int16x4_t __b)
26210 {
26211 return __builtin_aarch64_urshlv4hi_uus (__a, __b);
26212 }
26213
26214 __extension__ extern __inline uint32x2_t
26215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_u32(uint32x2_t __a,int32x2_t __b)26216 vrshl_u32 (uint32x2_t __a, int32x2_t __b)
26217 {
26218 return __builtin_aarch64_urshlv2si_uus (__a, __b);
26219 }
26220
26221 __extension__ extern __inline uint64x1_t
26222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshl_u64(uint64x1_t __a,int64x1_t __b)26223 vrshl_u64 (uint64x1_t __a, int64x1_t __b)
26224 {
26225 return (uint64x1_t) {__builtin_aarch64_urshldi_uus (__a[0], __b[0])};
26226 }
26227
26228 __extension__ extern __inline int8x16_t
26229 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_s8(int8x16_t __a,int8x16_t __b)26230 vrshlq_s8 (int8x16_t __a, int8x16_t __b)
26231 {
26232 return (int8x16_t) __builtin_aarch64_srshlv16qi (__a, __b);
26233 }
26234
26235 __extension__ extern __inline int16x8_t
26236 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_s16(int16x8_t __a,int16x8_t __b)26237 vrshlq_s16 (int16x8_t __a, int16x8_t __b)
26238 {
26239 return (int16x8_t) __builtin_aarch64_srshlv8hi (__a, __b);
26240 }
26241
26242 __extension__ extern __inline int32x4_t
26243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_s32(int32x4_t __a,int32x4_t __b)26244 vrshlq_s32 (int32x4_t __a, int32x4_t __b)
26245 {
26246 return (int32x4_t) __builtin_aarch64_srshlv4si (__a, __b);
26247 }
26248
26249 __extension__ extern __inline int64x2_t
26250 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_s64(int64x2_t __a,int64x2_t __b)26251 vrshlq_s64 (int64x2_t __a, int64x2_t __b)
26252 {
26253 return (int64x2_t) __builtin_aarch64_srshlv2di (__a, __b);
26254 }
26255
26256 __extension__ extern __inline uint8x16_t
26257 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_u8(uint8x16_t __a,int8x16_t __b)26258 vrshlq_u8 (uint8x16_t __a, int8x16_t __b)
26259 {
26260 return __builtin_aarch64_urshlv16qi_uus (__a, __b);
26261 }
26262
26263 __extension__ extern __inline uint16x8_t
26264 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_u16(uint16x8_t __a,int16x8_t __b)26265 vrshlq_u16 (uint16x8_t __a, int16x8_t __b)
26266 {
26267 return __builtin_aarch64_urshlv8hi_uus (__a, __b);
26268 }
26269
26270 __extension__ extern __inline uint32x4_t
26271 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_u32(uint32x4_t __a,int32x4_t __b)26272 vrshlq_u32 (uint32x4_t __a, int32x4_t __b)
26273 {
26274 return __builtin_aarch64_urshlv4si_uus (__a, __b);
26275 }
26276
26277 __extension__ extern __inline uint64x2_t
26278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshlq_u64(uint64x2_t __a,int64x2_t __b)26279 vrshlq_u64 (uint64x2_t __a, int64x2_t __b)
26280 {
26281 return __builtin_aarch64_urshlv2di_uus (__a, __b);
26282 }
26283
26284 __extension__ extern __inline int64_t
26285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshld_s64(int64_t __a,int64_t __b)26286 vrshld_s64 (int64_t __a, int64_t __b)
26287 {
26288 return __builtin_aarch64_srshldi (__a, __b);
26289 }
26290
26291 __extension__ extern __inline uint64_t
26292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshld_u64(uint64_t __a,int64_t __b)26293 vrshld_u64 (uint64_t __a, int64_t __b)
26294 {
26295 return __builtin_aarch64_urshldi_uus (__a, __b);
26296 }
26297
26298 /* vrshr */
26299
26300 __extension__ extern __inline int8x8_t
26301 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_s8(int8x8_t __a,const int __b)26302 vrshr_n_s8 (int8x8_t __a, const int __b)
26303 {
26304 return (int8x8_t) __builtin_aarch64_srshr_nv8qi (__a, __b);
26305 }
26306
26307 __extension__ extern __inline int16x4_t
26308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_s16(int16x4_t __a,const int __b)26309 vrshr_n_s16 (int16x4_t __a, const int __b)
26310 {
26311 return (int16x4_t) __builtin_aarch64_srshr_nv4hi (__a, __b);
26312 }
26313
26314 __extension__ extern __inline int32x2_t
26315 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_s32(int32x2_t __a,const int __b)26316 vrshr_n_s32 (int32x2_t __a, const int __b)
26317 {
26318 return (int32x2_t) __builtin_aarch64_srshr_nv2si (__a, __b);
26319 }
26320
26321 __extension__ extern __inline int64x1_t
26322 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_s64(int64x1_t __a,const int __b)26323 vrshr_n_s64 (int64x1_t __a, const int __b)
26324 {
26325 return (int64x1_t) {__builtin_aarch64_srshr_ndi (__a[0], __b)};
26326 }
26327
26328 __extension__ extern __inline uint8x8_t
26329 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_u8(uint8x8_t __a,const int __b)26330 vrshr_n_u8 (uint8x8_t __a, const int __b)
26331 {
26332 return __builtin_aarch64_urshr_nv8qi_uus (__a, __b);
26333 }
26334
26335 __extension__ extern __inline uint16x4_t
26336 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_u16(uint16x4_t __a,const int __b)26337 vrshr_n_u16 (uint16x4_t __a, const int __b)
26338 {
26339 return __builtin_aarch64_urshr_nv4hi_uus (__a, __b);
26340 }
26341
26342 __extension__ extern __inline uint32x2_t
26343 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_u32(uint32x2_t __a,const int __b)26344 vrshr_n_u32 (uint32x2_t __a, const int __b)
26345 {
26346 return __builtin_aarch64_urshr_nv2si_uus (__a, __b);
26347 }
26348
26349 __extension__ extern __inline uint64x1_t
26350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshr_n_u64(uint64x1_t __a,const int __b)26351 vrshr_n_u64 (uint64x1_t __a, const int __b)
26352 {
26353 return (uint64x1_t) {__builtin_aarch64_urshr_ndi_uus (__a[0], __b)};
26354 }
26355
26356 __extension__ extern __inline int8x16_t
26357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_s8(int8x16_t __a,const int __b)26358 vrshrq_n_s8 (int8x16_t __a, const int __b)
26359 {
26360 return (int8x16_t) __builtin_aarch64_srshr_nv16qi (__a, __b);
26361 }
26362
26363 __extension__ extern __inline int16x8_t
26364 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_s16(int16x8_t __a,const int __b)26365 vrshrq_n_s16 (int16x8_t __a, const int __b)
26366 {
26367 return (int16x8_t) __builtin_aarch64_srshr_nv8hi (__a, __b);
26368 }
26369
26370 __extension__ extern __inline int32x4_t
26371 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_s32(int32x4_t __a,const int __b)26372 vrshrq_n_s32 (int32x4_t __a, const int __b)
26373 {
26374 return (int32x4_t) __builtin_aarch64_srshr_nv4si (__a, __b);
26375 }
26376
26377 __extension__ extern __inline int64x2_t
26378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_s64(int64x2_t __a,const int __b)26379 vrshrq_n_s64 (int64x2_t __a, const int __b)
26380 {
26381 return (int64x2_t) __builtin_aarch64_srshr_nv2di (__a, __b);
26382 }
26383
26384 __extension__ extern __inline uint8x16_t
26385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_u8(uint8x16_t __a,const int __b)26386 vrshrq_n_u8 (uint8x16_t __a, const int __b)
26387 {
26388 return __builtin_aarch64_urshr_nv16qi_uus (__a, __b);
26389 }
26390
26391 __extension__ extern __inline uint16x8_t
26392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_u16(uint16x8_t __a,const int __b)26393 vrshrq_n_u16 (uint16x8_t __a, const int __b)
26394 {
26395 return __builtin_aarch64_urshr_nv8hi_uus (__a, __b);
26396 }
26397
26398 __extension__ extern __inline uint32x4_t
26399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_u32(uint32x4_t __a,const int __b)26400 vrshrq_n_u32 (uint32x4_t __a, const int __b)
26401 {
26402 return __builtin_aarch64_urshr_nv4si_uus (__a, __b);
26403 }
26404
26405 __extension__ extern __inline uint64x2_t
26406 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrq_n_u64(uint64x2_t __a,const int __b)26407 vrshrq_n_u64 (uint64x2_t __a, const int __b)
26408 {
26409 return __builtin_aarch64_urshr_nv2di_uus (__a, __b);
26410 }
26411
26412 __extension__ extern __inline int64_t
26413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrd_n_s64(int64_t __a,const int __b)26414 vrshrd_n_s64 (int64_t __a, const int __b)
26415 {
26416 return __builtin_aarch64_srshr_ndi (__a, __b);
26417 }
26418
26419 __extension__ extern __inline uint64_t
26420 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrshrd_n_u64(uint64_t __a,const int __b)26421 vrshrd_n_u64 (uint64_t __a, const int __b)
26422 {
26423 return __builtin_aarch64_urshr_ndi_uus (__a, __b);
26424 }
26425
26426 /* vrsqrte. */
26427
26428 __extension__ extern __inline float32_t
26429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtes_f32(float32_t __a)26430 vrsqrtes_f32 (float32_t __a)
26431 {
26432 return __builtin_aarch64_rsqrtesf (__a);
26433 }
26434
26435 __extension__ extern __inline float64_t
26436 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrted_f64(float64_t __a)26437 vrsqrted_f64 (float64_t __a)
26438 {
26439 return __builtin_aarch64_rsqrtedf (__a);
26440 }
26441
26442 __extension__ extern __inline float32x2_t
26443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrte_f32(float32x2_t __a)26444 vrsqrte_f32 (float32x2_t __a)
26445 {
26446 return __builtin_aarch64_rsqrtev2sf (__a);
26447 }
26448
26449 __extension__ extern __inline float64x1_t
26450 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrte_f64(float64x1_t __a)26451 vrsqrte_f64 (float64x1_t __a)
26452 {
26453 return (float64x1_t) {vrsqrted_f64 (vget_lane_f64 (__a, 0))};
26454 }
26455
26456 __extension__ extern __inline float32x4_t
26457 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrteq_f32(float32x4_t __a)26458 vrsqrteq_f32 (float32x4_t __a)
26459 {
26460 return __builtin_aarch64_rsqrtev4sf (__a);
26461 }
26462
26463 __extension__ extern __inline float64x2_t
26464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrteq_f64(float64x2_t __a)26465 vrsqrteq_f64 (float64x2_t __a)
26466 {
26467 return __builtin_aarch64_rsqrtev2df (__a);
26468 }
26469
26470 /* vrsqrts. */
26471
26472 __extension__ extern __inline float32_t
26473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtss_f32(float32_t __a,float32_t __b)26474 vrsqrtss_f32 (float32_t __a, float32_t __b)
26475 {
26476 return __builtin_aarch64_rsqrtssf (__a, __b);
26477 }
26478
26479 __extension__ extern __inline float64_t
26480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtsd_f64(float64_t __a,float64_t __b)26481 vrsqrtsd_f64 (float64_t __a, float64_t __b)
26482 {
26483 return __builtin_aarch64_rsqrtsdf (__a, __b);
26484 }
26485
26486 __extension__ extern __inline float32x2_t
26487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrts_f32(float32x2_t __a,float32x2_t __b)26488 vrsqrts_f32 (float32x2_t __a, float32x2_t __b)
26489 {
26490 return __builtin_aarch64_rsqrtsv2sf (__a, __b);
26491 }
26492
26493 __extension__ extern __inline float64x1_t
26494 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrts_f64(float64x1_t __a,float64x1_t __b)26495 vrsqrts_f64 (float64x1_t __a, float64x1_t __b)
26496 {
26497 return (float64x1_t) {vrsqrtsd_f64 (vget_lane_f64 (__a, 0),
26498 vget_lane_f64 (__b, 0))};
26499 }
26500
26501 __extension__ extern __inline float32x4_t
26502 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtsq_f32(float32x4_t __a,float32x4_t __b)26503 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b)
26504 {
26505 return __builtin_aarch64_rsqrtsv4sf (__a, __b);
26506 }
26507
26508 __extension__ extern __inline float64x2_t
26509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtsq_f64(float64x2_t __a,float64x2_t __b)26510 vrsqrtsq_f64 (float64x2_t __a, float64x2_t __b)
26511 {
26512 return __builtin_aarch64_rsqrtsv2df (__a, __b);
26513 }
26514
26515 /* vrsra */
26516
26517 __extension__ extern __inline int8x8_t
26518 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_s8(int8x8_t __a,int8x8_t __b,const int __c)26519 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
26520 {
26521 return (int8x8_t) __builtin_aarch64_srsra_nv8qi (__a, __b, __c);
26522 }
26523
26524 __extension__ extern __inline int16x4_t
26525 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_s16(int16x4_t __a,int16x4_t __b,const int __c)26526 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
26527 {
26528 return (int16x4_t) __builtin_aarch64_srsra_nv4hi (__a, __b, __c);
26529 }
26530
26531 __extension__ extern __inline int32x2_t
26532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_s32(int32x2_t __a,int32x2_t __b,const int __c)26533 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
26534 {
26535 return (int32x2_t) __builtin_aarch64_srsra_nv2si (__a, __b, __c);
26536 }
26537
26538 __extension__ extern __inline int64x1_t
26539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_s64(int64x1_t __a,int64x1_t __b,const int __c)26540 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
26541 {
26542 return (int64x1_t) {__builtin_aarch64_srsra_ndi (__a[0], __b[0], __c)};
26543 }
26544
26545 __extension__ extern __inline uint8x8_t
26546 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)26547 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
26548 {
26549 return __builtin_aarch64_ursra_nv8qi_uuus (__a, __b, __c);
26550 }
26551
26552 __extension__ extern __inline uint16x4_t
26553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)26554 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
26555 {
26556 return __builtin_aarch64_ursra_nv4hi_uuus (__a, __b, __c);
26557 }
26558
26559 __extension__ extern __inline uint32x2_t
26560 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)26561 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
26562 {
26563 return __builtin_aarch64_ursra_nv2si_uuus (__a, __b, __c);
26564 }
26565
26566 __extension__ extern __inline uint64x1_t
26567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsra_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)26568 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
26569 {
26570 return (uint64x1_t) {__builtin_aarch64_ursra_ndi_uuus (__a[0], __b[0], __c)};
26571 }
26572
26573 __extension__ extern __inline int8x16_t
26574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)26575 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
26576 {
26577 return (int8x16_t) __builtin_aarch64_srsra_nv16qi (__a, __b, __c);
26578 }
26579
26580 __extension__ extern __inline int16x8_t
26581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)26582 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
26583 {
26584 return (int16x8_t) __builtin_aarch64_srsra_nv8hi (__a, __b, __c);
26585 }
26586
26587 __extension__ extern __inline int32x4_t
26588 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)26589 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
26590 {
26591 return (int32x4_t) __builtin_aarch64_srsra_nv4si (__a, __b, __c);
26592 }
26593
26594 __extension__ extern __inline int64x2_t
26595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)26596 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
26597 {
26598 return (int64x2_t) __builtin_aarch64_srsra_nv2di (__a, __b, __c);
26599 }
26600
26601 __extension__ extern __inline uint8x16_t
26602 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)26603 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
26604 {
26605 return __builtin_aarch64_ursra_nv16qi_uuus (__a, __b, __c);
26606 }
26607
26608 __extension__ extern __inline uint16x8_t
26609 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)26610 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
26611 {
26612 return __builtin_aarch64_ursra_nv8hi_uuus (__a, __b, __c);
26613 }
26614
26615 __extension__ extern __inline uint32x4_t
26616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)26617 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
26618 {
26619 return __builtin_aarch64_ursra_nv4si_uuus (__a, __b, __c);
26620 }
26621
26622 __extension__ extern __inline uint64x2_t
26623 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsraq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)26624 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
26625 {
26626 return __builtin_aarch64_ursra_nv2di_uuus (__a, __b, __c);
26627 }
26628
26629 __extension__ extern __inline int64_t
26630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsrad_n_s64(int64_t __a,int64_t __b,const int __c)26631 vrsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
26632 {
26633 return __builtin_aarch64_srsra_ndi (__a, __b, __c);
26634 }
26635
26636 __extension__ extern __inline uint64_t
26637 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsrad_n_u64(uint64_t __a,uint64_t __b,const int __c)26638 vrsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
26639 {
26640 return __builtin_aarch64_ursra_ndi_uuus (__a, __b, __c);
26641 }
26642
26643 #pragma GCC push_options
26644 #pragma GCC target ("+nothing+crypto")
26645
26646 /* vsha1 */
26647
26648 __extension__ extern __inline uint32x4_t
26649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1cq_u32(uint32x4_t __hash_abcd,uint32_t __hash_e,uint32x4_t __wk)26650 vsha1cq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
26651 {
26652 return __builtin_aarch64_crypto_sha1cv4si_uuuu (__hash_abcd, __hash_e, __wk);
26653 }
26654
26655 __extension__ extern __inline uint32x4_t
26656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1mq_u32(uint32x4_t __hash_abcd,uint32_t __hash_e,uint32x4_t __wk)26657 vsha1mq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
26658 {
26659 return __builtin_aarch64_crypto_sha1mv4si_uuuu (__hash_abcd, __hash_e, __wk);
26660 }
26661
26662 __extension__ extern __inline uint32x4_t
26663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1pq_u32(uint32x4_t __hash_abcd,uint32_t __hash_e,uint32x4_t __wk)26664 vsha1pq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk)
26665 {
26666 return __builtin_aarch64_crypto_sha1pv4si_uuuu (__hash_abcd, __hash_e, __wk);
26667 }
26668
26669 __extension__ extern __inline uint32_t
26670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1h_u32(uint32_t __hash_e)26671 vsha1h_u32 (uint32_t __hash_e)
26672 {
26673 return __builtin_aarch64_crypto_sha1hsi_uu (__hash_e);
26674 }
26675
26676 __extension__ extern __inline uint32x4_t
26677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1su0q_u32(uint32x4_t __w0_3,uint32x4_t __w4_7,uint32x4_t __w8_11)26678 vsha1su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7, uint32x4_t __w8_11)
26679 {
26680 return __builtin_aarch64_crypto_sha1su0v4si_uuuu (__w0_3, __w4_7, __w8_11);
26681 }
26682
26683 __extension__ extern __inline uint32x4_t
26684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha1su1q_u32(uint32x4_t __tw0_3,uint32x4_t __w12_15)26685 vsha1su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w12_15)
26686 {
26687 return __builtin_aarch64_crypto_sha1su1v4si_uuu (__tw0_3, __w12_15);
26688 }
26689
26690 __extension__ extern __inline uint32x4_t
26691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha256hq_u32(uint32x4_t __hash_abcd,uint32x4_t __hash_efgh,uint32x4_t __wk)26692 vsha256hq_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
26693 {
26694 return __builtin_aarch64_crypto_sha256hv4si_uuuu (__hash_abcd, __hash_efgh,
26695 __wk);
26696 }
26697
26698 __extension__ extern __inline uint32x4_t
26699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha256h2q_u32(uint32x4_t __hash_efgh,uint32x4_t __hash_abcd,uint32x4_t __wk)26700 vsha256h2q_u32 (uint32x4_t __hash_efgh, uint32x4_t __hash_abcd, uint32x4_t __wk)
26701 {
26702 return __builtin_aarch64_crypto_sha256h2v4si_uuuu (__hash_efgh, __hash_abcd,
26703 __wk);
26704 }
26705
26706 __extension__ extern __inline uint32x4_t
26707 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha256su0q_u32(uint32x4_t __w0_3,uint32x4_t __w4_7)26708 vsha256su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7)
26709 {
26710 return __builtin_aarch64_crypto_sha256su0v4si_uuu (__w0_3, __w4_7);
26711 }
26712
26713 __extension__ extern __inline uint32x4_t
26714 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha256su1q_u32(uint32x4_t __tw0_3,uint32x4_t __w8_11,uint32x4_t __w12_15)26715 vsha256su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w8_11, uint32x4_t __w12_15)
26716 {
26717 return __builtin_aarch64_crypto_sha256su1v4si_uuuu (__tw0_3, __w8_11,
26718 __w12_15);
26719 }
26720
26721 __extension__ extern __inline poly128_t
26722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_p64(poly64_t __a,poly64_t __b)26723 vmull_p64 (poly64_t __a, poly64_t __b)
26724 {
26725 return
26726 __builtin_aarch64_crypto_pmulldi_ppp (__a, __b);
26727 }
26728
26729 __extension__ extern __inline poly128_t
26730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmull_high_p64(poly64x2_t __a,poly64x2_t __b)26731 vmull_high_p64 (poly64x2_t __a, poly64x2_t __b)
26732 {
26733 return __builtin_aarch64_crypto_pmullv2di_ppp (__a, __b);
26734 }
26735
26736 #pragma GCC pop_options
26737
26738 /* vshl */
26739
26740 __extension__ extern __inline int8x8_t
26741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_s8(int8x8_t __a,const int __b)26742 vshl_n_s8 (int8x8_t __a, const int __b)
26743 {
26744 return (int8x8_t) __builtin_aarch64_ashlv8qi (__a, __b);
26745 }
26746
26747 __extension__ extern __inline int16x4_t
26748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_s16(int16x4_t __a,const int __b)26749 vshl_n_s16 (int16x4_t __a, const int __b)
26750 {
26751 return (int16x4_t) __builtin_aarch64_ashlv4hi (__a, __b);
26752 }
26753
26754 __extension__ extern __inline int32x2_t
26755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_s32(int32x2_t __a,const int __b)26756 vshl_n_s32 (int32x2_t __a, const int __b)
26757 {
26758 return (int32x2_t) __builtin_aarch64_ashlv2si (__a, __b);
26759 }
26760
26761 __extension__ extern __inline int64x1_t
26762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_s64(int64x1_t __a,const int __b)26763 vshl_n_s64 (int64x1_t __a, const int __b)
26764 {
26765 return (int64x1_t) {__builtin_aarch64_ashldi (__a[0], __b)};
26766 }
26767
26768 __extension__ extern __inline uint8x8_t
26769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_u8(uint8x8_t __a,const int __b)26770 vshl_n_u8 (uint8x8_t __a, const int __b)
26771 {
26772 return (uint8x8_t) __builtin_aarch64_ashlv8qi ((int8x8_t) __a, __b);
26773 }
26774
26775 __extension__ extern __inline uint16x4_t
26776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_u16(uint16x4_t __a,const int __b)26777 vshl_n_u16 (uint16x4_t __a, const int __b)
26778 {
26779 return (uint16x4_t) __builtin_aarch64_ashlv4hi ((int16x4_t) __a, __b);
26780 }
26781
26782 __extension__ extern __inline uint32x2_t
26783 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_u32(uint32x2_t __a,const int __b)26784 vshl_n_u32 (uint32x2_t __a, const int __b)
26785 {
26786 return (uint32x2_t) __builtin_aarch64_ashlv2si ((int32x2_t) __a, __b);
26787 }
26788
26789 __extension__ extern __inline uint64x1_t
26790 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_n_u64(uint64x1_t __a,const int __b)26791 vshl_n_u64 (uint64x1_t __a, const int __b)
26792 {
26793 return (uint64x1_t) {__builtin_aarch64_ashldi ((int64_t) __a[0], __b)};
26794 }
26795
26796 __extension__ extern __inline int8x16_t
26797 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_s8(int8x16_t __a,const int __b)26798 vshlq_n_s8 (int8x16_t __a, const int __b)
26799 {
26800 return (int8x16_t) __builtin_aarch64_ashlv16qi (__a, __b);
26801 }
26802
26803 __extension__ extern __inline int16x8_t
26804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_s16(int16x8_t __a,const int __b)26805 vshlq_n_s16 (int16x8_t __a, const int __b)
26806 {
26807 return (int16x8_t) __builtin_aarch64_ashlv8hi (__a, __b);
26808 }
26809
26810 __extension__ extern __inline int32x4_t
26811 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_s32(int32x4_t __a,const int __b)26812 vshlq_n_s32 (int32x4_t __a, const int __b)
26813 {
26814 return (int32x4_t) __builtin_aarch64_ashlv4si (__a, __b);
26815 }
26816
26817 __extension__ extern __inline int64x2_t
26818 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_s64(int64x2_t __a,const int __b)26819 vshlq_n_s64 (int64x2_t __a, const int __b)
26820 {
26821 return (int64x2_t) __builtin_aarch64_ashlv2di (__a, __b);
26822 }
26823
26824 __extension__ extern __inline uint8x16_t
26825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_u8(uint8x16_t __a,const int __b)26826 vshlq_n_u8 (uint8x16_t __a, const int __b)
26827 {
26828 return (uint8x16_t) __builtin_aarch64_ashlv16qi ((int8x16_t) __a, __b);
26829 }
26830
26831 __extension__ extern __inline uint16x8_t
26832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_u16(uint16x8_t __a,const int __b)26833 vshlq_n_u16 (uint16x8_t __a, const int __b)
26834 {
26835 return (uint16x8_t) __builtin_aarch64_ashlv8hi ((int16x8_t) __a, __b);
26836 }
26837
26838 __extension__ extern __inline uint32x4_t
26839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_u32(uint32x4_t __a,const int __b)26840 vshlq_n_u32 (uint32x4_t __a, const int __b)
26841 {
26842 return (uint32x4_t) __builtin_aarch64_ashlv4si ((int32x4_t) __a, __b);
26843 }
26844
26845 __extension__ extern __inline uint64x2_t
26846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_n_u64(uint64x2_t __a,const int __b)26847 vshlq_n_u64 (uint64x2_t __a, const int __b)
26848 {
26849 return (uint64x2_t) __builtin_aarch64_ashlv2di ((int64x2_t) __a, __b);
26850 }
26851
26852 __extension__ extern __inline int64_t
26853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshld_n_s64(int64_t __a,const int __b)26854 vshld_n_s64 (int64_t __a, const int __b)
26855 {
26856 return __builtin_aarch64_ashldi (__a, __b);
26857 }
26858
26859 __extension__ extern __inline uint64_t
26860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshld_n_u64(uint64_t __a,const int __b)26861 vshld_n_u64 (uint64_t __a, const int __b)
26862 {
26863 return (uint64_t) __builtin_aarch64_ashldi (__a, __b);
26864 }
26865
26866 __extension__ extern __inline int8x8_t
26867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_s8(int8x8_t __a,int8x8_t __b)26868 vshl_s8 (int8x8_t __a, int8x8_t __b)
26869 {
26870 return __builtin_aarch64_sshlv8qi (__a, __b);
26871 }
26872
26873 __extension__ extern __inline int16x4_t
26874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_s16(int16x4_t __a,int16x4_t __b)26875 vshl_s16 (int16x4_t __a, int16x4_t __b)
26876 {
26877 return __builtin_aarch64_sshlv4hi (__a, __b);
26878 }
26879
26880 __extension__ extern __inline int32x2_t
26881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_s32(int32x2_t __a,int32x2_t __b)26882 vshl_s32 (int32x2_t __a, int32x2_t __b)
26883 {
26884 return __builtin_aarch64_sshlv2si (__a, __b);
26885 }
26886
26887 __extension__ extern __inline int64x1_t
26888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_s64(int64x1_t __a,int64x1_t __b)26889 vshl_s64 (int64x1_t __a, int64x1_t __b)
26890 {
26891 return (int64x1_t) {__builtin_aarch64_sshldi (__a[0], __b[0])};
26892 }
26893
26894 __extension__ extern __inline uint8x8_t
26895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_u8(uint8x8_t __a,int8x8_t __b)26896 vshl_u8 (uint8x8_t __a, int8x8_t __b)
26897 {
26898 return __builtin_aarch64_ushlv8qi_uus (__a, __b);
26899 }
26900
26901 __extension__ extern __inline uint16x4_t
26902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_u16(uint16x4_t __a,int16x4_t __b)26903 vshl_u16 (uint16x4_t __a, int16x4_t __b)
26904 {
26905 return __builtin_aarch64_ushlv4hi_uus (__a, __b);
26906 }
26907
26908 __extension__ extern __inline uint32x2_t
26909 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_u32(uint32x2_t __a,int32x2_t __b)26910 vshl_u32 (uint32x2_t __a, int32x2_t __b)
26911 {
26912 return __builtin_aarch64_ushlv2si_uus (__a, __b);
26913 }
26914
26915 __extension__ extern __inline uint64x1_t
26916 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshl_u64(uint64x1_t __a,int64x1_t __b)26917 vshl_u64 (uint64x1_t __a, int64x1_t __b)
26918 {
26919 return (uint64x1_t) {__builtin_aarch64_ushldi_uus (__a[0], __b[0])};
26920 }
26921
26922 __extension__ extern __inline int8x16_t
26923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_s8(int8x16_t __a,int8x16_t __b)26924 vshlq_s8 (int8x16_t __a, int8x16_t __b)
26925 {
26926 return __builtin_aarch64_sshlv16qi (__a, __b);
26927 }
26928
26929 __extension__ extern __inline int16x8_t
26930 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_s16(int16x8_t __a,int16x8_t __b)26931 vshlq_s16 (int16x8_t __a, int16x8_t __b)
26932 {
26933 return __builtin_aarch64_sshlv8hi (__a, __b);
26934 }
26935
26936 __extension__ extern __inline int32x4_t
26937 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_s32(int32x4_t __a,int32x4_t __b)26938 vshlq_s32 (int32x4_t __a, int32x4_t __b)
26939 {
26940 return __builtin_aarch64_sshlv4si (__a, __b);
26941 }
26942
26943 __extension__ extern __inline int64x2_t
26944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_s64(int64x2_t __a,int64x2_t __b)26945 vshlq_s64 (int64x2_t __a, int64x2_t __b)
26946 {
26947 return __builtin_aarch64_sshlv2di (__a, __b);
26948 }
26949
26950 __extension__ extern __inline uint8x16_t
26951 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_u8(uint8x16_t __a,int8x16_t __b)26952 vshlq_u8 (uint8x16_t __a, int8x16_t __b)
26953 {
26954 return __builtin_aarch64_ushlv16qi_uus (__a, __b);
26955 }
26956
26957 __extension__ extern __inline uint16x8_t
26958 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_u16(uint16x8_t __a,int16x8_t __b)26959 vshlq_u16 (uint16x8_t __a, int16x8_t __b)
26960 {
26961 return __builtin_aarch64_ushlv8hi_uus (__a, __b);
26962 }
26963
26964 __extension__ extern __inline uint32x4_t
26965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_u32(uint32x4_t __a,int32x4_t __b)26966 vshlq_u32 (uint32x4_t __a, int32x4_t __b)
26967 {
26968 return __builtin_aarch64_ushlv4si_uus (__a, __b);
26969 }
26970
26971 __extension__ extern __inline uint64x2_t
26972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshlq_u64(uint64x2_t __a,int64x2_t __b)26973 vshlq_u64 (uint64x2_t __a, int64x2_t __b)
26974 {
26975 return __builtin_aarch64_ushlv2di_uus (__a, __b);
26976 }
26977
26978 __extension__ extern __inline int64_t
26979 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshld_s64(int64_t __a,int64_t __b)26980 vshld_s64 (int64_t __a, int64_t __b)
26981 {
26982 return __builtin_aarch64_sshldi (__a, __b);
26983 }
26984
26985 __extension__ extern __inline uint64_t
26986 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshld_u64(uint64_t __a,int64_t __b)26987 vshld_u64 (uint64_t __a, int64_t __b)
26988 {
26989 return __builtin_aarch64_ushldi_uus (__a, __b);
26990 }
26991
26992 __extension__ extern __inline int16x8_t
26993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_s8(int8x16_t __a,const int __b)26994 vshll_high_n_s8 (int8x16_t __a, const int __b)
26995 {
26996 return __builtin_aarch64_sshll2_nv16qi (__a, __b);
26997 }
26998
26999 __extension__ extern __inline int32x4_t
27000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_s16(int16x8_t __a,const int __b)27001 vshll_high_n_s16 (int16x8_t __a, const int __b)
27002 {
27003 return __builtin_aarch64_sshll2_nv8hi (__a, __b);
27004 }
27005
27006 __extension__ extern __inline int64x2_t
27007 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_s32(int32x4_t __a,const int __b)27008 vshll_high_n_s32 (int32x4_t __a, const int __b)
27009 {
27010 return __builtin_aarch64_sshll2_nv4si (__a, __b);
27011 }
27012
27013 __extension__ extern __inline uint16x8_t
27014 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_u8(uint8x16_t __a,const int __b)27015 vshll_high_n_u8 (uint8x16_t __a, const int __b)
27016 {
27017 return (uint16x8_t) __builtin_aarch64_ushll2_nv16qi ((int8x16_t) __a, __b);
27018 }
27019
27020 __extension__ extern __inline uint32x4_t
27021 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_u16(uint16x8_t __a,const int __b)27022 vshll_high_n_u16 (uint16x8_t __a, const int __b)
27023 {
27024 return (uint32x4_t) __builtin_aarch64_ushll2_nv8hi ((int16x8_t) __a, __b);
27025 }
27026
27027 __extension__ extern __inline uint64x2_t
27028 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_high_n_u32(uint32x4_t __a,const int __b)27029 vshll_high_n_u32 (uint32x4_t __a, const int __b)
27030 {
27031 return (uint64x2_t) __builtin_aarch64_ushll2_nv4si ((int32x4_t) __a, __b);
27032 }
27033
27034 __extension__ extern __inline int16x8_t
27035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_s8(int8x8_t __a,const int __b)27036 vshll_n_s8 (int8x8_t __a, const int __b)
27037 {
27038 return __builtin_aarch64_sshll_nv8qi (__a, __b);
27039 }
27040
27041 __extension__ extern __inline int32x4_t
27042 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_s16(int16x4_t __a,const int __b)27043 vshll_n_s16 (int16x4_t __a, const int __b)
27044 {
27045 return __builtin_aarch64_sshll_nv4hi (__a, __b);
27046 }
27047
27048 __extension__ extern __inline int64x2_t
27049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_s32(int32x2_t __a,const int __b)27050 vshll_n_s32 (int32x2_t __a, const int __b)
27051 {
27052 return __builtin_aarch64_sshll_nv2si (__a, __b);
27053 }
27054
27055 __extension__ extern __inline uint16x8_t
27056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_u8(uint8x8_t __a,const int __b)27057 vshll_n_u8 (uint8x8_t __a, const int __b)
27058 {
27059 return __builtin_aarch64_ushll_nv8qi_uus (__a, __b);
27060 }
27061
27062 __extension__ extern __inline uint32x4_t
27063 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_u16(uint16x4_t __a,const int __b)27064 vshll_n_u16 (uint16x4_t __a, const int __b)
27065 {
27066 return __builtin_aarch64_ushll_nv4hi_uus (__a, __b);
27067 }
27068
27069 __extension__ extern __inline uint64x2_t
27070 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshll_n_u32(uint32x2_t __a,const int __b)27071 vshll_n_u32 (uint32x2_t __a, const int __b)
27072 {
27073 return __builtin_aarch64_ushll_nv2si_uus (__a, __b);
27074 }
27075
27076 /* vshr */
27077
27078 __extension__ extern __inline int8x8_t
27079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_s8(int8x8_t __a,const int __b)27080 vshr_n_s8 (int8x8_t __a, const int __b)
27081 {
27082 return (int8x8_t) __builtin_aarch64_ashrv8qi (__a, __b);
27083 }
27084
27085 __extension__ extern __inline int16x4_t
27086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_s16(int16x4_t __a,const int __b)27087 vshr_n_s16 (int16x4_t __a, const int __b)
27088 {
27089 return (int16x4_t) __builtin_aarch64_ashrv4hi (__a, __b);
27090 }
27091
27092 __extension__ extern __inline int32x2_t
27093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_s32(int32x2_t __a,const int __b)27094 vshr_n_s32 (int32x2_t __a, const int __b)
27095 {
27096 return (int32x2_t) __builtin_aarch64_ashrv2si (__a, __b);
27097 }
27098
27099 __extension__ extern __inline int64x1_t
27100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_s64(int64x1_t __a,const int __b)27101 vshr_n_s64 (int64x1_t __a, const int __b)
27102 {
27103 return (int64x1_t) {__builtin_aarch64_ashr_simddi (__a[0], __b)};
27104 }
27105
27106 __extension__ extern __inline uint8x8_t
27107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_u8(uint8x8_t __a,const int __b)27108 vshr_n_u8 (uint8x8_t __a, const int __b)
27109 {
27110 return (uint8x8_t) __builtin_aarch64_lshrv8qi ((int8x8_t) __a, __b);
27111 }
27112
27113 __extension__ extern __inline uint16x4_t
27114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_u16(uint16x4_t __a,const int __b)27115 vshr_n_u16 (uint16x4_t __a, const int __b)
27116 {
27117 return (uint16x4_t) __builtin_aarch64_lshrv4hi ((int16x4_t) __a, __b);
27118 }
27119
27120 __extension__ extern __inline uint32x2_t
27121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_u32(uint32x2_t __a,const int __b)27122 vshr_n_u32 (uint32x2_t __a, const int __b)
27123 {
27124 return (uint32x2_t) __builtin_aarch64_lshrv2si ((int32x2_t) __a, __b);
27125 }
27126
27127 __extension__ extern __inline uint64x1_t
27128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshr_n_u64(uint64x1_t __a,const int __b)27129 vshr_n_u64 (uint64x1_t __a, const int __b)
27130 {
27131 return (uint64x1_t) {__builtin_aarch64_lshr_simddi_uus ( __a[0], __b)};
27132 }
27133
27134 __extension__ extern __inline int8x16_t
27135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_s8(int8x16_t __a,const int __b)27136 vshrq_n_s8 (int8x16_t __a, const int __b)
27137 {
27138 return (int8x16_t) __builtin_aarch64_ashrv16qi (__a, __b);
27139 }
27140
27141 __extension__ extern __inline int16x8_t
27142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_s16(int16x8_t __a,const int __b)27143 vshrq_n_s16 (int16x8_t __a, const int __b)
27144 {
27145 return (int16x8_t) __builtin_aarch64_ashrv8hi (__a, __b);
27146 }
27147
27148 __extension__ extern __inline int32x4_t
27149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_s32(int32x4_t __a,const int __b)27150 vshrq_n_s32 (int32x4_t __a, const int __b)
27151 {
27152 return (int32x4_t) __builtin_aarch64_ashrv4si (__a, __b);
27153 }
27154
27155 __extension__ extern __inline int64x2_t
27156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_s64(int64x2_t __a,const int __b)27157 vshrq_n_s64 (int64x2_t __a, const int __b)
27158 {
27159 return (int64x2_t) __builtin_aarch64_ashrv2di (__a, __b);
27160 }
27161
27162 __extension__ extern __inline uint8x16_t
27163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_u8(uint8x16_t __a,const int __b)27164 vshrq_n_u8 (uint8x16_t __a, const int __b)
27165 {
27166 return (uint8x16_t) __builtin_aarch64_lshrv16qi ((int8x16_t) __a, __b);
27167 }
27168
27169 __extension__ extern __inline uint16x8_t
27170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_u16(uint16x8_t __a,const int __b)27171 vshrq_n_u16 (uint16x8_t __a, const int __b)
27172 {
27173 return (uint16x8_t) __builtin_aarch64_lshrv8hi ((int16x8_t) __a, __b);
27174 }
27175
27176 __extension__ extern __inline uint32x4_t
27177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_u32(uint32x4_t __a,const int __b)27178 vshrq_n_u32 (uint32x4_t __a, const int __b)
27179 {
27180 return (uint32x4_t) __builtin_aarch64_lshrv4si ((int32x4_t) __a, __b);
27181 }
27182
27183 __extension__ extern __inline uint64x2_t
27184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrq_n_u64(uint64x2_t __a,const int __b)27185 vshrq_n_u64 (uint64x2_t __a, const int __b)
27186 {
27187 return (uint64x2_t) __builtin_aarch64_lshrv2di ((int64x2_t) __a, __b);
27188 }
27189
27190 __extension__ extern __inline int64_t
27191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrd_n_s64(int64_t __a,const int __b)27192 vshrd_n_s64 (int64_t __a, const int __b)
27193 {
27194 return __builtin_aarch64_ashr_simddi (__a, __b);
27195 }
27196
27197 __extension__ extern __inline uint64_t
27198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vshrd_n_u64(uint64_t __a,const int __b)27199 vshrd_n_u64 (uint64_t __a, const int __b)
27200 {
27201 return __builtin_aarch64_lshr_simddi_uus (__a, __b);
27202 }
27203
27204 /* vsli */
27205
27206 __extension__ extern __inline int8x8_t
27207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_s8(int8x8_t __a,int8x8_t __b,const int __c)27208 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
27209 {
27210 return (int8x8_t) __builtin_aarch64_ssli_nv8qi (__a, __b, __c);
27211 }
27212
27213 __extension__ extern __inline int16x4_t
27214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_s16(int16x4_t __a,int16x4_t __b,const int __c)27215 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
27216 {
27217 return (int16x4_t) __builtin_aarch64_ssli_nv4hi (__a, __b, __c);
27218 }
27219
27220 __extension__ extern __inline int32x2_t
27221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_s32(int32x2_t __a,int32x2_t __b,const int __c)27222 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
27223 {
27224 return (int32x2_t) __builtin_aarch64_ssli_nv2si (__a, __b, __c);
27225 }
27226
27227 __extension__ extern __inline int64x1_t
27228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_s64(int64x1_t __a,int64x1_t __b,const int __c)27229 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
27230 {
27231 return (int64x1_t) {__builtin_aarch64_ssli_ndi (__a[0], __b[0], __c)};
27232 }
27233
27234 __extension__ extern __inline uint8x8_t
27235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)27236 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
27237 {
27238 return __builtin_aarch64_usli_nv8qi_uuus (__a, __b, __c);
27239 }
27240
27241 __extension__ extern __inline uint16x4_t
27242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)27243 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
27244 {
27245 return __builtin_aarch64_usli_nv4hi_uuus (__a, __b, __c);
27246 }
27247
27248 __extension__ extern __inline uint32x2_t
27249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)27250 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
27251 {
27252 return __builtin_aarch64_usli_nv2si_uuus (__a, __b, __c);
27253 }
27254
27255 __extension__ extern __inline uint64x1_t
27256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)27257 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
27258 {
27259 return (uint64x1_t) {__builtin_aarch64_usli_ndi_uuus (__a[0], __b[0], __c)};
27260 }
27261
27262 __extension__ extern __inline poly64x1_t
27263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsli_n_p64(poly64x1_t __a,poly64x1_t __b,const int __c)27264 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c)
27265 {
27266 return (poly64x1_t) {__builtin_aarch64_ssli_ndi_ppps (__a[0], __b[0], __c)};
27267 }
27268
27269 __extension__ extern __inline int8x16_t
27270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)27271 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
27272 {
27273 return (int8x16_t) __builtin_aarch64_ssli_nv16qi (__a, __b, __c);
27274 }
27275
27276 __extension__ extern __inline int16x8_t
27277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)27278 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
27279 {
27280 return (int16x8_t) __builtin_aarch64_ssli_nv8hi (__a, __b, __c);
27281 }
27282
27283 __extension__ extern __inline int32x4_t
27284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)27285 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
27286 {
27287 return (int32x4_t) __builtin_aarch64_ssli_nv4si (__a, __b, __c);
27288 }
27289
27290 __extension__ extern __inline int64x2_t
27291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)27292 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
27293 {
27294 return (int64x2_t) __builtin_aarch64_ssli_nv2di (__a, __b, __c);
27295 }
27296
27297 __extension__ extern __inline uint8x16_t
27298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)27299 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
27300 {
27301 return __builtin_aarch64_usli_nv16qi_uuus (__a, __b, __c);
27302 }
27303
27304 __extension__ extern __inline uint16x8_t
27305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)27306 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
27307 {
27308 return __builtin_aarch64_usli_nv8hi_uuus (__a, __b, __c);
27309 }
27310
27311 __extension__ extern __inline uint32x4_t
27312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)27313 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
27314 {
27315 return __builtin_aarch64_usli_nv4si_uuus (__a, __b, __c);
27316 }
27317
27318 __extension__ extern __inline uint64x2_t
27319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)27320 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
27321 {
27322 return __builtin_aarch64_usli_nv2di_uuus (__a, __b, __c);
27323 }
27324
27325 __extension__ extern __inline poly64x2_t
27326 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsliq_n_p64(poly64x2_t __a,poly64x2_t __b,const int __c)27327 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c)
27328 {
27329 return __builtin_aarch64_ssli_nv2di_ppps (__a, __b, __c);
27330 }
27331
27332 __extension__ extern __inline int64_t
27333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vslid_n_s64(int64_t __a,int64_t __b,const int __c)27334 vslid_n_s64 (int64_t __a, int64_t __b, const int __c)
27335 {
27336 return __builtin_aarch64_ssli_ndi (__a, __b, __c);
27337 }
27338
27339 __extension__ extern __inline uint64_t
27340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vslid_n_u64(uint64_t __a,uint64_t __b,const int __c)27341 vslid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
27342 {
27343 return __builtin_aarch64_usli_ndi_uuus (__a, __b, __c);
27344 }
27345
27346 /* vsqadd */
27347
27348 __extension__ extern __inline uint8x8_t
27349 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqadd_u8(uint8x8_t __a,int8x8_t __b)27350 vsqadd_u8 (uint8x8_t __a, int8x8_t __b)
27351 {
27352 return __builtin_aarch64_usqaddv8qi_uus (__a, __b);
27353 }
27354
27355 __extension__ extern __inline uint16x4_t
27356 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqadd_u16(uint16x4_t __a,int16x4_t __b)27357 vsqadd_u16 (uint16x4_t __a, int16x4_t __b)
27358 {
27359 return __builtin_aarch64_usqaddv4hi_uus (__a, __b);
27360 }
27361
27362 __extension__ extern __inline uint32x2_t
27363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqadd_u32(uint32x2_t __a,int32x2_t __b)27364 vsqadd_u32 (uint32x2_t __a, int32x2_t __b)
27365 {
27366 return __builtin_aarch64_usqaddv2si_uus (__a, __b);
27367 }
27368
27369 __extension__ extern __inline uint64x1_t
27370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqadd_u64(uint64x1_t __a,int64x1_t __b)27371 vsqadd_u64 (uint64x1_t __a, int64x1_t __b)
27372 {
27373 return (uint64x1_t) {__builtin_aarch64_usqadddi_uus (__a[0], __b[0])};
27374 }
27375
27376 __extension__ extern __inline uint8x16_t
27377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddq_u8(uint8x16_t __a,int8x16_t __b)27378 vsqaddq_u8 (uint8x16_t __a, int8x16_t __b)
27379 {
27380 return __builtin_aarch64_usqaddv16qi_uus (__a, __b);
27381 }
27382
27383 __extension__ extern __inline uint16x8_t
27384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddq_u16(uint16x8_t __a,int16x8_t __b)27385 vsqaddq_u16 (uint16x8_t __a, int16x8_t __b)
27386 {
27387 return __builtin_aarch64_usqaddv8hi_uus (__a, __b);
27388 }
27389
27390 __extension__ extern __inline uint32x4_t
27391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddq_u32(uint32x4_t __a,int32x4_t __b)27392 vsqaddq_u32 (uint32x4_t __a, int32x4_t __b)
27393 {
27394 return __builtin_aarch64_usqaddv4si_uus (__a, __b);
27395 }
27396
27397 __extension__ extern __inline uint64x2_t
27398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddq_u64(uint64x2_t __a,int64x2_t __b)27399 vsqaddq_u64 (uint64x2_t __a, int64x2_t __b)
27400 {
27401 return __builtin_aarch64_usqaddv2di_uus (__a, __b);
27402 }
27403
27404 __extension__ extern __inline uint8_t
27405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddb_u8(uint8_t __a,int8_t __b)27406 vsqaddb_u8 (uint8_t __a, int8_t __b)
27407 {
27408 return __builtin_aarch64_usqaddqi_uus (__a, __b);
27409 }
27410
27411 __extension__ extern __inline uint16_t
27412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddh_u16(uint16_t __a,int16_t __b)27413 vsqaddh_u16 (uint16_t __a, int16_t __b)
27414 {
27415 return __builtin_aarch64_usqaddhi_uus (__a, __b);
27416 }
27417
27418 __extension__ extern __inline uint32_t
27419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqadds_u32(uint32_t __a,int32_t __b)27420 vsqadds_u32 (uint32_t __a, int32_t __b)
27421 {
27422 return __builtin_aarch64_usqaddsi_uus (__a, __b);
27423 }
27424
27425 __extension__ extern __inline uint64_t
27426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqaddd_u64(uint64_t __a,int64_t __b)27427 vsqaddd_u64 (uint64_t __a, int64_t __b)
27428 {
27429 return __builtin_aarch64_usqadddi_uus (__a, __b);
27430 }
27431
27432 /* vsqrt */
27433 __extension__ extern __inline float32x2_t
27434 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrt_f32(float32x2_t __a)27435 vsqrt_f32 (float32x2_t __a)
27436 {
27437 return __builtin_aarch64_sqrtv2sf (__a);
27438 }
27439
27440 __extension__ extern __inline float32x4_t
27441 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrtq_f32(float32x4_t __a)27442 vsqrtq_f32 (float32x4_t __a)
27443 {
27444 return __builtin_aarch64_sqrtv4sf (__a);
27445 }
27446
27447 __extension__ extern __inline float64x1_t
27448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrt_f64(float64x1_t __a)27449 vsqrt_f64 (float64x1_t __a)
27450 {
27451 return (float64x1_t) { __builtin_aarch64_sqrtdf (__a[0]) };
27452 }
27453
27454 __extension__ extern __inline float64x2_t
27455 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrtq_f64(float64x2_t __a)27456 vsqrtq_f64 (float64x2_t __a)
27457 {
27458 return __builtin_aarch64_sqrtv2df (__a);
27459 }
27460
27461 /* vsra */
27462
27463 __extension__ extern __inline int8x8_t
27464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_s8(int8x8_t __a,int8x8_t __b,const int __c)27465 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
27466 {
27467 return (int8x8_t) __builtin_aarch64_ssra_nv8qi (__a, __b, __c);
27468 }
27469
27470 __extension__ extern __inline int16x4_t
27471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_s16(int16x4_t __a,int16x4_t __b,const int __c)27472 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
27473 {
27474 return (int16x4_t) __builtin_aarch64_ssra_nv4hi (__a, __b, __c);
27475 }
27476
27477 __extension__ extern __inline int32x2_t
27478 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_s32(int32x2_t __a,int32x2_t __b,const int __c)27479 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
27480 {
27481 return (int32x2_t) __builtin_aarch64_ssra_nv2si (__a, __b, __c);
27482 }
27483
27484 __extension__ extern __inline int64x1_t
27485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_s64(int64x1_t __a,int64x1_t __b,const int __c)27486 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
27487 {
27488 return (int64x1_t) {__builtin_aarch64_ssra_ndi (__a[0], __b[0], __c)};
27489 }
27490
27491 __extension__ extern __inline uint8x8_t
27492 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)27493 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
27494 {
27495 return __builtin_aarch64_usra_nv8qi_uuus (__a, __b, __c);
27496 }
27497
27498 __extension__ extern __inline uint16x4_t
27499 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)27500 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
27501 {
27502 return __builtin_aarch64_usra_nv4hi_uuus (__a, __b, __c);
27503 }
27504
27505 __extension__ extern __inline uint32x2_t
27506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)27507 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
27508 {
27509 return __builtin_aarch64_usra_nv2si_uuus (__a, __b, __c);
27510 }
27511
27512 __extension__ extern __inline uint64x1_t
27513 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsra_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)27514 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
27515 {
27516 return (uint64x1_t) {__builtin_aarch64_usra_ndi_uuus (__a[0], __b[0], __c)};
27517 }
27518
27519 __extension__ extern __inline int8x16_t
27520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)27521 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
27522 {
27523 return (int8x16_t) __builtin_aarch64_ssra_nv16qi (__a, __b, __c);
27524 }
27525
27526 __extension__ extern __inline int16x8_t
27527 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)27528 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
27529 {
27530 return (int16x8_t) __builtin_aarch64_ssra_nv8hi (__a, __b, __c);
27531 }
27532
27533 __extension__ extern __inline int32x4_t
27534 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)27535 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
27536 {
27537 return (int32x4_t) __builtin_aarch64_ssra_nv4si (__a, __b, __c);
27538 }
27539
27540 __extension__ extern __inline int64x2_t
27541 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)27542 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
27543 {
27544 return (int64x2_t) __builtin_aarch64_ssra_nv2di (__a, __b, __c);
27545 }
27546
27547 __extension__ extern __inline uint8x16_t
27548 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)27549 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
27550 {
27551 return __builtin_aarch64_usra_nv16qi_uuus (__a, __b, __c);
27552 }
27553
27554 __extension__ extern __inline uint16x8_t
27555 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)27556 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
27557 {
27558 return __builtin_aarch64_usra_nv8hi_uuus (__a, __b, __c);
27559 }
27560
27561 __extension__ extern __inline uint32x4_t
27562 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)27563 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
27564 {
27565 return __builtin_aarch64_usra_nv4si_uuus (__a, __b, __c);
27566 }
27567
27568 __extension__ extern __inline uint64x2_t
27569 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsraq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)27570 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
27571 {
27572 return __builtin_aarch64_usra_nv2di_uuus (__a, __b, __c);
27573 }
27574
27575 __extension__ extern __inline int64_t
27576 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsrad_n_s64(int64_t __a,int64_t __b,const int __c)27577 vsrad_n_s64 (int64_t __a, int64_t __b, const int __c)
27578 {
27579 return __builtin_aarch64_ssra_ndi (__a, __b, __c);
27580 }
27581
27582 __extension__ extern __inline uint64_t
27583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsrad_n_u64(uint64_t __a,uint64_t __b,const int __c)27584 vsrad_n_u64 (uint64_t __a, uint64_t __b, const int __c)
27585 {
27586 return __builtin_aarch64_usra_ndi_uuus (__a, __b, __c);
27587 }
27588
27589 /* vsri */
27590
27591 __extension__ extern __inline int8x8_t
27592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_s8(int8x8_t __a,int8x8_t __b,const int __c)27593 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c)
27594 {
27595 return (int8x8_t) __builtin_aarch64_ssri_nv8qi (__a, __b, __c);
27596 }
27597
27598 __extension__ extern __inline int16x4_t
27599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_s16(int16x4_t __a,int16x4_t __b,const int __c)27600 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c)
27601 {
27602 return (int16x4_t) __builtin_aarch64_ssri_nv4hi (__a, __b, __c);
27603 }
27604
27605 __extension__ extern __inline int32x2_t
27606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_s32(int32x2_t __a,int32x2_t __b,const int __c)27607 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c)
27608 {
27609 return (int32x2_t) __builtin_aarch64_ssri_nv2si (__a, __b, __c);
27610 }
27611
27612 __extension__ extern __inline int64x1_t
27613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_s64(int64x1_t __a,int64x1_t __b,const int __c)27614 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c)
27615 {
27616 return (int64x1_t) {__builtin_aarch64_ssri_ndi (__a[0], __b[0], __c)};
27617 }
27618
27619 __extension__ extern __inline uint8x8_t
27620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_u8(uint8x8_t __a,uint8x8_t __b,const int __c)27621 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c)
27622 {
27623 return __builtin_aarch64_usri_nv8qi_uuus (__a, __b, __c);
27624 }
27625
27626 __extension__ extern __inline uint16x4_t
27627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_u16(uint16x4_t __a,uint16x4_t __b,const int __c)27628 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c)
27629 {
27630 return __builtin_aarch64_usri_nv4hi_uuus (__a, __b, __c);
27631 }
27632
27633 __extension__ extern __inline uint32x2_t
27634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_u32(uint32x2_t __a,uint32x2_t __b,const int __c)27635 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c)
27636 {
27637 return __builtin_aarch64_usri_nv2si_uuus (__a, __b, __c);
27638 }
27639
27640 __extension__ extern __inline uint64x1_t
27641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsri_n_u64(uint64x1_t __a,uint64x1_t __b,const int __c)27642 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c)
27643 {
27644 return (uint64x1_t) {__builtin_aarch64_usri_ndi_uuus (__a[0], __b[0], __c)};
27645 }
27646
27647 __extension__ extern __inline int8x16_t
27648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_s8(int8x16_t __a,int8x16_t __b,const int __c)27649 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c)
27650 {
27651 return (int8x16_t) __builtin_aarch64_ssri_nv16qi (__a, __b, __c);
27652 }
27653
27654 __extension__ extern __inline int16x8_t
27655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_s16(int16x8_t __a,int16x8_t __b,const int __c)27656 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c)
27657 {
27658 return (int16x8_t) __builtin_aarch64_ssri_nv8hi (__a, __b, __c);
27659 }
27660
27661 __extension__ extern __inline int32x4_t
27662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_s32(int32x4_t __a,int32x4_t __b,const int __c)27663 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c)
27664 {
27665 return (int32x4_t) __builtin_aarch64_ssri_nv4si (__a, __b, __c);
27666 }
27667
27668 __extension__ extern __inline int64x2_t
27669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_s64(int64x2_t __a,int64x2_t __b,const int __c)27670 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c)
27671 {
27672 return (int64x2_t) __builtin_aarch64_ssri_nv2di (__a, __b, __c);
27673 }
27674
27675 __extension__ extern __inline uint8x16_t
27676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_u8(uint8x16_t __a,uint8x16_t __b,const int __c)27677 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c)
27678 {
27679 return __builtin_aarch64_usri_nv16qi_uuus (__a, __b, __c);
27680 }
27681
27682 __extension__ extern __inline uint16x8_t
27683 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_u16(uint16x8_t __a,uint16x8_t __b,const int __c)27684 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c)
27685 {
27686 return __builtin_aarch64_usri_nv8hi_uuus (__a, __b, __c);
27687 }
27688
27689 __extension__ extern __inline uint32x4_t
27690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_u32(uint32x4_t __a,uint32x4_t __b,const int __c)27691 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c)
27692 {
27693 return __builtin_aarch64_usri_nv4si_uuus (__a, __b, __c);
27694 }
27695
27696 __extension__ extern __inline uint64x2_t
27697 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsriq_n_u64(uint64x2_t __a,uint64x2_t __b,const int __c)27698 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c)
27699 {
27700 return __builtin_aarch64_usri_nv2di_uuus (__a, __b, __c);
27701 }
27702
27703 __extension__ extern __inline int64_t
27704 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsrid_n_s64(int64_t __a,int64_t __b,const int __c)27705 vsrid_n_s64 (int64_t __a, int64_t __b, const int __c)
27706 {
27707 return __builtin_aarch64_ssri_ndi (__a, __b, __c);
27708 }
27709
27710 __extension__ extern __inline uint64_t
27711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsrid_n_u64(uint64_t __a,uint64_t __b,const int __c)27712 vsrid_n_u64 (uint64_t __a, uint64_t __b, const int __c)
27713 {
27714 return __builtin_aarch64_usri_ndi_uuus (__a, __b, __c);
27715 }
27716
27717 /* vst1 */
27718
27719 __extension__ extern __inline void
27720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f16(float16_t * __a,float16x4_t __b)27721 vst1_f16 (float16_t *__a, float16x4_t __b)
27722 {
27723 __builtin_aarch64_st1v4hf (__a, __b);
27724 }
27725
27726 __extension__ extern __inline void
27727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f32(float32_t * __a,float32x2_t __b)27728 vst1_f32 (float32_t *__a, float32x2_t __b)
27729 {
27730 __builtin_aarch64_st1v2sf ((__builtin_aarch64_simd_sf *) __a, __b);
27731 }
27732
27733 __extension__ extern __inline void
27734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f64(float64_t * __a,float64x1_t __b)27735 vst1_f64 (float64_t *__a, float64x1_t __b)
27736 {
27737 *__a = __b[0];
27738 }
27739
27740 __extension__ extern __inline void
27741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p8(poly8_t * __a,poly8x8_t __b)27742 vst1_p8 (poly8_t *__a, poly8x8_t __b)
27743 {
27744 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) __a,
27745 (int8x8_t) __b);
27746 }
27747
27748 __extension__ extern __inline void
27749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p16(poly16_t * __a,poly16x4_t __b)27750 vst1_p16 (poly16_t *__a, poly16x4_t __b)
27751 {
27752 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) __a,
27753 (int16x4_t) __b);
27754 }
27755
27756 __extension__ extern __inline void
27757 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p64(poly64_t * __a,poly64x1_t __b)27758 vst1_p64 (poly64_t *__a, poly64x1_t __b)
27759 {
27760 *__a = __b[0];
27761 }
27762
27763 __extension__ extern __inline void
27764 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s8(int8_t * __a,int8x8_t __b)27765 vst1_s8 (int8_t *__a, int8x8_t __b)
27766 {
27767 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) __a, __b);
27768 }
27769
27770 __extension__ extern __inline void
27771 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s16(int16_t * __a,int16x4_t __b)27772 vst1_s16 (int16_t *__a, int16x4_t __b)
27773 {
27774 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) __a, __b);
27775 }
27776
27777 __extension__ extern __inline void
27778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s32(int32_t * __a,int32x2_t __b)27779 vst1_s32 (int32_t *__a, int32x2_t __b)
27780 {
27781 __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) __a, __b);
27782 }
27783
27784 __extension__ extern __inline void
27785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s64(int64_t * __a,int64x1_t __b)27786 vst1_s64 (int64_t *__a, int64x1_t __b)
27787 {
27788 *__a = __b[0];
27789 }
27790
27791 __extension__ extern __inline void
27792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u8(uint8_t * __a,uint8x8_t __b)27793 vst1_u8 (uint8_t *__a, uint8x8_t __b)
27794 {
27795 __builtin_aarch64_st1v8qi ((__builtin_aarch64_simd_qi *) __a,
27796 (int8x8_t) __b);
27797 }
27798
27799 __extension__ extern __inline void
27800 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u16(uint16_t * __a,uint16x4_t __b)27801 vst1_u16 (uint16_t *__a, uint16x4_t __b)
27802 {
27803 __builtin_aarch64_st1v4hi ((__builtin_aarch64_simd_hi *) __a,
27804 (int16x4_t) __b);
27805 }
27806
27807 __extension__ extern __inline void
27808 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u32(uint32_t * __a,uint32x2_t __b)27809 vst1_u32 (uint32_t *__a, uint32x2_t __b)
27810 {
27811 __builtin_aarch64_st1v2si ((__builtin_aarch64_simd_si *) __a,
27812 (int32x2_t) __b);
27813 }
27814
27815 __extension__ extern __inline void
27816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u64(uint64_t * __a,uint64x1_t __b)27817 vst1_u64 (uint64_t *__a, uint64x1_t __b)
27818 {
27819 *__a = __b[0];
27820 }
27821
27822 /* vst1q */
27823
27824 __extension__ extern __inline void
27825 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f16(float16_t * __a,float16x8_t __b)27826 vst1q_f16 (float16_t *__a, float16x8_t __b)
27827 {
27828 __builtin_aarch64_st1v8hf (__a, __b);
27829 }
27830
27831 __extension__ extern __inline void
27832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f32(float32_t * __a,float32x4_t __b)27833 vst1q_f32 (float32_t *__a, float32x4_t __b)
27834 {
27835 __builtin_aarch64_st1v4sf ((__builtin_aarch64_simd_sf *) __a, __b);
27836 }
27837
27838 __extension__ extern __inline void
27839 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f64(float64_t * __a,float64x2_t __b)27840 vst1q_f64 (float64_t *__a, float64x2_t __b)
27841 {
27842 __builtin_aarch64_st1v2df ((__builtin_aarch64_simd_df *) __a, __b);
27843 }
27844
27845 __extension__ extern __inline void
27846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p8(poly8_t * __a,poly8x16_t __b)27847 vst1q_p8 (poly8_t *__a, poly8x16_t __b)
27848 {
27849 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) __a,
27850 (int8x16_t) __b);
27851 }
27852
27853 __extension__ extern __inline void
27854 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p16(poly16_t * __a,poly16x8_t __b)27855 vst1q_p16 (poly16_t *__a, poly16x8_t __b)
27856 {
27857 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) __a,
27858 (int16x8_t) __b);
27859 }
27860
27861 __extension__ extern __inline void
27862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p64(poly64_t * __a,poly64x2_t __b)27863 vst1q_p64 (poly64_t *__a, poly64x2_t __b)
27864 {
27865 __builtin_aarch64_st1v2di_sp ((__builtin_aarch64_simd_di *) __a,
27866 (poly64x2_t) __b);
27867 }
27868
27869 __extension__ extern __inline void
27870 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s8(int8_t * __a,int8x16_t __b)27871 vst1q_s8 (int8_t *__a, int8x16_t __b)
27872 {
27873 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) __a, __b);
27874 }
27875
27876 __extension__ extern __inline void
27877 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s16(int16_t * __a,int16x8_t __b)27878 vst1q_s16 (int16_t *__a, int16x8_t __b)
27879 {
27880 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) __a, __b);
27881 }
27882
27883 __extension__ extern __inline void
27884 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s32(int32_t * __a,int32x4_t __b)27885 vst1q_s32 (int32_t *__a, int32x4_t __b)
27886 {
27887 __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) __a, __b);
27888 }
27889
27890 __extension__ extern __inline void
27891 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s64(int64_t * __a,int64x2_t __b)27892 vst1q_s64 (int64_t *__a, int64x2_t __b)
27893 {
27894 __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) __a, __b);
27895 }
27896
27897 __extension__ extern __inline void
27898 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u8(uint8_t * __a,uint8x16_t __b)27899 vst1q_u8 (uint8_t *__a, uint8x16_t __b)
27900 {
27901 __builtin_aarch64_st1v16qi ((__builtin_aarch64_simd_qi *) __a,
27902 (int8x16_t) __b);
27903 }
27904
27905 __extension__ extern __inline void
27906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u16(uint16_t * __a,uint16x8_t __b)27907 vst1q_u16 (uint16_t *__a, uint16x8_t __b)
27908 {
27909 __builtin_aarch64_st1v8hi ((__builtin_aarch64_simd_hi *) __a,
27910 (int16x8_t) __b);
27911 }
27912
27913 __extension__ extern __inline void
27914 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u32(uint32_t * __a,uint32x4_t __b)27915 vst1q_u32 (uint32_t *__a, uint32x4_t __b)
27916 {
27917 __builtin_aarch64_st1v4si ((__builtin_aarch64_simd_si *) __a,
27918 (int32x4_t) __b);
27919 }
27920
27921 __extension__ extern __inline void
27922 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u64(uint64_t * __a,uint64x2_t __b)27923 vst1q_u64 (uint64_t *__a, uint64x2_t __b)
27924 {
27925 __builtin_aarch64_st1v2di ((__builtin_aarch64_simd_di *) __a,
27926 (int64x2_t) __b);
27927 }
27928
27929 /* vst1_lane */
27930
27931 __extension__ extern __inline void
27932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_f16(float16_t * __a,float16x4_t __b,const int __lane)27933 vst1_lane_f16 (float16_t *__a, float16x4_t __b, const int __lane)
27934 {
27935 *__a = __aarch64_vget_lane_any (__b, __lane);
27936 }
27937
27938 __extension__ extern __inline void
27939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_f32(float32_t * __a,float32x2_t __b,const int __lane)27940 vst1_lane_f32 (float32_t *__a, float32x2_t __b, const int __lane)
27941 {
27942 *__a = __aarch64_vget_lane_any (__b, __lane);
27943 }
27944
27945 __extension__ extern __inline void
27946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_f64(float64_t * __a,float64x1_t __b,const int __lane)27947 vst1_lane_f64 (float64_t *__a, float64x1_t __b, const int __lane)
27948 {
27949 *__a = __aarch64_vget_lane_any (__b, __lane);
27950 }
27951
27952 __extension__ extern __inline void
27953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_p8(poly8_t * __a,poly8x8_t __b,const int __lane)27954 vst1_lane_p8 (poly8_t *__a, poly8x8_t __b, const int __lane)
27955 {
27956 *__a = __aarch64_vget_lane_any (__b, __lane);
27957 }
27958
27959 __extension__ extern __inline void
27960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_p16(poly16_t * __a,poly16x4_t __b,const int __lane)27961 vst1_lane_p16 (poly16_t *__a, poly16x4_t __b, const int __lane)
27962 {
27963 *__a = __aarch64_vget_lane_any (__b, __lane);
27964 }
27965
27966 __extension__ extern __inline void
27967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_p64(poly64_t * __a,poly64x1_t __b,const int __lane)27968 vst1_lane_p64 (poly64_t *__a, poly64x1_t __b, const int __lane)
27969 {
27970 *__a = __aarch64_vget_lane_any (__b, __lane);
27971 }
27972
27973 __extension__ extern __inline void
27974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_s8(int8_t * __a,int8x8_t __b,const int __lane)27975 vst1_lane_s8 (int8_t *__a, int8x8_t __b, const int __lane)
27976 {
27977 *__a = __aarch64_vget_lane_any (__b, __lane);
27978 }
27979
27980 __extension__ extern __inline void
27981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_s16(int16_t * __a,int16x4_t __b,const int __lane)27982 vst1_lane_s16 (int16_t *__a, int16x4_t __b, const int __lane)
27983 {
27984 *__a = __aarch64_vget_lane_any (__b, __lane);
27985 }
27986
27987 __extension__ extern __inline void
27988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_s32(int32_t * __a,int32x2_t __b,const int __lane)27989 vst1_lane_s32 (int32_t *__a, int32x2_t __b, const int __lane)
27990 {
27991 *__a = __aarch64_vget_lane_any (__b, __lane);
27992 }
27993
27994 __extension__ extern __inline void
27995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_s64(int64_t * __a,int64x1_t __b,const int __lane)27996 vst1_lane_s64 (int64_t *__a, int64x1_t __b, const int __lane)
27997 {
27998 *__a = __aarch64_vget_lane_any (__b, __lane);
27999 }
28000
28001 __extension__ extern __inline void
28002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_u8(uint8_t * __a,uint8x8_t __b,const int __lane)28003 vst1_lane_u8 (uint8_t *__a, uint8x8_t __b, const int __lane)
28004 {
28005 *__a = __aarch64_vget_lane_any (__b, __lane);
28006 }
28007
28008 __extension__ extern __inline void
28009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_u16(uint16_t * __a,uint16x4_t __b,const int __lane)28010 vst1_lane_u16 (uint16_t *__a, uint16x4_t __b, const int __lane)
28011 {
28012 *__a = __aarch64_vget_lane_any (__b, __lane);
28013 }
28014
28015 __extension__ extern __inline void
28016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_u32(uint32_t * __a,uint32x2_t __b,const int __lane)28017 vst1_lane_u32 (uint32_t *__a, uint32x2_t __b, const int __lane)
28018 {
28019 *__a = __aarch64_vget_lane_any (__b, __lane);
28020 }
28021
28022 __extension__ extern __inline void
28023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_u64(uint64_t * __a,uint64x1_t __b,const int __lane)28024 vst1_lane_u64 (uint64_t *__a, uint64x1_t __b, const int __lane)
28025 {
28026 *__a = __aarch64_vget_lane_any (__b, __lane);
28027 }
28028
28029 /* vst1q_lane */
28030
28031 __extension__ extern __inline void
28032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_f16(float16_t * __a,float16x8_t __b,const int __lane)28033 vst1q_lane_f16 (float16_t *__a, float16x8_t __b, const int __lane)
28034 {
28035 *__a = __aarch64_vget_lane_any (__b, __lane);
28036 }
28037
28038 __extension__ extern __inline void
28039 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_f32(float32_t * __a,float32x4_t __b,const int __lane)28040 vst1q_lane_f32 (float32_t *__a, float32x4_t __b, const int __lane)
28041 {
28042 *__a = __aarch64_vget_lane_any (__b, __lane);
28043 }
28044
28045 __extension__ extern __inline void
28046 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_f64(float64_t * __a,float64x2_t __b,const int __lane)28047 vst1q_lane_f64 (float64_t *__a, float64x2_t __b, const int __lane)
28048 {
28049 *__a = __aarch64_vget_lane_any (__b, __lane);
28050 }
28051
28052 __extension__ extern __inline void
28053 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_p8(poly8_t * __a,poly8x16_t __b,const int __lane)28054 vst1q_lane_p8 (poly8_t *__a, poly8x16_t __b, const int __lane)
28055 {
28056 *__a = __aarch64_vget_lane_any (__b, __lane);
28057 }
28058
28059 __extension__ extern __inline void
28060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_p16(poly16_t * __a,poly16x8_t __b,const int __lane)28061 vst1q_lane_p16 (poly16_t *__a, poly16x8_t __b, const int __lane)
28062 {
28063 *__a = __aarch64_vget_lane_any (__b, __lane);
28064 }
28065
28066 __extension__ extern __inline void
28067 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_p64(poly64_t * __a,poly64x2_t __b,const int __lane)28068 vst1q_lane_p64 (poly64_t *__a, poly64x2_t __b, const int __lane)
28069 {
28070 *__a = __aarch64_vget_lane_any (__b, __lane);
28071 }
28072
28073 __extension__ extern __inline void
28074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_s8(int8_t * __a,int8x16_t __b,const int __lane)28075 vst1q_lane_s8 (int8_t *__a, int8x16_t __b, const int __lane)
28076 {
28077 *__a = __aarch64_vget_lane_any (__b, __lane);
28078 }
28079
28080 __extension__ extern __inline void
28081 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_s16(int16_t * __a,int16x8_t __b,const int __lane)28082 vst1q_lane_s16 (int16_t *__a, int16x8_t __b, const int __lane)
28083 {
28084 *__a = __aarch64_vget_lane_any (__b, __lane);
28085 }
28086
28087 __extension__ extern __inline void
28088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_s32(int32_t * __a,int32x4_t __b,const int __lane)28089 vst1q_lane_s32 (int32_t *__a, int32x4_t __b, const int __lane)
28090 {
28091 *__a = __aarch64_vget_lane_any (__b, __lane);
28092 }
28093
28094 __extension__ extern __inline void
28095 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_s64(int64_t * __a,int64x2_t __b,const int __lane)28096 vst1q_lane_s64 (int64_t *__a, int64x2_t __b, const int __lane)
28097 {
28098 *__a = __aarch64_vget_lane_any (__b, __lane);
28099 }
28100
28101 __extension__ extern __inline void
28102 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_u8(uint8_t * __a,uint8x16_t __b,const int __lane)28103 vst1q_lane_u8 (uint8_t *__a, uint8x16_t __b, const int __lane)
28104 {
28105 *__a = __aarch64_vget_lane_any (__b, __lane);
28106 }
28107
28108 __extension__ extern __inline void
28109 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_u16(uint16_t * __a,uint16x8_t __b,const int __lane)28110 vst1q_lane_u16 (uint16_t *__a, uint16x8_t __b, const int __lane)
28111 {
28112 *__a = __aarch64_vget_lane_any (__b, __lane);
28113 }
28114
28115 __extension__ extern __inline void
28116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_u32(uint32_t * __a,uint32x4_t __b,const int __lane)28117 vst1q_lane_u32 (uint32_t *__a, uint32x4_t __b, const int __lane)
28118 {
28119 *__a = __aarch64_vget_lane_any (__b, __lane);
28120 }
28121
28122 __extension__ extern __inline void
28123 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_u64(uint64_t * __a,uint64x2_t __b,const int __lane)28124 vst1q_lane_u64 (uint64_t *__a, uint64x2_t __b, const int __lane)
28125 {
28126 *__a = __aarch64_vget_lane_any (__b, __lane);
28127 }
28128
28129 /* vst1x2 */
28130
28131 __extension__ extern __inline void
28132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s64_x2(int64_t * __a,int64x1x2_t __val)28133 vst1_s64_x2 (int64_t * __a, int64x1x2_t __val)
28134 {
28135 __builtin_aarch64_simd_oi __o;
28136 int64x2x2_t __temp;
28137 __temp.val[0]
28138 = vcombine_s64 (__val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
28139 __temp.val[1]
28140 = vcombine_s64 (__val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
28141 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __temp.val[0], 0);
28142 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __temp.val[1], 1);
28143 __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __o);
28144 }
28145
28146 __extension__ extern __inline void
28147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u64_x2(uint64_t * __a,uint64x1x2_t __val)28148 vst1_u64_x2 (uint64_t * __a, uint64x1x2_t __val)
28149 {
28150 __builtin_aarch64_simd_oi __o;
28151 uint64x2x2_t __temp;
28152 __temp.val[0]
28153 = vcombine_u64 (__val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
28154 __temp.val[1]
28155 = vcombine_u64 (__val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
28156 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __temp.val[0], 0);
28157 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __temp.val[1], 1);
28158 __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __o);
28159 }
28160
28161 __extension__ extern __inline void
28162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f64_x2(float64_t * __a,float64x1x2_t __val)28163 vst1_f64_x2 (float64_t * __a, float64x1x2_t __val)
28164 {
28165 __builtin_aarch64_simd_oi __o;
28166 float64x2x2_t __temp;
28167 __temp.val[0]
28168 = vcombine_f64 (__val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
28169 __temp.val[1]
28170 = vcombine_f64 (__val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
28171 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) __temp.val[0], 0);
28172 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) __temp.val[1], 1);
28173 __builtin_aarch64_st1x2df ((__builtin_aarch64_simd_df *) __a, __o);
28174 }
28175
28176 __extension__ extern __inline void
28177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s8_x2(int8_t * __a,int8x8x2_t __val)28178 vst1_s8_x2 (int8_t * __a, int8x8x2_t __val)
28179 {
28180 __builtin_aarch64_simd_oi __o;
28181 int8x16x2_t __temp;
28182 __temp.val[0]
28183 = vcombine_s8 (__val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
28184 __temp.val[1]
28185 = vcombine_s8 (__val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
28186 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[0], 0);
28187 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[1], 1);
28188 __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28189 }
28190
28191 __extension__ extern __inline void
28192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p8_x2(poly8_t * __a,poly8x8x2_t __val)28193 vst1_p8_x2 (poly8_t * __a, poly8x8x2_t __val)
28194 {
28195 __builtin_aarch64_simd_oi __o;
28196 poly8x16x2_t __temp;
28197 __temp.val[0]
28198 = vcombine_p8 (__val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
28199 __temp.val[1]
28200 = vcombine_p8 (__val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
28201 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[0], 0);
28202 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[1], 1);
28203 __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28204 }
28205
28206 __extension__ extern __inline void
28207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s16_x2(int16_t * __a,int16x4x2_t __val)28208 vst1_s16_x2 (int16_t * __a, int16x4x2_t __val)
28209 {
28210 __builtin_aarch64_simd_oi __o;
28211 int16x8x2_t __temp;
28212 __temp.val[0]
28213 = vcombine_s16 (__val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
28214 __temp.val[1]
28215 = vcombine_s16 (__val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
28216 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[0], 0);
28217 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[1], 1);
28218 __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28219 }
28220
28221 __extension__ extern __inline void
28222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p16_x2(poly16_t * __a,poly16x4x2_t __val)28223 vst1_p16_x2 (poly16_t * __a, poly16x4x2_t __val)
28224 {
28225 __builtin_aarch64_simd_oi __o;
28226 poly16x8x2_t __temp;
28227 __temp.val[0]
28228 = vcombine_p16 (__val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
28229 __temp.val[1]
28230 = vcombine_p16 (__val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
28231 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[0], 0);
28232 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[1], 1);
28233 __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28234 }
28235
28236 __extension__ extern __inline void
28237 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s32_x2(int32_t * __a,int32x2x2_t __val)28238 vst1_s32_x2 (int32_t * __a, int32x2x2_t __val)
28239 {
28240 __builtin_aarch64_simd_oi __o;
28241 int32x4x2_t __temp;
28242 __temp.val[0]
28243 = vcombine_s32 (__val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
28244 __temp.val[1]
28245 = vcombine_s32 (__val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
28246 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __temp.val[0], 0);
28247 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __temp.val[1], 1);
28248 __builtin_aarch64_st1x2v2si ((__builtin_aarch64_simd_si *) __a, __o);
28249 }
28250
28251 __extension__ extern __inline void
28252 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u8_x2(uint8_t * __a,uint8x8x2_t __val)28253 vst1_u8_x2 (uint8_t * __a, uint8x8x2_t __val)
28254 {
28255 __builtin_aarch64_simd_oi __o;
28256 uint8x16x2_t __temp;
28257 __temp.val[0] = vcombine_u8 (__val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
28258 __temp.val[1] = vcombine_u8 (__val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
28259 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[0], 0);
28260 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[1], 1);
28261 __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28262 }
28263
28264 __extension__ extern __inline void
28265 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u16_x2(uint16_t * __a,uint16x4x2_t __val)28266 vst1_u16_x2 (uint16_t * __a, uint16x4x2_t __val)
28267 {
28268 __builtin_aarch64_simd_oi __o;
28269 uint16x8x2_t __temp;
28270 __temp.val[0] = vcombine_u16 (__val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
28271 __temp.val[1] = vcombine_u16 (__val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
28272 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[0], 0);
28273 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[1], 1);
28274 __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28275 }
28276
28277 __extension__ extern __inline void
28278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u32_x2(uint32_t * __a,uint32x2x2_t __val)28279 vst1_u32_x2 (uint32_t * __a, uint32x2x2_t __val)
28280 {
28281 __builtin_aarch64_simd_oi __o;
28282 uint32x4x2_t __temp;
28283 __temp.val[0] = vcombine_u32 (__val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
28284 __temp.val[1] = vcombine_u32 (__val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
28285 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __temp.val[0], 0);
28286 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __temp.val[1], 1);
28287 __builtin_aarch64_st1x2v2si ((__builtin_aarch64_simd_si *) __a, __o);
28288 }
28289
28290 __extension__ extern __inline void
28291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f16_x2(float16_t * __a,float16x4x2_t __val)28292 vst1_f16_x2 (float16_t * __a, float16x4x2_t __val)
28293 {
28294 __builtin_aarch64_simd_oi __o;
28295 float16x8x2_t __temp;
28296 __temp.val[0] = vcombine_f16 (__val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
28297 __temp.val[1] = vcombine_f16 (__val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
28298 __o = __builtin_aarch64_set_qregoiv8hf (__o, __temp.val[0], 0);
28299 __o = __builtin_aarch64_set_qregoiv8hf (__o, __temp.val[1], 1);
28300 __builtin_aarch64_st1x2v4hf (__a, __o);
28301 }
28302
28303 __extension__ extern __inline void
28304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f32_x2(float32_t * __a,float32x2x2_t __val)28305 vst1_f32_x2 (float32_t * __a, float32x2x2_t __val)
28306 {
28307 __builtin_aarch64_simd_oi __o;
28308 float32x4x2_t __temp;
28309 __temp.val[0] = vcombine_f32 (__val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
28310 __temp.val[1] = vcombine_f32 (__val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
28311 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) __temp.val[0], 0);
28312 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) __temp.val[1], 1);
28313 __builtin_aarch64_st1x2v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
28314 }
28315
28316 __extension__ extern __inline void
28317 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p64_x2(poly64_t * __a,poly64x1x2_t __val)28318 vst1_p64_x2 (poly64_t * __a, poly64x1x2_t __val)
28319 {
28320 __builtin_aarch64_simd_oi __o;
28321 poly64x2x2_t __temp;
28322 __temp.val[0] = vcombine_p64 (__val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
28323 __temp.val[1] = vcombine_p64 (__val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
28324 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28325 (poly64x2_t) __temp.val[0], 0);
28326 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28327 (poly64x2_t) __temp.val[1], 1);
28328 __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __o);
28329 }
28330
28331 __extension__ extern __inline void
28332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s8_x2(int8_t * __a,int8x16x2_t __val)28333 vst1q_s8_x2 (int8_t * __a, int8x16x2_t __val)
28334 {
28335 __builtin_aarch64_simd_oi __o;
28336 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[0], 0);
28337 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[1], 1);
28338 __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28339 }
28340
28341 __extension__ extern __inline void
28342 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p8_x2(poly8_t * __a,poly8x16x2_t __val)28343 vst1q_p8_x2 (poly8_t * __a, poly8x16x2_t __val)
28344 {
28345 __builtin_aarch64_simd_oi __o;
28346 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[0], 0);
28347 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[1], 1);
28348 __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28349 }
28350
28351 __extension__ extern __inline void
28352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s16_x2(int16_t * __a,int16x8x2_t __val)28353 vst1q_s16_x2 (int16_t * __a, int16x8x2_t __val)
28354 {
28355 __builtin_aarch64_simd_oi __o;
28356 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[0], 0);
28357 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[1], 1);
28358 __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28359 }
28360
28361 __extension__ extern __inline void
28362 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p16_x2(poly16_t * __a,poly16x8x2_t __val)28363 vst1q_p16_x2 (poly16_t * __a, poly16x8x2_t __val)
28364 {
28365 __builtin_aarch64_simd_oi __o;
28366 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[0], 0);
28367 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[1], 1);
28368 __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28369 }
28370
28371 __extension__ extern __inline void
28372 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s32_x2(int32_t * __a,int32x4x2_t __val)28373 vst1q_s32_x2 (int32_t * __a, int32x4x2_t __val)
28374 {
28375 __builtin_aarch64_simd_oi __o;
28376 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __val.val[0], 0);
28377 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __val.val[1], 1);
28378 __builtin_aarch64_st1x2v4si ((__builtin_aarch64_simd_si *) __a, __o);
28379 }
28380
28381 __extension__ extern __inline void
28382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s64_x2(int64_t * __a,int64x2x2_t __val)28383 vst1q_s64_x2 (int64_t * __a, int64x2x2_t __val)
28384 {
28385 __builtin_aarch64_simd_oi __o;
28386 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __val.val[0], 0);
28387 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __val.val[1], 1);
28388 __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28389 }
28390
28391 __extension__ extern __inline void
28392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u8_x2(uint8_t * __a,uint8x16x2_t __val)28393 vst1q_u8_x2 (uint8_t * __a, uint8x16x2_t __val)
28394 {
28395 __builtin_aarch64_simd_oi __o;
28396 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[0], 0);
28397 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[1], 1);
28398 __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28399 }
28400
28401 __extension__ extern __inline void
28402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u16_x2(uint16_t * __a,uint16x8x2_t __val)28403 vst1q_u16_x2 (uint16_t * __a, uint16x8x2_t __val)
28404 {
28405 __builtin_aarch64_simd_oi __o;
28406 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[0], 0);
28407 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[1], 1);
28408 __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28409 }
28410
28411 __extension__ extern __inline void
28412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u32_x2(uint32_t * __a,uint32x4x2_t __val)28413 vst1q_u32_x2 (uint32_t * __a, uint32x4x2_t __val)
28414 {
28415 __builtin_aarch64_simd_oi __o;
28416 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __val.val[0], 0);
28417 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __val.val[1], 1);
28418 __builtin_aarch64_st1x2v4si ((__builtin_aarch64_simd_si *) __a, __o);
28419 }
28420
28421 __extension__ extern __inline void
28422 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u64_x2(uint64_t * __a,uint64x2x2_t __val)28423 vst1q_u64_x2 (uint64_t * __a, uint64x2x2_t __val)
28424 {
28425 __builtin_aarch64_simd_oi __o;
28426 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __val.val[0], 0);
28427 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __val.val[1], 1);
28428 __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28429 }
28430
28431 __extension__ extern __inline void
28432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f16_x2(float16_t * __a,float16x8x2_t __val)28433 vst1q_f16_x2 (float16_t * __a, float16x8x2_t __val)
28434 {
28435 __builtin_aarch64_simd_oi __o;
28436 __o = __builtin_aarch64_set_qregoiv8hf (__o, __val.val[0], 0);
28437 __o = __builtin_aarch64_set_qregoiv8hf (__o, __val.val[1], 1);
28438 __builtin_aarch64_st1x2v8hf (__a, __o);
28439 }
28440
28441 __extension__ extern __inline void
28442 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f32_x2(float32_t * __a,float32x4x2_t __val)28443 vst1q_f32_x2 (float32_t * __a, float32x4x2_t __val)
28444 {
28445 __builtin_aarch64_simd_oi __o;
28446 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) __val.val[0], 0);
28447 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) __val.val[1], 1);
28448 __builtin_aarch64_st1x2v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
28449 }
28450
28451 __extension__ extern __inline void
28452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f64_x2(float64_t * __a,float64x2x2_t __val)28453 vst1q_f64_x2 (float64_t * __a, float64x2x2_t __val)
28454 {
28455 __builtin_aarch64_simd_oi __o;
28456 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) __val.val[0], 0);
28457 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) __val.val[1], 1);
28458 __builtin_aarch64_st1x2v2df ((__builtin_aarch64_simd_df *) __a, __o);
28459 }
28460
28461 __extension__ extern __inline void
28462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p64_x2(poly64_t * __a,poly64x2x2_t __val)28463 vst1q_p64_x2 (poly64_t * __a, poly64x2x2_t __val)
28464 {
28465 __builtin_aarch64_simd_oi __o;
28466 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28467 (poly64x2_t) __val.val[0], 0);
28468 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28469 (poly64x2_t) __val.val[1], 1);
28470 __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28471 }
28472
28473 /* vst1x3 */
28474
28475 __extension__ extern __inline void
28476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s64_x3(int64_t * __a,int64x1x3_t __val)28477 vst1_s64_x3 (int64_t * __a, int64x1x3_t __val)
28478 {
28479 __builtin_aarch64_simd_ci __o;
28480 int64x2x3_t __temp;
28481 __temp.val[0] = vcombine_s64 (__val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
28482 __temp.val[1] = vcombine_s64 (__val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
28483 __temp.val[2] = vcombine_s64 (__val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
28484 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[0], 0);
28485 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[1], 1);
28486 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[2], 2);
28487 __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __o);
28488 }
28489
28490 __extension__ extern __inline void
28491 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u64_x3(uint64_t * __a,uint64x1x3_t __val)28492 vst1_u64_x3 (uint64_t * __a, uint64x1x3_t __val)
28493 {
28494 __builtin_aarch64_simd_ci __o;
28495 uint64x2x3_t __temp;
28496 __temp.val[0] = vcombine_u64 (__val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
28497 __temp.val[1] = vcombine_u64 (__val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
28498 __temp.val[2] = vcombine_u64 (__val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
28499 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[0], 0);
28500 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[1], 1);
28501 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[2], 2);
28502 __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __o);
28503 }
28504
28505 __extension__ extern __inline void
28506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f64_x3(float64_t * __a,float64x1x3_t __val)28507 vst1_f64_x3 (float64_t * __a, float64x1x3_t __val)
28508 {
28509 __builtin_aarch64_simd_ci __o;
28510 float64x2x3_t __temp;
28511 __temp.val[0] = vcombine_f64 (__val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
28512 __temp.val[1] = vcombine_f64 (__val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
28513 __temp.val[2] = vcombine_f64 (__val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
28514 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __temp.val[0], 0);
28515 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __temp.val[1], 1);
28516 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __temp.val[2], 2);
28517 __builtin_aarch64_st1x3df ((__builtin_aarch64_simd_df *) __a, __o);
28518 }
28519
28520 __extension__ extern __inline void
28521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s8_x3(int8_t * __a,int8x8x3_t __val)28522 vst1_s8_x3 (int8_t * __a, int8x8x3_t __val)
28523 {
28524 __builtin_aarch64_simd_ci __o;
28525 int8x16x3_t __temp;
28526 __temp.val[0] = vcombine_s8 (__val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
28527 __temp.val[1] = vcombine_s8 (__val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
28528 __temp.val[2] = vcombine_s8 (__val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
28529 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[0], 0);
28530 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[1], 1);
28531 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[2], 2);
28532 __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28533 }
28534
28535 __extension__ extern __inline void
28536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p8_x3(poly8_t * __a,poly8x8x3_t __val)28537 vst1_p8_x3 (poly8_t * __a, poly8x8x3_t __val)
28538 {
28539 __builtin_aarch64_simd_ci __o;
28540 poly8x16x3_t __temp;
28541 __temp.val[0] = vcombine_p8 (__val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
28542 __temp.val[1] = vcombine_p8 (__val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
28543 __temp.val[2] = vcombine_p8 (__val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
28544 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[0], 0);
28545 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[1], 1);
28546 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[2], 2);
28547 __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28548 }
28549
28550 __extension__ extern __inline void
28551 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s16_x3(int16_t * __a,int16x4x3_t __val)28552 vst1_s16_x3 (int16_t * __a, int16x4x3_t __val)
28553 {
28554 __builtin_aarch64_simd_ci __o;
28555 int16x8x3_t __temp;
28556 __temp.val[0] = vcombine_s16 (__val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
28557 __temp.val[1] = vcombine_s16 (__val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
28558 __temp.val[2] = vcombine_s16 (__val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
28559 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[0], 0);
28560 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[1], 1);
28561 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[2], 2);
28562 __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28563 }
28564
28565 __extension__ extern __inline void
28566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p16_x3(poly16_t * __a,poly16x4x3_t __val)28567 vst1_p16_x3 (poly16_t * __a, poly16x4x3_t __val)
28568 {
28569 __builtin_aarch64_simd_ci __o;
28570 poly16x8x3_t __temp;
28571 __temp.val[0] = vcombine_p16 (__val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
28572 __temp.val[1] = vcombine_p16 (__val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
28573 __temp.val[2] = vcombine_p16 (__val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
28574 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[0], 0);
28575 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[1], 1);
28576 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[2], 2);
28577 __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28578 }
28579
28580 __extension__ extern __inline void
28581 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s32_x3(int32_t * __a,int32x2x3_t __val)28582 vst1_s32_x3 (int32_t * __a, int32x2x3_t __val)
28583 {
28584 __builtin_aarch64_simd_ci __o;
28585 int32x4x3_t __temp;
28586 __temp.val[0] = vcombine_s32 (__val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
28587 __temp.val[1] = vcombine_s32 (__val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
28588 __temp.val[2] = vcombine_s32 (__val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
28589 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[0], 0);
28590 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[1], 1);
28591 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[2], 2);
28592 __builtin_aarch64_st1x3v2si ((__builtin_aarch64_simd_si *) __a, __o);
28593 }
28594
28595 __extension__ extern __inline void
28596 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u8_x3(uint8_t * __a,uint8x8x3_t __val)28597 vst1_u8_x3 (uint8_t * __a, uint8x8x3_t __val)
28598 {
28599 __builtin_aarch64_simd_ci __o;
28600 uint8x16x3_t __temp;
28601 __temp.val[0] = vcombine_u8 (__val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
28602 __temp.val[1] = vcombine_u8 (__val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
28603 __temp.val[2] = vcombine_u8 (__val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
28604 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[0], 0);
28605 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[1], 1);
28606 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[2], 2);
28607 __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28608 }
28609
28610 __extension__ extern __inline void
28611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u16_x3(uint16_t * __a,uint16x4x3_t __val)28612 vst1_u16_x3 (uint16_t * __a, uint16x4x3_t __val)
28613 {
28614 __builtin_aarch64_simd_ci __o;
28615 uint16x8x3_t __temp;
28616 __temp.val[0] = vcombine_u16 (__val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
28617 __temp.val[1] = vcombine_u16 (__val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
28618 __temp.val[2] = vcombine_u16 (__val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
28619 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[0], 0);
28620 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[1], 1);
28621 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[2], 2);
28622 __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28623 }
28624
28625 __extension__ extern __inline void
28626 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u32_x3(uint32_t * __a,uint32x2x3_t __val)28627 vst1_u32_x3 (uint32_t * __a, uint32x2x3_t __val)
28628 {
28629 __builtin_aarch64_simd_ci __o;
28630 uint32x4x3_t __temp;
28631 __temp.val[0] = vcombine_u32 (__val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
28632 __temp.val[1] = vcombine_u32 (__val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
28633 __temp.val[2] = vcombine_u32 (__val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
28634 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[0], 0);
28635 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[1], 1);
28636 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[2], 2);
28637 __builtin_aarch64_st1x3v2si ((__builtin_aarch64_simd_si *) __a, __o);
28638 }
28639
28640 __extension__ extern __inline void
28641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f16_x3(float16_t * __a,float16x4x3_t __val)28642 vst1_f16_x3 (float16_t * __a, float16x4x3_t __val)
28643 {
28644 __builtin_aarch64_simd_ci __o;
28645 float16x8x3_t __temp;
28646 __temp.val[0] = vcombine_f16 (__val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
28647 __temp.val[1] = vcombine_f16 (__val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
28648 __temp.val[2] = vcombine_f16 (__val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
28649 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __temp.val[0], 0);
28650 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __temp.val[1], 1);
28651 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __temp.val[2], 2);
28652 __builtin_aarch64_st1x3v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
28653 }
28654
28655 __extension__ extern __inline void
28656 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f32_x3(float32_t * __a,float32x2x3_t __val)28657 vst1_f32_x3 (float32_t * __a, float32x2x3_t __val)
28658 {
28659 __builtin_aarch64_simd_ci __o;
28660 float32x4x3_t __temp;
28661 __temp.val[0] = vcombine_f32 (__val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
28662 __temp.val[1] = vcombine_f32 (__val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
28663 __temp.val[2] = vcombine_f32 (__val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
28664 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __temp.val[0], 0);
28665 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __temp.val[1], 1);
28666 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __temp.val[2], 2);
28667 __builtin_aarch64_st1x3v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
28668 }
28669
28670 __extension__ extern __inline void
28671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p64_x3(poly64_t * __a,poly64x1x3_t __val)28672 vst1_p64_x3 (poly64_t * __a, poly64x1x3_t __val)
28673 {
28674 __builtin_aarch64_simd_ci __o;
28675 poly64x2x3_t __temp;
28676 __temp.val[0] = vcombine_p64 (__val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
28677 __temp.val[1] = vcombine_p64 (__val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
28678 __temp.val[2] = vcombine_p64 (__val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
28679 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28680 (poly64x2_t) __temp.val[0], 0);
28681 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28682 (poly64x2_t) __temp.val[1], 1);
28683 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28684 (poly64x2_t) __temp.val[2], 2);
28685 __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __o);
28686 }
28687
28688 __extension__ extern __inline void
28689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s8_x3(int8_t * __a,int8x16x3_t __val)28690 vst1q_s8_x3 (int8_t * __a, int8x16x3_t __val)
28691 {
28692 __builtin_aarch64_simd_ci __o;
28693 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[0], 0);
28694 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[1], 1);
28695 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[2], 2);
28696 __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28697 }
28698
28699 __extension__ extern __inline void
28700 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p8_x3(poly8_t * __a,poly8x16x3_t __val)28701 vst1q_p8_x3 (poly8_t * __a, poly8x16x3_t __val)
28702 {
28703 __builtin_aarch64_simd_ci __o;
28704 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[0], 0);
28705 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[1], 1);
28706 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[2], 2);
28707 __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28708 }
28709
28710 __extension__ extern __inline void
28711 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s16_x3(int16_t * __a,int16x8x3_t __val)28712 vst1q_s16_x3 (int16_t * __a, int16x8x3_t __val)
28713 {
28714 __builtin_aarch64_simd_ci __o;
28715 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[0], 0);
28716 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[1], 1);
28717 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[2], 2);
28718 __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28719 }
28720
28721 __extension__ extern __inline void
28722 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p16_x3(poly16_t * __a,poly16x8x3_t __val)28723 vst1q_p16_x3 (poly16_t * __a, poly16x8x3_t __val)
28724 {
28725 __builtin_aarch64_simd_ci __o;
28726 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[0], 0);
28727 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[1], 1);
28728 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[2], 2);
28729 __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28730 }
28731
28732 __extension__ extern __inline void
28733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s32_x3(int32_t * __a,int32x4x3_t __val)28734 vst1q_s32_x3 (int32_t * __a, int32x4x3_t __val)
28735 {
28736 __builtin_aarch64_simd_ci __o;
28737 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[0], 0);
28738 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[1], 1);
28739 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[2], 2);
28740 __builtin_aarch64_st1x3v4si ((__builtin_aarch64_simd_si *) __a, __o);
28741 }
28742
28743 __extension__ extern __inline void
28744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s64_x3(int64_t * __a,int64x2x3_t __val)28745 vst1q_s64_x3 (int64_t * __a, int64x2x3_t __val)
28746 {
28747 __builtin_aarch64_simd_ci __o;
28748 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[0], 0);
28749 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[1], 1);
28750 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[2], 2);
28751 __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28752 }
28753
28754 __extension__ extern __inline void
28755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u8_x3(uint8_t * __a,uint8x16x3_t __val)28756 vst1q_u8_x3 (uint8_t * __a, uint8x16x3_t __val)
28757 {
28758 __builtin_aarch64_simd_ci __o;
28759 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[0], 0);
28760 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[1], 1);
28761 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[2], 2);
28762 __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28763 }
28764
28765 __extension__ extern __inline void
28766 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u16_x3(uint16_t * __a,uint16x8x3_t __val)28767 vst1q_u16_x3 (uint16_t * __a, uint16x8x3_t __val)
28768 {
28769 __builtin_aarch64_simd_ci __o;
28770 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[0], 0);
28771 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[1], 1);
28772 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[2], 2);
28773 __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28774 }
28775
28776 __extension__ extern __inline void
28777 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u32_x3(uint32_t * __a,uint32x4x3_t __val)28778 vst1q_u32_x3 (uint32_t * __a, uint32x4x3_t __val)
28779 {
28780 __builtin_aarch64_simd_ci __o;
28781 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[0], 0);
28782 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[1], 1);
28783 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[2], 2);
28784 __builtin_aarch64_st1x3v4si ((__builtin_aarch64_simd_si *) __a, __o);
28785 }
28786
28787 __extension__ extern __inline void
28788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u64_x3(uint64_t * __a,uint64x2x3_t __val)28789 vst1q_u64_x3 (uint64_t * __a, uint64x2x3_t __val)
28790 {
28791 __builtin_aarch64_simd_ci __o;
28792 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[0], 0);
28793 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[1], 1);
28794 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[2], 2);
28795 __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28796 }
28797
28798 __extension__ extern __inline void
28799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f16_x3(float16_t * __a,float16x8x3_t __val)28800 vst1q_f16_x3 (float16_t * __a, float16x8x3_t __val)
28801 {
28802 __builtin_aarch64_simd_ci __o;
28803 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __val.val[0], 0);
28804 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __val.val[1], 1);
28805 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __val.val[2], 2);
28806 __builtin_aarch64_st1x3v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
28807 }
28808
28809 __extension__ extern __inline void
28810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f32_x3(float32_t * __a,float32x4x3_t __val)28811 vst1q_f32_x3 (float32_t * __a, float32x4x3_t __val)
28812 {
28813 __builtin_aarch64_simd_ci __o;
28814 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __val.val[0], 0);
28815 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __val.val[1], 1);
28816 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __val.val[2], 2);
28817 __builtin_aarch64_st1x3v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
28818 }
28819
28820 __extension__ extern __inline void
28821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f64_x3(float64_t * __a,float64x2x3_t __val)28822 vst1q_f64_x3 (float64_t * __a, float64x2x3_t __val)
28823 {
28824 __builtin_aarch64_simd_ci __o;
28825 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __val.val[0], 0);
28826 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __val.val[1], 1);
28827 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __val.val[2], 2);
28828 __builtin_aarch64_st1x3v2df ((__builtin_aarch64_simd_df *) __a, __o);
28829 }
28830
28831 __extension__ extern __inline void
28832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p64_x3(poly64_t * __a,poly64x2x3_t __val)28833 vst1q_p64_x3 (poly64_t * __a, poly64x2x3_t __val)
28834 {
28835 __builtin_aarch64_simd_ci __o;
28836 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28837 (poly64x2_t) __val.val[0], 0);
28838 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28839 (poly64x2_t) __val.val[1], 1);
28840 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28841 (poly64x2_t) __val.val[2], 2);
28842 __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28843 }
28844
28845 /* vst1(q)_x4. */
28846
28847 __extension__ extern __inline void
28848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s8_x4(int8_t * __a,int8x8x4_t val)28849 vst1_s8_x4 (int8_t * __a, int8x8x4_t val)
28850 {
28851 union { int8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28852 __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
28853 }
28854
28855 __extension__ extern __inline void
28856 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s8_x4(int8_t * __a,int8x16x4_t val)28857 vst1q_s8_x4 (int8_t * __a, int8x16x4_t val)
28858 {
28859 union { int8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28860 __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
28861 }
28862
28863 __extension__ extern __inline void
28864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s16_x4(int16_t * __a,int16x4x4_t val)28865 vst1_s16_x4 (int16_t * __a, int16x4x4_t val)
28866 {
28867 union { int16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28868 __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
28869 }
28870
28871 __extension__ extern __inline void
28872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s16_x4(int16_t * __a,int16x8x4_t val)28873 vst1q_s16_x4 (int16_t * __a, int16x8x4_t val)
28874 {
28875 union { int16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28876 __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
28877 }
28878
28879 __extension__ extern __inline void
28880 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s32_x4(int32_t * __a,int32x2x4_t val)28881 vst1_s32_x4 (int32_t * __a, int32x2x4_t val)
28882 {
28883 union { int32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28884 __builtin_aarch64_st1x4v2si ((__builtin_aarch64_simd_si *) __a, __u.__o);
28885 }
28886
28887 __extension__ extern __inline void
28888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s32_x4(int32_t * __a,int32x4x4_t val)28889 vst1q_s32_x4 (int32_t * __a, int32x4x4_t val)
28890 {
28891 union { int32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28892 __builtin_aarch64_st1x4v4si ((__builtin_aarch64_simd_si *) __a, __u.__o);
28893 }
28894
28895 __extension__ extern __inline void
28896 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u8_x4(uint8_t * __a,uint8x8x4_t val)28897 vst1_u8_x4 (uint8_t * __a, uint8x8x4_t val)
28898 {
28899 union { uint8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28900 __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
28901 }
28902
28903 __extension__ extern __inline void
28904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u8_x4(uint8_t * __a,uint8x16x4_t val)28905 vst1q_u8_x4 (uint8_t * __a, uint8x16x4_t val)
28906 {
28907 union { uint8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28908 __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
28909 }
28910
28911 __extension__ extern __inline void
28912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u16_x4(uint16_t * __a,uint16x4x4_t val)28913 vst1_u16_x4 (uint16_t * __a, uint16x4x4_t val)
28914 {
28915 union { uint16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28916 __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
28917 }
28918
28919 __extension__ extern __inline void
28920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u16_x4(uint16_t * __a,uint16x8x4_t val)28921 vst1q_u16_x4 (uint16_t * __a, uint16x8x4_t val)
28922 {
28923 union { uint16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28924 __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
28925 }
28926
28927 __extension__ extern __inline void
28928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u32_x4(uint32_t * __a,uint32x2x4_t val)28929 vst1_u32_x4 (uint32_t * __a, uint32x2x4_t val)
28930 {
28931 union { uint32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28932 __builtin_aarch64_st1x4v2si ((__builtin_aarch64_simd_si *) __a, __u.__o);
28933 }
28934
28935 __extension__ extern __inline void
28936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u32_x4(uint32_t * __a,uint32x4x4_t val)28937 vst1q_u32_x4 (uint32_t * __a, uint32x4x4_t val)
28938 {
28939 union { uint32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28940 __builtin_aarch64_st1x4v4si ((__builtin_aarch64_simd_si *) __a, __u.__o);
28941 }
28942
28943 __extension__ extern __inline void
28944 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f16_x4(float16_t * __a,float16x4x4_t val)28945 vst1_f16_x4 (float16_t * __a, float16x4x4_t val)
28946 {
28947 union { float16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28948 __builtin_aarch64_st1x4v4hf ((__builtin_aarch64_simd_hf *) __a, __u.__o);
28949 }
28950
28951 __extension__ extern __inline void
28952 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f16_x4(float16_t * __a,float16x8x4_t val)28953 vst1q_f16_x4 (float16_t * __a, float16x8x4_t val)
28954 {
28955 union { float16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28956 __builtin_aarch64_st1x4v8hf ((__builtin_aarch64_simd_hf *) __a, __u.__o);
28957 }
28958
28959 __extension__ extern __inline void
28960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f32_x4(float32_t * __a,float32x2x4_t val)28961 vst1_f32_x4 (float32_t * __a, float32x2x4_t val)
28962 {
28963 union { float32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28964 __builtin_aarch64_st1x4v2sf ((__builtin_aarch64_simd_sf *) __a, __u.__o);
28965 }
28966
28967 __extension__ extern __inline void
28968 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f32_x4(float32_t * __a,float32x4x4_t val)28969 vst1q_f32_x4 (float32_t * __a, float32x4x4_t val)
28970 {
28971 union { float32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28972 __builtin_aarch64_st1x4v4sf ((__builtin_aarch64_simd_sf *) __a, __u.__o);
28973 }
28974
28975 __extension__ extern __inline void
28976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p8_x4(poly8_t * __a,poly8x8x4_t val)28977 vst1_p8_x4 (poly8_t * __a, poly8x8x4_t val)
28978 {
28979 union { poly8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28980 __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
28981 }
28982
28983 __extension__ extern __inline void
28984 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p8_x4(poly8_t * __a,poly8x16x4_t val)28985 vst1q_p8_x4 (poly8_t * __a, poly8x16x4_t val)
28986 {
28987 union { poly8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28988 __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __u.__o);
28989 }
28990
28991 __extension__ extern __inline void
28992 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p16_x4(poly16_t * __a,poly16x4x4_t val)28993 vst1_p16_x4 (poly16_t * __a, poly16x4x4_t val)
28994 {
28995 union { poly16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
28996 __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
28997 }
28998
28999 __extension__ extern __inline void
29000 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p16_x4(poly16_t * __a,poly16x8x4_t val)29001 vst1q_p16_x4 (poly16_t * __a, poly16x8x4_t val)
29002 {
29003 union { poly16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29004 __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __u.__o);
29005 }
29006
29007 __extension__ extern __inline void
29008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_s64_x4(int64_t * __a,int64x1x4_t val)29009 vst1_s64_x4 (int64_t * __a, int64x1x4_t val)
29010 {
29011 union { int64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29012 __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29013 }
29014
29015 __extension__ extern __inline void
29016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_u64_x4(uint64_t * __a,uint64x1x4_t val)29017 vst1_u64_x4 (uint64_t * __a, uint64x1x4_t val)
29018 {
29019 union { uint64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29020 __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29021 }
29022
29023 __extension__ extern __inline void
29024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_p64_x4(poly64_t * __a,poly64x1x4_t val)29025 vst1_p64_x4 (poly64_t * __a, poly64x1x4_t val)
29026 {
29027 union { poly64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29028 __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29029 }
29030
29031 __extension__ extern __inline void
29032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_s64_x4(int64_t * __a,int64x2x4_t val)29033 vst1q_s64_x4 (int64_t * __a, int64x2x4_t val)
29034 {
29035 union { int64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29036 __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29037 }
29038
29039 __extension__ extern __inline void
29040 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_u64_x4(uint64_t * __a,uint64x2x4_t val)29041 vst1q_u64_x4 (uint64_t * __a, uint64x2x4_t val)
29042 {
29043 union { uint64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29044 __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29045 }
29046
29047 __extension__ extern __inline void
29048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_p64_x4(poly64_t * __a,poly64x2x4_t val)29049 vst1q_p64_x4 (poly64_t * __a, poly64x2x4_t val)
29050 {
29051 union { poly64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29052 __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __u.__o);
29053 }
29054
29055 __extension__ extern __inline void
29056 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_f64_x4(float64_t * __a,float64x1x4_t val)29057 vst1_f64_x4 (float64_t * __a, float64x1x4_t val)
29058 {
29059 union { float64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29060 __builtin_aarch64_st1x4df ((__builtin_aarch64_simd_df *) __a, __u.__o);
29061 }
29062
29063 __extension__ extern __inline void
29064 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_f64_x4(float64_t * __a,float64x2x4_t val)29065 vst1q_f64_x4 (float64_t * __a, float64x2x4_t val)
29066 {
29067 union { float64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
29068 __builtin_aarch64_st1x4v2df ((__builtin_aarch64_simd_df *) __a, __u.__o);
29069 }
29070
29071 /* vstn */
29072
29073 __extension__ extern __inline void
29074 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_s64(int64_t * __a,int64x1x2_t __val)29075 vst2_s64 (int64_t * __a, int64x1x2_t __val)
29076 {
29077 __builtin_aarch64_simd_oi __o;
29078 int64x2x2_t __temp;
29079 __temp.val[0] = vcombine_s64 (__val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
29080 __temp.val[1] = vcombine_s64 (__val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
29081 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __temp.val[0], 0);
29082 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __temp.val[1], 1);
29083 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
29084 }
29085
29086 __extension__ extern __inline void
29087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_u64(uint64_t * __a,uint64x1x2_t __val)29088 vst2_u64 (uint64_t * __a, uint64x1x2_t __val)
29089 {
29090 __builtin_aarch64_simd_oi __o;
29091 uint64x2x2_t __temp;
29092 __temp.val[0] = vcombine_u64 (__val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
29093 __temp.val[1] = vcombine_u64 (__val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
29094 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __temp.val[0], 0);
29095 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __temp.val[1], 1);
29096 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
29097 }
29098
29099 __extension__ extern __inline void
29100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_f64(float64_t * __a,float64x1x2_t __val)29101 vst2_f64 (float64_t * __a, float64x1x2_t __val)
29102 {
29103 __builtin_aarch64_simd_oi __o;
29104 float64x2x2_t __temp;
29105 __temp.val[0] = vcombine_f64 (__val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
29106 __temp.val[1] = vcombine_f64 (__val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
29107 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) __temp.val[0], 0);
29108 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) __temp.val[1], 1);
29109 __builtin_aarch64_st2df ((__builtin_aarch64_simd_df *) __a, __o);
29110 }
29111
29112 __extension__ extern __inline void
29113 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_s8(int8_t * __a,int8x8x2_t __val)29114 vst2_s8 (int8_t * __a, int8x8x2_t __val)
29115 {
29116 __builtin_aarch64_simd_oi __o;
29117 int8x16x2_t __temp;
29118 __temp.val[0] = vcombine_s8 (__val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
29119 __temp.val[1] = vcombine_s8 (__val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
29120 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[0], 0);
29121 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[1], 1);
29122 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29123 }
29124
29125 __extension__ extern __inline void
29126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_p8(poly8_t * __a,poly8x8x2_t __val)29127 vst2_p8 (poly8_t * __a, poly8x8x2_t __val)
29128 {
29129 __builtin_aarch64_simd_oi __o;
29130 poly8x16x2_t __temp;
29131 __temp.val[0] = vcombine_p8 (__val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
29132 __temp.val[1] = vcombine_p8 (__val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
29133 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[0], 0);
29134 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[1], 1);
29135 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29136 }
29137
29138 __extension__ extern __inline void
29139 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_s16(int16_t * __a,int16x4x2_t __val)29140 vst2_s16 (int16_t * __a, int16x4x2_t __val)
29141 {
29142 __builtin_aarch64_simd_oi __o;
29143 int16x8x2_t __temp;
29144 __temp.val[0] = vcombine_s16 (__val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
29145 __temp.val[1] = vcombine_s16 (__val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
29146 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[0], 0);
29147 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[1], 1);
29148 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29149 }
29150
29151 __extension__ extern __inline void
29152 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_p16(poly16_t * __a,poly16x4x2_t __val)29153 vst2_p16 (poly16_t * __a, poly16x4x2_t __val)
29154 {
29155 __builtin_aarch64_simd_oi __o;
29156 poly16x8x2_t __temp;
29157 __temp.val[0] = vcombine_p16 (__val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
29158 __temp.val[1] = vcombine_p16 (__val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
29159 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[0], 0);
29160 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[1], 1);
29161 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29162 }
29163
29164 __extension__ extern __inline void
29165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_s32(int32_t * __a,int32x2x2_t __val)29166 vst2_s32 (int32_t * __a, int32x2x2_t __val)
29167 {
29168 __builtin_aarch64_simd_oi __o;
29169 int32x4x2_t __temp;
29170 __temp.val[0] = vcombine_s32 (__val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
29171 __temp.val[1] = vcombine_s32 (__val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
29172 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __temp.val[0], 0);
29173 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __temp.val[1], 1);
29174 __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __o);
29175 }
29176
29177 __extension__ extern __inline void
29178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_u8(uint8_t * __a,uint8x8x2_t __val)29179 vst2_u8 (uint8_t * __a, uint8x8x2_t __val)
29180 {
29181 __builtin_aarch64_simd_oi __o;
29182 uint8x16x2_t __temp;
29183 __temp.val[0] = vcombine_u8 (__val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
29184 __temp.val[1] = vcombine_u8 (__val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
29185 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[0], 0);
29186 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __temp.val[1], 1);
29187 __builtin_aarch64_st2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29188 }
29189
29190 __extension__ extern __inline void
29191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_u16(uint16_t * __a,uint16x4x2_t __val)29192 vst2_u16 (uint16_t * __a, uint16x4x2_t __val)
29193 {
29194 __builtin_aarch64_simd_oi __o;
29195 uint16x8x2_t __temp;
29196 __temp.val[0] = vcombine_u16 (__val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
29197 __temp.val[1] = vcombine_u16 (__val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
29198 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[0], 0);
29199 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __temp.val[1], 1);
29200 __builtin_aarch64_st2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29201 }
29202
29203 __extension__ extern __inline void
29204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_u32(uint32_t * __a,uint32x2x2_t __val)29205 vst2_u32 (uint32_t * __a, uint32x2x2_t __val)
29206 {
29207 __builtin_aarch64_simd_oi __o;
29208 uint32x4x2_t __temp;
29209 __temp.val[0] = vcombine_u32 (__val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
29210 __temp.val[1] = vcombine_u32 (__val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
29211 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __temp.val[0], 0);
29212 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __temp.val[1], 1);
29213 __builtin_aarch64_st2v2si ((__builtin_aarch64_simd_si *) __a, __o);
29214 }
29215
29216 __extension__ extern __inline void
29217 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_f16(float16_t * __a,float16x4x2_t __val)29218 vst2_f16 (float16_t * __a, float16x4x2_t __val)
29219 {
29220 __builtin_aarch64_simd_oi __o;
29221 float16x8x2_t __temp;
29222 __temp.val[0] = vcombine_f16 (__val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
29223 __temp.val[1] = vcombine_f16 (__val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
29224 __o = __builtin_aarch64_set_qregoiv8hf (__o, __temp.val[0], 0);
29225 __o = __builtin_aarch64_set_qregoiv8hf (__o, __temp.val[1], 1);
29226 __builtin_aarch64_st2v4hf (__a, __o);
29227 }
29228
29229 __extension__ extern __inline void
29230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_f32(float32_t * __a,float32x2x2_t __val)29231 vst2_f32 (float32_t * __a, float32x2x2_t __val)
29232 {
29233 __builtin_aarch64_simd_oi __o;
29234 float32x4x2_t __temp;
29235 __temp.val[0] = vcombine_f32 (__val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
29236 __temp.val[1] = vcombine_f32 (__val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
29237 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) __temp.val[0], 0);
29238 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) __temp.val[1], 1);
29239 __builtin_aarch64_st2v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
29240 }
29241
29242 __extension__ extern __inline void
29243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_p64(poly64_t * __a,poly64x1x2_t __val)29244 vst2_p64 (poly64_t * __a, poly64x1x2_t __val)
29245 {
29246 __builtin_aarch64_simd_oi __o;
29247 poly64x2x2_t __temp;
29248 __temp.val[0] = vcombine_p64 (__val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
29249 __temp.val[1] = vcombine_p64 (__val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
29250 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
29251 (poly64x2_t) __temp.val[0], 0);
29252 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
29253 (poly64x2_t) __temp.val[1], 1);
29254 __builtin_aarch64_st2di ((__builtin_aarch64_simd_di *) __a, __o);
29255 }
29256
29257 __extension__ extern __inline void
29258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_s8(int8_t * __a,int8x16x2_t __val)29259 vst2q_s8 (int8_t * __a, int8x16x2_t __val)
29260 {
29261 __builtin_aarch64_simd_oi __o;
29262 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[0], 0);
29263 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[1], 1);
29264 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29265 }
29266
29267 __extension__ extern __inline void
29268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_p8(poly8_t * __a,poly8x16x2_t __val)29269 vst2q_p8 (poly8_t * __a, poly8x16x2_t __val)
29270 {
29271 __builtin_aarch64_simd_oi __o;
29272 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[0], 0);
29273 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[1], 1);
29274 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29275 }
29276
29277 __extension__ extern __inline void
29278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_s16(int16_t * __a,int16x8x2_t __val)29279 vst2q_s16 (int16_t * __a, int16x8x2_t __val)
29280 {
29281 __builtin_aarch64_simd_oi __o;
29282 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[0], 0);
29283 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[1], 1);
29284 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29285 }
29286
29287 __extension__ extern __inline void
29288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_p16(poly16_t * __a,poly16x8x2_t __val)29289 vst2q_p16 (poly16_t * __a, poly16x8x2_t __val)
29290 {
29291 __builtin_aarch64_simd_oi __o;
29292 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[0], 0);
29293 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[1], 1);
29294 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29295 }
29296
29297 __extension__ extern __inline void
29298 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_s32(int32_t * __a,int32x4x2_t __val)29299 vst2q_s32 (int32_t * __a, int32x4x2_t __val)
29300 {
29301 __builtin_aarch64_simd_oi __o;
29302 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __val.val[0], 0);
29303 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __val.val[1], 1);
29304 __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
29305 }
29306
29307 __extension__ extern __inline void
29308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_s64(int64_t * __a,int64x2x2_t __val)29309 vst2q_s64 (int64_t * __a, int64x2x2_t __val)
29310 {
29311 __builtin_aarch64_simd_oi __o;
29312 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __val.val[0], 0);
29313 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __val.val[1], 1);
29314 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
29315 }
29316
29317 __extension__ extern __inline void
29318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_u8(uint8_t * __a,uint8x16x2_t __val)29319 vst2q_u8 (uint8_t * __a, uint8x16x2_t __val)
29320 {
29321 __builtin_aarch64_simd_oi __o;
29322 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[0], 0);
29323 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) __val.val[1], 1);
29324 __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29325 }
29326
29327 __extension__ extern __inline void
29328 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_u16(uint16_t * __a,uint16x8x2_t __val)29329 vst2q_u16 (uint16_t * __a, uint16x8x2_t __val)
29330 {
29331 __builtin_aarch64_simd_oi __o;
29332 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[0], 0);
29333 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) __val.val[1], 1);
29334 __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29335 }
29336
29337 __extension__ extern __inline void
29338 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_u32(uint32_t * __a,uint32x4x2_t __val)29339 vst2q_u32 (uint32_t * __a, uint32x4x2_t __val)
29340 {
29341 __builtin_aarch64_simd_oi __o;
29342 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __val.val[0], 0);
29343 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) __val.val[1], 1);
29344 __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
29345 }
29346
29347 __extension__ extern __inline void
29348 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_u64(uint64_t * __a,uint64x2x2_t __val)29349 vst2q_u64 (uint64_t * __a, uint64x2x2_t __val)
29350 {
29351 __builtin_aarch64_simd_oi __o;
29352 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __val.val[0], 0);
29353 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) __val.val[1], 1);
29354 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
29355 }
29356
29357 __extension__ extern __inline void
29358 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_f16(float16_t * __a,float16x8x2_t __val)29359 vst2q_f16 (float16_t * __a, float16x8x2_t __val)
29360 {
29361 __builtin_aarch64_simd_oi __o;
29362 __o = __builtin_aarch64_set_qregoiv8hf (__o, __val.val[0], 0);
29363 __o = __builtin_aarch64_set_qregoiv8hf (__o, __val.val[1], 1);
29364 __builtin_aarch64_st2v8hf (__a, __o);
29365 }
29366
29367 __extension__ extern __inline void
29368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_f32(float32_t * __a,float32x4x2_t __val)29369 vst2q_f32 (float32_t * __a, float32x4x2_t __val)
29370 {
29371 __builtin_aarch64_simd_oi __o;
29372 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) __val.val[0], 0);
29373 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) __val.val[1], 1);
29374 __builtin_aarch64_st2v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
29375 }
29376
29377 __extension__ extern __inline void
29378 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_f64(float64_t * __a,float64x2x2_t __val)29379 vst2q_f64 (float64_t * __a, float64x2x2_t __val)
29380 {
29381 __builtin_aarch64_simd_oi __o;
29382 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) __val.val[0], 0);
29383 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) __val.val[1], 1);
29384 __builtin_aarch64_st2v2df ((__builtin_aarch64_simd_df *) __a, __o);
29385 }
29386
29387 __extension__ extern __inline void
29388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_p64(poly64_t * __a,poly64x2x2_t __val)29389 vst2q_p64 (poly64_t * __a, poly64x2x2_t __val)
29390 {
29391 __builtin_aarch64_simd_oi __o;
29392 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
29393 (poly64x2_t) __val.val[0], 0);
29394 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
29395 (poly64x2_t) __val.val[1], 1);
29396 __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
29397 }
29398
29399 __extension__ extern __inline void
29400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_s64(int64_t * __a,int64x1x3_t __val)29401 vst3_s64 (int64_t * __a, int64x1x3_t __val)
29402 {
29403 __builtin_aarch64_simd_ci __o;
29404 int64x2x3_t __temp;
29405 __temp.val[0] = vcombine_s64 (__val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
29406 __temp.val[1] = vcombine_s64 (__val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
29407 __temp.val[2] = vcombine_s64 (__val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
29408 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[0], 0);
29409 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[1], 1);
29410 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[2], 2);
29411 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
29412 }
29413
29414 __extension__ extern __inline void
29415 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_u64(uint64_t * __a,uint64x1x3_t __val)29416 vst3_u64 (uint64_t * __a, uint64x1x3_t __val)
29417 {
29418 __builtin_aarch64_simd_ci __o;
29419 uint64x2x3_t __temp;
29420 __temp.val[0] = vcombine_u64 (__val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
29421 __temp.val[1] = vcombine_u64 (__val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
29422 __temp.val[2] = vcombine_u64 (__val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
29423 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[0], 0);
29424 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[1], 1);
29425 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __temp.val[2], 2);
29426 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
29427 }
29428
29429 __extension__ extern __inline void
29430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_f64(float64_t * __a,float64x1x3_t __val)29431 vst3_f64 (float64_t * __a, float64x1x3_t __val)
29432 {
29433 __builtin_aarch64_simd_ci __o;
29434 float64x2x3_t __temp;
29435 __temp.val[0] = vcombine_f64 (__val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
29436 __temp.val[1] = vcombine_f64 (__val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
29437 __temp.val[2] = vcombine_f64 (__val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
29438 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __temp.val[0], 0);
29439 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __temp.val[1], 1);
29440 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __temp.val[2], 2);
29441 __builtin_aarch64_st3df ((__builtin_aarch64_simd_df *) __a, __o);
29442 }
29443
29444 __extension__ extern __inline void
29445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_s8(int8_t * __a,int8x8x3_t __val)29446 vst3_s8 (int8_t * __a, int8x8x3_t __val)
29447 {
29448 __builtin_aarch64_simd_ci __o;
29449 int8x16x3_t __temp;
29450 __temp.val[0] = vcombine_s8 (__val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
29451 __temp.val[1] = vcombine_s8 (__val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
29452 __temp.val[2] = vcombine_s8 (__val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
29453 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[0], 0);
29454 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[1], 1);
29455 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[2], 2);
29456 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29457 }
29458
29459 __extension__ extern __inline void
29460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_p8(poly8_t * __a,poly8x8x3_t __val)29461 vst3_p8 (poly8_t * __a, poly8x8x3_t __val)
29462 {
29463 __builtin_aarch64_simd_ci __o;
29464 poly8x16x3_t __temp;
29465 __temp.val[0] = vcombine_p8 (__val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
29466 __temp.val[1] = vcombine_p8 (__val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
29467 __temp.val[2] = vcombine_p8 (__val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
29468 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[0], 0);
29469 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[1], 1);
29470 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[2], 2);
29471 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29472 }
29473
29474 __extension__ extern __inline void
29475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_s16(int16_t * __a,int16x4x3_t __val)29476 vst3_s16 (int16_t * __a, int16x4x3_t __val)
29477 {
29478 __builtin_aarch64_simd_ci __o;
29479 int16x8x3_t __temp;
29480 __temp.val[0] = vcombine_s16 (__val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
29481 __temp.val[1] = vcombine_s16 (__val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
29482 __temp.val[2] = vcombine_s16 (__val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
29483 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[0], 0);
29484 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[1], 1);
29485 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[2], 2);
29486 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29487 }
29488
29489 __extension__ extern __inline void
29490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_p16(poly16_t * __a,poly16x4x3_t __val)29491 vst3_p16 (poly16_t * __a, poly16x4x3_t __val)
29492 {
29493 __builtin_aarch64_simd_ci __o;
29494 poly16x8x3_t __temp;
29495 __temp.val[0] = vcombine_p16 (__val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
29496 __temp.val[1] = vcombine_p16 (__val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
29497 __temp.val[2] = vcombine_p16 (__val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
29498 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[0], 0);
29499 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[1], 1);
29500 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[2], 2);
29501 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29502 }
29503
29504 __extension__ extern __inline void
29505 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_s32(int32_t * __a,int32x2x3_t __val)29506 vst3_s32 (int32_t * __a, int32x2x3_t __val)
29507 {
29508 __builtin_aarch64_simd_ci __o;
29509 int32x4x3_t __temp;
29510 __temp.val[0] = vcombine_s32 (__val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
29511 __temp.val[1] = vcombine_s32 (__val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
29512 __temp.val[2] = vcombine_s32 (__val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
29513 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[0], 0);
29514 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[1], 1);
29515 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[2], 2);
29516 __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __o);
29517 }
29518
29519 __extension__ extern __inline void
29520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_u8(uint8_t * __a,uint8x8x3_t __val)29521 vst3_u8 (uint8_t * __a, uint8x8x3_t __val)
29522 {
29523 __builtin_aarch64_simd_ci __o;
29524 uint8x16x3_t __temp;
29525 __temp.val[0] = vcombine_u8 (__val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
29526 __temp.val[1] = vcombine_u8 (__val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
29527 __temp.val[2] = vcombine_u8 (__val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
29528 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[0], 0);
29529 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[1], 1);
29530 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __temp.val[2], 2);
29531 __builtin_aarch64_st3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29532 }
29533
29534 __extension__ extern __inline void
29535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_u16(uint16_t * __a,uint16x4x3_t __val)29536 vst3_u16 (uint16_t * __a, uint16x4x3_t __val)
29537 {
29538 __builtin_aarch64_simd_ci __o;
29539 uint16x8x3_t __temp;
29540 __temp.val[0] = vcombine_u16 (__val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
29541 __temp.val[1] = vcombine_u16 (__val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
29542 __temp.val[2] = vcombine_u16 (__val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
29543 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[0], 0);
29544 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[1], 1);
29545 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __temp.val[2], 2);
29546 __builtin_aarch64_st3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29547 }
29548
29549 __extension__ extern __inline void
29550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_u32(uint32_t * __a,uint32x2x3_t __val)29551 vst3_u32 (uint32_t * __a, uint32x2x3_t __val)
29552 {
29553 __builtin_aarch64_simd_ci __o;
29554 uint32x4x3_t __temp;
29555 __temp.val[0] = vcombine_u32 (__val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
29556 __temp.val[1] = vcombine_u32 (__val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
29557 __temp.val[2] = vcombine_u32 (__val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
29558 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[0], 0);
29559 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[1], 1);
29560 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __temp.val[2], 2);
29561 __builtin_aarch64_st3v2si ((__builtin_aarch64_simd_si *) __a, __o);
29562 }
29563
29564 __extension__ extern __inline void
29565 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_f16(float16_t * __a,float16x4x3_t __val)29566 vst3_f16 (float16_t * __a, float16x4x3_t __val)
29567 {
29568 __builtin_aarch64_simd_ci __o;
29569 float16x8x3_t __temp;
29570 __temp.val[0] = vcombine_f16 (__val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
29571 __temp.val[1] = vcombine_f16 (__val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
29572 __temp.val[2] = vcombine_f16 (__val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
29573 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __temp.val[0], 0);
29574 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __temp.val[1], 1);
29575 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __temp.val[2], 2);
29576 __builtin_aarch64_st3v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
29577 }
29578
29579 __extension__ extern __inline void
29580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_f32(float32_t * __a,float32x2x3_t __val)29581 vst3_f32 (float32_t * __a, float32x2x3_t __val)
29582 {
29583 __builtin_aarch64_simd_ci __o;
29584 float32x4x3_t __temp;
29585 __temp.val[0] = vcombine_f32 (__val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
29586 __temp.val[1] = vcombine_f32 (__val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
29587 __temp.val[2] = vcombine_f32 (__val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
29588 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __temp.val[0], 0);
29589 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __temp.val[1], 1);
29590 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __temp.val[2], 2);
29591 __builtin_aarch64_st3v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
29592 }
29593
29594 __extension__ extern __inline void
29595 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_p64(poly64_t * __a,poly64x1x3_t __val)29596 vst3_p64 (poly64_t * __a, poly64x1x3_t __val)
29597 {
29598 __builtin_aarch64_simd_ci __o;
29599 poly64x2x3_t __temp;
29600 __temp.val[0] = vcombine_p64 (__val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
29601 __temp.val[1] = vcombine_p64 (__val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
29602 __temp.val[2] = vcombine_p64 (__val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
29603 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29604 (poly64x2_t) __temp.val[0], 0);
29605 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29606 (poly64x2_t) __temp.val[1], 1);
29607 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29608 (poly64x2_t) __temp.val[2], 2);
29609 __builtin_aarch64_st3di ((__builtin_aarch64_simd_di *) __a, __o);
29610 }
29611
29612 __extension__ extern __inline void
29613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_s8(int8_t * __a,int8x16x3_t __val)29614 vst3q_s8 (int8_t * __a, int8x16x3_t __val)
29615 {
29616 __builtin_aarch64_simd_ci __o;
29617 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[0], 0);
29618 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[1], 1);
29619 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[2], 2);
29620 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29621 }
29622
29623 __extension__ extern __inline void
29624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_p8(poly8_t * __a,poly8x16x3_t __val)29625 vst3q_p8 (poly8_t * __a, poly8x16x3_t __val)
29626 {
29627 __builtin_aarch64_simd_ci __o;
29628 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[0], 0);
29629 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[1], 1);
29630 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[2], 2);
29631 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29632 }
29633
29634 __extension__ extern __inline void
29635 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_s16(int16_t * __a,int16x8x3_t __val)29636 vst3q_s16 (int16_t * __a, int16x8x3_t __val)
29637 {
29638 __builtin_aarch64_simd_ci __o;
29639 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[0], 0);
29640 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[1], 1);
29641 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[2], 2);
29642 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29643 }
29644
29645 __extension__ extern __inline void
29646 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_p16(poly16_t * __a,poly16x8x3_t __val)29647 vst3q_p16 (poly16_t * __a, poly16x8x3_t __val)
29648 {
29649 __builtin_aarch64_simd_ci __o;
29650 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[0], 0);
29651 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[1], 1);
29652 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[2], 2);
29653 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29654 }
29655
29656 __extension__ extern __inline void
29657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_s32(int32_t * __a,int32x4x3_t __val)29658 vst3q_s32 (int32_t * __a, int32x4x3_t __val)
29659 {
29660 __builtin_aarch64_simd_ci __o;
29661 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[0], 0);
29662 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[1], 1);
29663 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[2], 2);
29664 __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
29665 }
29666
29667 __extension__ extern __inline void
29668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_s64(int64_t * __a,int64x2x3_t __val)29669 vst3q_s64 (int64_t * __a, int64x2x3_t __val)
29670 {
29671 __builtin_aarch64_simd_ci __o;
29672 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[0], 0);
29673 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[1], 1);
29674 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[2], 2);
29675 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
29676 }
29677
29678 __extension__ extern __inline void
29679 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_u8(uint8_t * __a,uint8x16x3_t __val)29680 vst3q_u8 (uint8_t * __a, uint8x16x3_t __val)
29681 {
29682 __builtin_aarch64_simd_ci __o;
29683 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[0], 0);
29684 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[1], 1);
29685 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) __val.val[2], 2);
29686 __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
29687 }
29688
29689 __extension__ extern __inline void
29690 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_u16(uint16_t * __a,uint16x8x3_t __val)29691 vst3q_u16 (uint16_t * __a, uint16x8x3_t __val)
29692 {
29693 __builtin_aarch64_simd_ci __o;
29694 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[0], 0);
29695 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[1], 1);
29696 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) __val.val[2], 2);
29697 __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
29698 }
29699
29700 __extension__ extern __inline void
29701 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_u32(uint32_t * __a,uint32x4x3_t __val)29702 vst3q_u32 (uint32_t * __a, uint32x4x3_t __val)
29703 {
29704 __builtin_aarch64_simd_ci __o;
29705 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[0], 0);
29706 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[1], 1);
29707 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) __val.val[2], 2);
29708 __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
29709 }
29710
29711 __extension__ extern __inline void
29712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_u64(uint64_t * __a,uint64x2x3_t __val)29713 vst3q_u64 (uint64_t * __a, uint64x2x3_t __val)
29714 {
29715 __builtin_aarch64_simd_ci __o;
29716 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[0], 0);
29717 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[1], 1);
29718 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) __val.val[2], 2);
29719 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
29720 }
29721
29722 __extension__ extern __inline void
29723 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_f16(float16_t * __a,float16x8x3_t __val)29724 vst3q_f16 (float16_t * __a, float16x8x3_t __val)
29725 {
29726 __builtin_aarch64_simd_ci __o;
29727 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __val.val[0], 0);
29728 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __val.val[1], 1);
29729 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) __val.val[2], 2);
29730 __builtin_aarch64_st3v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
29731 }
29732
29733 __extension__ extern __inline void
29734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_f32(float32_t * __a,float32x4x3_t __val)29735 vst3q_f32 (float32_t * __a, float32x4x3_t __val)
29736 {
29737 __builtin_aarch64_simd_ci __o;
29738 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __val.val[0], 0);
29739 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __val.val[1], 1);
29740 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) __val.val[2], 2);
29741 __builtin_aarch64_st3v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
29742 }
29743
29744 __extension__ extern __inline void
29745 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_f64(float64_t * __a,float64x2x3_t __val)29746 vst3q_f64 (float64_t * __a, float64x2x3_t __val)
29747 {
29748 __builtin_aarch64_simd_ci __o;
29749 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __val.val[0], 0);
29750 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __val.val[1], 1);
29751 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) __val.val[2], 2);
29752 __builtin_aarch64_st3v2df ((__builtin_aarch64_simd_df *) __a, __o);
29753 }
29754
29755 __extension__ extern __inline void
29756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_p64(poly64_t * __a,poly64x2x3_t __val)29757 vst3q_p64 (poly64_t * __a, poly64x2x3_t __val)
29758 {
29759 __builtin_aarch64_simd_ci __o;
29760 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29761 (poly64x2_t) __val.val[0], 0);
29762 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29763 (poly64x2_t) __val.val[1], 1);
29764 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
29765 (poly64x2_t) __val.val[2], 2);
29766 __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
29767 }
29768
29769 __extension__ extern __inline void
29770 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_s64(int64_t * __a,int64x1x4_t __val)29771 vst4_s64 (int64_t * __a, int64x1x4_t __val)
29772 {
29773 __builtin_aarch64_simd_xi __o;
29774 int64x2x4_t __temp;
29775 __temp.val[0] = vcombine_s64 (__val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
29776 __temp.val[1] = vcombine_s64 (__val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
29777 __temp.val[2] = vcombine_s64 (__val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
29778 __temp.val[3] = vcombine_s64 (__val.val[3], vcreate_s64 (__AARCH64_INT64_C (0)));
29779 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[0], 0);
29780 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[1], 1);
29781 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[2], 2);
29782 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[3], 3);
29783 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
29784 }
29785
29786 __extension__ extern __inline void
29787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_u64(uint64_t * __a,uint64x1x4_t __val)29788 vst4_u64 (uint64_t * __a, uint64x1x4_t __val)
29789 {
29790 __builtin_aarch64_simd_xi __o;
29791 uint64x2x4_t __temp;
29792 __temp.val[0] = vcombine_u64 (__val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
29793 __temp.val[1] = vcombine_u64 (__val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
29794 __temp.val[2] = vcombine_u64 (__val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
29795 __temp.val[3] = vcombine_u64 (__val.val[3], vcreate_u64 (__AARCH64_UINT64_C (0)));
29796 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[0], 0);
29797 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[1], 1);
29798 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[2], 2);
29799 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[3], 3);
29800 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
29801 }
29802
29803 __extension__ extern __inline void
29804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_f64(float64_t * __a,float64x1x4_t __val)29805 vst4_f64 (float64_t * __a, float64x1x4_t __val)
29806 {
29807 __builtin_aarch64_simd_xi __o;
29808 float64x2x4_t __temp;
29809 __temp.val[0] = vcombine_f64 (__val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
29810 __temp.val[1] = vcombine_f64 (__val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
29811 __temp.val[2] = vcombine_f64 (__val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
29812 __temp.val[3] = vcombine_f64 (__val.val[3], vcreate_f64 (__AARCH64_UINT64_C (0)));
29813 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __temp.val[0], 0);
29814 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __temp.val[1], 1);
29815 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __temp.val[2], 2);
29816 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __temp.val[3], 3);
29817 __builtin_aarch64_st4df ((__builtin_aarch64_simd_df *) __a, __o);
29818 }
29819
29820 __extension__ extern __inline void
29821 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_s8(int8_t * __a,int8x8x4_t __val)29822 vst4_s8 (int8_t * __a, int8x8x4_t __val)
29823 {
29824 __builtin_aarch64_simd_xi __o;
29825 int8x16x4_t __temp;
29826 __temp.val[0] = vcombine_s8 (__val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
29827 __temp.val[1] = vcombine_s8 (__val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
29828 __temp.val[2] = vcombine_s8 (__val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
29829 __temp.val[3] = vcombine_s8 (__val.val[3], vcreate_s8 (__AARCH64_INT64_C (0)));
29830 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[0], 0);
29831 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[1], 1);
29832 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[2], 2);
29833 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[3], 3);
29834 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29835 }
29836
29837 __extension__ extern __inline void
29838 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_p8(poly8_t * __a,poly8x8x4_t __val)29839 vst4_p8 (poly8_t * __a, poly8x8x4_t __val)
29840 {
29841 __builtin_aarch64_simd_xi __o;
29842 poly8x16x4_t __temp;
29843 __temp.val[0] = vcombine_p8 (__val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
29844 __temp.val[1] = vcombine_p8 (__val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
29845 __temp.val[2] = vcombine_p8 (__val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
29846 __temp.val[3] = vcombine_p8 (__val.val[3], vcreate_p8 (__AARCH64_UINT64_C (0)));
29847 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[0], 0);
29848 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[1], 1);
29849 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[2], 2);
29850 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[3], 3);
29851 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29852 }
29853
29854 __extension__ extern __inline void
29855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_s16(int16_t * __a,int16x4x4_t __val)29856 vst4_s16 (int16_t * __a, int16x4x4_t __val)
29857 {
29858 __builtin_aarch64_simd_xi __o;
29859 int16x8x4_t __temp;
29860 __temp.val[0] = vcombine_s16 (__val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
29861 __temp.val[1] = vcombine_s16 (__val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
29862 __temp.val[2] = vcombine_s16 (__val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
29863 __temp.val[3] = vcombine_s16 (__val.val[3], vcreate_s16 (__AARCH64_INT64_C (0)));
29864 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[0], 0);
29865 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[1], 1);
29866 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[2], 2);
29867 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[3], 3);
29868 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29869 }
29870
29871 __extension__ extern __inline void
29872 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_p16(poly16_t * __a,poly16x4x4_t __val)29873 vst4_p16 (poly16_t * __a, poly16x4x4_t __val)
29874 {
29875 __builtin_aarch64_simd_xi __o;
29876 poly16x8x4_t __temp;
29877 __temp.val[0] = vcombine_p16 (__val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
29878 __temp.val[1] = vcombine_p16 (__val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
29879 __temp.val[2] = vcombine_p16 (__val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
29880 __temp.val[3] = vcombine_p16 (__val.val[3], vcreate_p16 (__AARCH64_UINT64_C (0)));
29881 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[0], 0);
29882 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[1], 1);
29883 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[2], 2);
29884 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[3], 3);
29885 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29886 }
29887
29888 __extension__ extern __inline void
29889 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_s32(int32_t * __a,int32x2x4_t __val)29890 vst4_s32 (int32_t * __a, int32x2x4_t __val)
29891 {
29892 __builtin_aarch64_simd_xi __o;
29893 int32x4x4_t __temp;
29894 __temp.val[0] = vcombine_s32 (__val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
29895 __temp.val[1] = vcombine_s32 (__val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
29896 __temp.val[2] = vcombine_s32 (__val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
29897 __temp.val[3] = vcombine_s32 (__val.val[3], vcreate_s32 (__AARCH64_INT64_C (0)));
29898 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[0], 0);
29899 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[1], 1);
29900 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[2], 2);
29901 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[3], 3);
29902 __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __o);
29903 }
29904
29905 __extension__ extern __inline void
29906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_u8(uint8_t * __a,uint8x8x4_t __val)29907 vst4_u8 (uint8_t * __a, uint8x8x4_t __val)
29908 {
29909 __builtin_aarch64_simd_xi __o;
29910 uint8x16x4_t __temp;
29911 __temp.val[0] = vcombine_u8 (__val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
29912 __temp.val[1] = vcombine_u8 (__val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
29913 __temp.val[2] = vcombine_u8 (__val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
29914 __temp.val[3] = vcombine_u8 (__val.val[3], vcreate_u8 (__AARCH64_UINT64_C (0)));
29915 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[0], 0);
29916 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[1], 1);
29917 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[2], 2);
29918 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[3], 3);
29919 __builtin_aarch64_st4v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
29920 }
29921
29922 __extension__ extern __inline void
29923 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_u16(uint16_t * __a,uint16x4x4_t __val)29924 vst4_u16 (uint16_t * __a, uint16x4x4_t __val)
29925 {
29926 __builtin_aarch64_simd_xi __o;
29927 uint16x8x4_t __temp;
29928 __temp.val[0] = vcombine_u16 (__val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
29929 __temp.val[1] = vcombine_u16 (__val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
29930 __temp.val[2] = vcombine_u16 (__val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
29931 __temp.val[3] = vcombine_u16 (__val.val[3], vcreate_u16 (__AARCH64_UINT64_C (0)));
29932 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[0], 0);
29933 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[1], 1);
29934 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[2], 2);
29935 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[3], 3);
29936 __builtin_aarch64_st4v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
29937 }
29938
29939 __extension__ extern __inline void
29940 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_u32(uint32_t * __a,uint32x2x4_t __val)29941 vst4_u32 (uint32_t * __a, uint32x2x4_t __val)
29942 {
29943 __builtin_aarch64_simd_xi __o;
29944 uint32x4x4_t __temp;
29945 __temp.val[0] = vcombine_u32 (__val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
29946 __temp.val[1] = vcombine_u32 (__val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
29947 __temp.val[2] = vcombine_u32 (__val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
29948 __temp.val[3] = vcombine_u32 (__val.val[3], vcreate_u32 (__AARCH64_UINT64_C (0)));
29949 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[0], 0);
29950 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[1], 1);
29951 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[2], 2);
29952 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[3], 3);
29953 __builtin_aarch64_st4v2si ((__builtin_aarch64_simd_si *) __a, __o);
29954 }
29955
29956 __extension__ extern __inline void
29957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_f16(float16_t * __a,float16x4x4_t __val)29958 vst4_f16 (float16_t * __a, float16x4x4_t __val)
29959 {
29960 __builtin_aarch64_simd_xi __o;
29961 float16x8x4_t __temp;
29962 __temp.val[0] = vcombine_f16 (__val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
29963 __temp.val[1] = vcombine_f16 (__val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
29964 __temp.val[2] = vcombine_f16 (__val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
29965 __temp.val[3] = vcombine_f16 (__val.val[3], vcreate_f16 (__AARCH64_UINT64_C (0)));
29966 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __temp.val[0], 0);
29967 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __temp.val[1], 1);
29968 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __temp.val[2], 2);
29969 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __temp.val[3], 3);
29970 __builtin_aarch64_st4v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
29971 }
29972
29973 __extension__ extern __inline void
29974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_f32(float32_t * __a,float32x2x4_t __val)29975 vst4_f32 (float32_t * __a, float32x2x4_t __val)
29976 {
29977 __builtin_aarch64_simd_xi __o;
29978 float32x4x4_t __temp;
29979 __temp.val[0] = vcombine_f32 (__val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
29980 __temp.val[1] = vcombine_f32 (__val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
29981 __temp.val[2] = vcombine_f32 (__val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
29982 __temp.val[3] = vcombine_f32 (__val.val[3], vcreate_f32 (__AARCH64_UINT64_C (0)));
29983 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __temp.val[0], 0);
29984 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __temp.val[1], 1);
29985 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __temp.val[2], 2);
29986 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __temp.val[3], 3);
29987 __builtin_aarch64_st4v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
29988 }
29989
29990 __extension__ extern __inline void
29991 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_p64(poly64_t * __a,poly64x1x4_t __val)29992 vst4_p64 (poly64_t * __a, poly64x1x4_t __val)
29993 {
29994 __builtin_aarch64_simd_xi __o;
29995 poly64x2x4_t __temp;
29996 __temp.val[0] = vcombine_p64 (__val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
29997 __temp.val[1] = vcombine_p64 (__val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
29998 __temp.val[2] = vcombine_p64 (__val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
29999 __temp.val[3] = vcombine_p64 (__val.val[3], vcreate_p64 (__AARCH64_UINT64_C (0)));
30000 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30001 (poly64x2_t) __temp.val[0], 0);
30002 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30003 (poly64x2_t) __temp.val[1], 1);
30004 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30005 (poly64x2_t) __temp.val[2], 2);
30006 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30007 (poly64x2_t) __temp.val[3], 3);
30008 __builtin_aarch64_st4di ((__builtin_aarch64_simd_di *) __a, __o);
30009 }
30010
30011 __extension__ extern __inline void
30012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_s8(int8_t * __a,int8x16x4_t __val)30013 vst4q_s8 (int8_t * __a, int8x16x4_t __val)
30014 {
30015 __builtin_aarch64_simd_xi __o;
30016 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[0], 0);
30017 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[1], 1);
30018 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[2], 2);
30019 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[3], 3);
30020 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
30021 }
30022
30023 __extension__ extern __inline void
30024 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_p8(poly8_t * __a,poly8x16x4_t __val)30025 vst4q_p8 (poly8_t * __a, poly8x16x4_t __val)
30026 {
30027 __builtin_aarch64_simd_xi __o;
30028 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[0], 0);
30029 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[1], 1);
30030 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[2], 2);
30031 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[3], 3);
30032 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
30033 }
30034
30035 __extension__ extern __inline void
30036 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_s16(int16_t * __a,int16x8x4_t __val)30037 vst4q_s16 (int16_t * __a, int16x8x4_t __val)
30038 {
30039 __builtin_aarch64_simd_xi __o;
30040 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[0], 0);
30041 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[1], 1);
30042 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[2], 2);
30043 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[3], 3);
30044 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
30045 }
30046
30047 __extension__ extern __inline void
30048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_p16(poly16_t * __a,poly16x8x4_t __val)30049 vst4q_p16 (poly16_t * __a, poly16x8x4_t __val)
30050 {
30051 __builtin_aarch64_simd_xi __o;
30052 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[0], 0);
30053 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[1], 1);
30054 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[2], 2);
30055 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[3], 3);
30056 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
30057 }
30058
30059 __extension__ extern __inline void
30060 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_s32(int32_t * __a,int32x4x4_t __val)30061 vst4q_s32 (int32_t * __a, int32x4x4_t __val)
30062 {
30063 __builtin_aarch64_simd_xi __o;
30064 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __val.val[0], 0);
30065 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __val.val[1], 1);
30066 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __val.val[2], 2);
30067 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __val.val[3], 3);
30068 __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
30069 }
30070
30071 __extension__ extern __inline void
30072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_s64(int64_t * __a,int64x2x4_t __val)30073 vst4q_s64 (int64_t * __a, int64x2x4_t __val)
30074 {
30075 __builtin_aarch64_simd_xi __o;
30076 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __val.val[0], 0);
30077 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __val.val[1], 1);
30078 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __val.val[2], 2);
30079 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __val.val[3], 3);
30080 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
30081 }
30082
30083 __extension__ extern __inline void
30084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_u8(uint8_t * __a,uint8x16x4_t __val)30085 vst4q_u8 (uint8_t * __a, uint8x16x4_t __val)
30086 {
30087 __builtin_aarch64_simd_xi __o;
30088 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[0], 0);
30089 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[1], 1);
30090 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[2], 2);
30091 __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __val.val[3], 3);
30092 __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
30093 }
30094
30095 __extension__ extern __inline void
30096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_u16(uint16_t * __a,uint16x8x4_t __val)30097 vst4q_u16 (uint16_t * __a, uint16x8x4_t __val)
30098 {
30099 __builtin_aarch64_simd_xi __o;
30100 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[0], 0);
30101 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[1], 1);
30102 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[2], 2);
30103 __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __val.val[3], 3);
30104 __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
30105 }
30106
30107 __extension__ extern __inline void
30108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_u32(uint32_t * __a,uint32x4x4_t __val)30109 vst4q_u32 (uint32_t * __a, uint32x4x4_t __val)
30110 {
30111 __builtin_aarch64_simd_xi __o;
30112 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __val.val[0], 0);
30113 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __val.val[1], 1);
30114 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __val.val[2], 2);
30115 __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __val.val[3], 3);
30116 __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
30117 }
30118
30119 __extension__ extern __inline void
30120 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_u64(uint64_t * __a,uint64x2x4_t __val)30121 vst4q_u64 (uint64_t * __a, uint64x2x4_t __val)
30122 {
30123 __builtin_aarch64_simd_xi __o;
30124 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __val.val[0], 0);
30125 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __val.val[1], 1);
30126 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __val.val[2], 2);
30127 __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __val.val[3], 3);
30128 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
30129 }
30130
30131 __extension__ extern __inline void
30132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_f16(float16_t * __a,float16x8x4_t __val)30133 vst4q_f16 (float16_t * __a, float16x8x4_t __val)
30134 {
30135 __builtin_aarch64_simd_xi __o;
30136 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __val.val[0], 0);
30137 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __val.val[1], 1);
30138 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __val.val[2], 2);
30139 __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __val.val[3], 3);
30140 __builtin_aarch64_st4v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
30141 }
30142
30143 __extension__ extern __inline void
30144 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_f32(float32_t * __a,float32x4x4_t __val)30145 vst4q_f32 (float32_t * __a, float32x4x4_t __val)
30146 {
30147 __builtin_aarch64_simd_xi __o;
30148 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __val.val[0], 0);
30149 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __val.val[1], 1);
30150 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __val.val[2], 2);
30151 __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __val.val[3], 3);
30152 __builtin_aarch64_st4v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
30153 }
30154
30155 __extension__ extern __inline void
30156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_f64(float64_t * __a,float64x2x4_t __val)30157 vst4q_f64 (float64_t * __a, float64x2x4_t __val)
30158 {
30159 __builtin_aarch64_simd_xi __o;
30160 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __val.val[0], 0);
30161 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __val.val[1], 1);
30162 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __val.val[2], 2);
30163 __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __val.val[3], 3);
30164 __builtin_aarch64_st4v2df ((__builtin_aarch64_simd_df *) __a, __o);
30165 }
30166
30167 __extension__ extern __inline void
30168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_p64(poly64_t * __a,poly64x2x4_t __val)30169 vst4q_p64 (poly64_t * __a, poly64x2x4_t __val)
30170 {
30171 __builtin_aarch64_simd_xi __o;
30172 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30173 (poly64x2_t) __val.val[0], 0);
30174 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30175 (poly64x2_t) __val.val[1], 1);
30176 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30177 (poly64x2_t) __val.val[2], 2);
30178 __o = __builtin_aarch64_set_qregxiv2di_ssps (__o,
30179 (poly64x2_t) __val.val[3], 3);
30180 __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
30181 }
30182
30183 __extension__ extern __inline void
30184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vstrq_p128(poly128_t * __ptr,poly128_t __val)30185 vstrq_p128 (poly128_t * __ptr, poly128_t __val)
30186 {
30187 *__ptr = __val;
30188 }
30189
30190 /* vsub */
30191
30192 __extension__ extern __inline int64_t
30193 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubd_s64(int64_t __a,int64_t __b)30194 vsubd_s64 (int64_t __a, int64_t __b)
30195 {
30196 return __a - __b;
30197 }
30198
30199 __extension__ extern __inline uint64_t
30200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubd_u64(uint64_t __a,uint64_t __b)30201 vsubd_u64 (uint64_t __a, uint64_t __b)
30202 {
30203 return __a - __b;
30204 }
30205
30206 /* vtbx1 */
30207
30208 __extension__ extern __inline int8x8_t
30209 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx1_s8(int8x8_t __r,int8x8_t __tab,int8x8_t __idx)30210 vtbx1_s8 (int8x8_t __r, int8x8_t __tab, int8x8_t __idx)
30211 {
30212 uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
30213 vmov_n_u8 (8));
30214 int8x8_t __tbl = vtbl1_s8 (__tab, __idx);
30215
30216 return vbsl_s8 (__mask, __tbl, __r);
30217 }
30218
30219 __extension__ extern __inline uint8x8_t
30220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx1_u8(uint8x8_t __r,uint8x8_t __tab,uint8x8_t __idx)30221 vtbx1_u8 (uint8x8_t __r, uint8x8_t __tab, uint8x8_t __idx)
30222 {
30223 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
30224 uint8x8_t __tbl = vtbl1_u8 (__tab, __idx);
30225
30226 return vbsl_u8 (__mask, __tbl, __r);
30227 }
30228
30229 __extension__ extern __inline poly8x8_t
30230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx1_p8(poly8x8_t __r,poly8x8_t __tab,uint8x8_t __idx)30231 vtbx1_p8 (poly8x8_t __r, poly8x8_t __tab, uint8x8_t __idx)
30232 {
30233 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (8));
30234 poly8x8_t __tbl = vtbl1_p8 (__tab, __idx);
30235
30236 return vbsl_p8 (__mask, __tbl, __r);
30237 }
30238
30239 /* vtbx3 */
30240
30241 __extension__ extern __inline int8x8_t
30242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx3_s8(int8x8_t __r,int8x8x3_t __tab,int8x8_t __idx)30243 vtbx3_s8 (int8x8_t __r, int8x8x3_t __tab, int8x8_t __idx)
30244 {
30245 uint8x8_t __mask = vclt_u8 (vreinterpret_u8_s8 (__idx),
30246 vmov_n_u8 (24));
30247 int8x8_t __tbl = vtbl3_s8 (__tab, __idx);
30248
30249 return vbsl_s8 (__mask, __tbl, __r);
30250 }
30251
30252 __extension__ extern __inline uint8x8_t
30253 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx3_u8(uint8x8_t __r,uint8x8x3_t __tab,uint8x8_t __idx)30254 vtbx3_u8 (uint8x8_t __r, uint8x8x3_t __tab, uint8x8_t __idx)
30255 {
30256 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
30257 uint8x8_t __tbl = vtbl3_u8 (__tab, __idx);
30258
30259 return vbsl_u8 (__mask, __tbl, __r);
30260 }
30261
30262 __extension__ extern __inline poly8x8_t
30263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx3_p8(poly8x8_t __r,poly8x8x3_t __tab,uint8x8_t __idx)30264 vtbx3_p8 (poly8x8_t __r, poly8x8x3_t __tab, uint8x8_t __idx)
30265 {
30266 uint8x8_t __mask = vclt_u8 (__idx, vmov_n_u8 (24));
30267 poly8x8_t __tbl = vtbl3_p8 (__tab, __idx);
30268
30269 return vbsl_p8 (__mask, __tbl, __r);
30270 }
30271
30272 /* vtbx4 */
30273
30274 __extension__ extern __inline int8x8_t
30275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx4_s8(int8x8_t __r,int8x8x4_t __tab,int8x8_t __idx)30276 vtbx4_s8 (int8x8_t __r, int8x8x4_t __tab, int8x8_t __idx)
30277 {
30278 int8x8_t __result;
30279 int8x16x2_t __temp;
30280 __builtin_aarch64_simd_oi __o;
30281 __temp.val[0] = vcombine_s8 (__tab.val[0], __tab.val[1]);
30282 __temp.val[1] = vcombine_s8 (__tab.val[2], __tab.val[3]);
30283 __o = __builtin_aarch64_set_qregoiv16qi (__o,
30284 (int8x16_t) __temp.val[0], 0);
30285 __o = __builtin_aarch64_set_qregoiv16qi (__o,
30286 (int8x16_t) __temp.val[1], 1);
30287 __result = __builtin_aarch64_tbx4v8qi (__r, __o, __idx);
30288 return __result;
30289 }
30290
30291 __extension__ extern __inline uint8x8_t
30292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx4_u8(uint8x8_t __r,uint8x8x4_t __tab,uint8x8_t __idx)30293 vtbx4_u8 (uint8x8_t __r, uint8x8x4_t __tab, uint8x8_t __idx)
30294 {
30295 uint8x8_t __result;
30296 uint8x16x2_t __temp;
30297 __builtin_aarch64_simd_oi __o;
30298 __temp.val[0] = vcombine_u8 (__tab.val[0], __tab.val[1]);
30299 __temp.val[1] = vcombine_u8 (__tab.val[2], __tab.val[3]);
30300 __o = __builtin_aarch64_set_qregoiv16qi (__o,
30301 (int8x16_t) __temp.val[0], 0);
30302 __o = __builtin_aarch64_set_qregoiv16qi (__o,
30303 (int8x16_t) __temp.val[1], 1);
30304 __result = (uint8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
30305 (int8x8_t)__idx);
30306 return __result;
30307 }
30308
30309 __extension__ extern __inline poly8x8_t
30310 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtbx4_p8(poly8x8_t __r,poly8x8x4_t __tab,uint8x8_t __idx)30311 vtbx4_p8 (poly8x8_t __r, poly8x8x4_t __tab, uint8x8_t __idx)
30312 {
30313 poly8x8_t __result;
30314 poly8x16x2_t __temp;
30315 __builtin_aarch64_simd_oi __o;
30316 __temp.val[0] = vcombine_p8 (__tab.val[0], __tab.val[1]);
30317 __temp.val[1] = vcombine_p8 (__tab.val[2], __tab.val[3]);
30318 __o = __builtin_aarch64_set_qregoiv16qi (__o,
30319 (int8x16_t) __temp.val[0], 0);
30320 __o = __builtin_aarch64_set_qregoiv16qi (__o,
30321 (int8x16_t) __temp.val[1], 1);
30322 __result = (poly8x8_t)__builtin_aarch64_tbx4v8qi ((int8x8_t)__r, __o,
30323 (int8x8_t)__idx);
30324 return __result;
30325 }
30326
30327 /* vtrn */
30328
30329 __extension__ extern __inline float16x4_t
30330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_f16(float16x4_t __a,float16x4_t __b)30331 vtrn1_f16 (float16x4_t __a, float16x4_t __b)
30332 {
30333 #ifdef __AARCH64EB__
30334 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
30335 #else
30336 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
30337 #endif
30338 }
30339
30340 __extension__ extern __inline float32x2_t
30341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_f32(float32x2_t __a,float32x2_t __b)30342 vtrn1_f32 (float32x2_t __a, float32x2_t __b)
30343 {
30344 #ifdef __AARCH64EB__
30345 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30346 #else
30347 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30348 #endif
30349 }
30350
30351 __extension__ extern __inline poly8x8_t
30352 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_p8(poly8x8_t __a,poly8x8_t __b)30353 vtrn1_p8 (poly8x8_t __a, poly8x8_t __b)
30354 {
30355 #ifdef __AARCH64EB__
30356 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30357 #else
30358 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30359 #endif
30360 }
30361
30362 __extension__ extern __inline poly16x4_t
30363 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_p16(poly16x4_t __a,poly16x4_t __b)30364 vtrn1_p16 (poly16x4_t __a, poly16x4_t __b)
30365 {
30366 #ifdef __AARCH64EB__
30367 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
30368 #else
30369 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
30370 #endif
30371 }
30372
30373 __extension__ extern __inline int8x8_t
30374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_s8(int8x8_t __a,int8x8_t __b)30375 vtrn1_s8 (int8x8_t __a, int8x8_t __b)
30376 {
30377 #ifdef __AARCH64EB__
30378 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30379 #else
30380 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30381 #endif
30382 }
30383
30384 __extension__ extern __inline int16x4_t
30385 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_s16(int16x4_t __a,int16x4_t __b)30386 vtrn1_s16 (int16x4_t __a, int16x4_t __b)
30387 {
30388 #ifdef __AARCH64EB__
30389 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
30390 #else
30391 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
30392 #endif
30393 }
30394
30395 __extension__ extern __inline int32x2_t
30396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_s32(int32x2_t __a,int32x2_t __b)30397 vtrn1_s32 (int32x2_t __a, int32x2_t __b)
30398 {
30399 #ifdef __AARCH64EB__
30400 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30401 #else
30402 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30403 #endif
30404 }
30405
30406 __extension__ extern __inline uint8x8_t
30407 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_u8(uint8x8_t __a,uint8x8_t __b)30408 vtrn1_u8 (uint8x8_t __a, uint8x8_t __b)
30409 {
30410 #ifdef __AARCH64EB__
30411 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30412 #else
30413 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30414 #endif
30415 }
30416
30417 __extension__ extern __inline uint16x4_t
30418 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_u16(uint16x4_t __a,uint16x4_t __b)30419 vtrn1_u16 (uint16x4_t __a, uint16x4_t __b)
30420 {
30421 #ifdef __AARCH64EB__
30422 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 1, 7, 3});
30423 #else
30424 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 2, 6});
30425 #endif
30426 }
30427
30428 __extension__ extern __inline uint32x2_t
30429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1_u32(uint32x2_t __a,uint32x2_t __b)30430 vtrn1_u32 (uint32x2_t __a, uint32x2_t __b)
30431 {
30432 #ifdef __AARCH64EB__
30433 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
30434 #else
30435 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
30436 #endif
30437 }
30438
30439 __extension__ extern __inline float16x8_t
30440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_f16(float16x8_t __a,float16x8_t __b)30441 vtrn1q_f16 (float16x8_t __a, float16x8_t __b)
30442 {
30443 #ifdef __AARCH64EB__
30444 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30445 #else
30446 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30447 #endif
30448 }
30449
30450 __extension__ extern __inline float32x4_t
30451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_f32(float32x4_t __a,float32x4_t __b)30452 vtrn1q_f32 (float32x4_t __a, float32x4_t __b)
30453 {
30454 #ifdef __AARCH64EB__
30455 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
30456 #else
30457 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
30458 #endif
30459 }
30460
30461 __extension__ extern __inline float64x2_t
30462 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_f64(float64x2_t __a,float64x2_t __b)30463 vtrn1q_f64 (float64x2_t __a, float64x2_t __b)
30464 {
30465 #ifdef __AARCH64EB__
30466 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30467 #else
30468 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30469 #endif
30470 }
30471
30472 __extension__ extern __inline poly8x16_t
30473 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_p8(poly8x16_t __a,poly8x16_t __b)30474 vtrn1q_p8 (poly8x16_t __a, poly8x16_t __b)
30475 {
30476 #ifdef __AARCH64EB__
30477 return __builtin_shuffle (__a, __b,
30478 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
30479 #else
30480 return __builtin_shuffle (__a, __b,
30481 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
30482 #endif
30483 }
30484
30485 __extension__ extern __inline poly16x8_t
30486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_p16(poly16x8_t __a,poly16x8_t __b)30487 vtrn1q_p16 (poly16x8_t __a, poly16x8_t __b)
30488 {
30489 #ifdef __AARCH64EB__
30490 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30491 #else
30492 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30493 #endif
30494 }
30495
30496 __extension__ extern __inline int8x16_t
30497 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_s8(int8x16_t __a,int8x16_t __b)30498 vtrn1q_s8 (int8x16_t __a, int8x16_t __b)
30499 {
30500 #ifdef __AARCH64EB__
30501 return __builtin_shuffle (__a, __b,
30502 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
30503 #else
30504 return __builtin_shuffle (__a, __b,
30505 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
30506 #endif
30507 }
30508
30509 __extension__ extern __inline int16x8_t
30510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_s16(int16x8_t __a,int16x8_t __b)30511 vtrn1q_s16 (int16x8_t __a, int16x8_t __b)
30512 {
30513 #ifdef __AARCH64EB__
30514 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30515 #else
30516 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30517 #endif
30518 }
30519
30520 __extension__ extern __inline int32x4_t
30521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_s32(int32x4_t __a,int32x4_t __b)30522 vtrn1q_s32 (int32x4_t __a, int32x4_t __b)
30523 {
30524 #ifdef __AARCH64EB__
30525 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
30526 #else
30527 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
30528 #endif
30529 }
30530
30531 __extension__ extern __inline int64x2_t
30532 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_s64(int64x2_t __a,int64x2_t __b)30533 vtrn1q_s64 (int64x2_t __a, int64x2_t __b)
30534 {
30535 #ifdef __AARCH64EB__
30536 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30537 #else
30538 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30539 #endif
30540 }
30541
30542 __extension__ extern __inline uint8x16_t
30543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_u8(uint8x16_t __a,uint8x16_t __b)30544 vtrn1q_u8 (uint8x16_t __a, uint8x16_t __b)
30545 {
30546 #ifdef __AARCH64EB__
30547 return __builtin_shuffle (__a, __b,
30548 (uint8x16_t) {17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15});
30549 #else
30550 return __builtin_shuffle (__a, __b,
30551 (uint8x16_t) {0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30});
30552 #endif
30553 }
30554
30555 __extension__ extern __inline uint16x8_t
30556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_u16(uint16x8_t __a,uint16x8_t __b)30557 vtrn1q_u16 (uint16x8_t __a, uint16x8_t __b)
30558 {
30559 #ifdef __AARCH64EB__
30560 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 1, 11, 3, 13, 5, 15, 7});
30561 #else
30562 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 2, 10, 4, 12, 6, 14});
30563 #endif
30564 }
30565
30566 __extension__ extern __inline uint32x4_t
30567 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_u32(uint32x4_t __a,uint32x4_t __b)30568 vtrn1q_u32 (uint32x4_t __a, uint32x4_t __b)
30569 {
30570 #ifdef __AARCH64EB__
30571 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 1, 7, 3});
30572 #else
30573 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 2, 6});
30574 #endif
30575 }
30576
30577 __extension__ extern __inline poly64x2_t
30578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_p64(poly64x2_t __a,poly64x2_t __b)30579 vtrn1q_p64 (poly64x2_t __a, poly64x2_t __b)
30580 {
30581 #ifdef __AARCH64EB__
30582 return __builtin_shuffle (__a, __b, (poly64x2_t) {3, 1});
30583 #else
30584 return __builtin_shuffle (__a, __b, (poly64x2_t) {0, 2});
30585 #endif
30586 }
30587
30588 __extension__ extern __inline uint64x2_t
30589 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn1q_u64(uint64x2_t __a,uint64x2_t __b)30590 vtrn1q_u64 (uint64x2_t __a, uint64x2_t __b)
30591 {
30592 #ifdef __AARCH64EB__
30593 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
30594 #else
30595 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
30596 #endif
30597 }
30598
30599 __extension__ extern __inline float16x4_t
30600 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_f16(float16x4_t __a,float16x4_t __b)30601 vtrn2_f16 (float16x4_t __a, float16x4_t __b)
30602 {
30603 #ifdef __AARCH64EB__
30604 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
30605 #else
30606 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
30607 #endif
30608 }
30609
30610 __extension__ extern __inline float32x2_t
30611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_f32(float32x2_t __a,float32x2_t __b)30612 vtrn2_f32 (float32x2_t __a, float32x2_t __b)
30613 {
30614 #ifdef __AARCH64EB__
30615 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30616 #else
30617 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30618 #endif
30619 }
30620
30621 __extension__ extern __inline poly8x8_t
30622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_p8(poly8x8_t __a,poly8x8_t __b)30623 vtrn2_p8 (poly8x8_t __a, poly8x8_t __b)
30624 {
30625 #ifdef __AARCH64EB__
30626 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30627 #else
30628 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30629 #endif
30630 }
30631
30632 __extension__ extern __inline poly16x4_t
30633 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_p16(poly16x4_t __a,poly16x4_t __b)30634 vtrn2_p16 (poly16x4_t __a, poly16x4_t __b)
30635 {
30636 #ifdef __AARCH64EB__
30637 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
30638 #else
30639 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
30640 #endif
30641 }
30642
30643 __extension__ extern __inline int8x8_t
30644 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_s8(int8x8_t __a,int8x8_t __b)30645 vtrn2_s8 (int8x8_t __a, int8x8_t __b)
30646 {
30647 #ifdef __AARCH64EB__
30648 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30649 #else
30650 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30651 #endif
30652 }
30653
30654 __extension__ extern __inline int16x4_t
30655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_s16(int16x4_t __a,int16x4_t __b)30656 vtrn2_s16 (int16x4_t __a, int16x4_t __b)
30657 {
30658 #ifdef __AARCH64EB__
30659 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
30660 #else
30661 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
30662 #endif
30663 }
30664
30665 __extension__ extern __inline int32x2_t
30666 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_s32(int32x2_t __a,int32x2_t __b)30667 vtrn2_s32 (int32x2_t __a, int32x2_t __b)
30668 {
30669 #ifdef __AARCH64EB__
30670 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30671 #else
30672 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30673 #endif
30674 }
30675
30676 __extension__ extern __inline uint8x8_t
30677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_u8(uint8x8_t __a,uint8x8_t __b)30678 vtrn2_u8 (uint8x8_t __a, uint8x8_t __b)
30679 {
30680 #ifdef __AARCH64EB__
30681 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30682 #else
30683 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30684 #endif
30685 }
30686
30687 __extension__ extern __inline uint16x4_t
30688 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_u16(uint16x4_t __a,uint16x4_t __b)30689 vtrn2_u16 (uint16x4_t __a, uint16x4_t __b)
30690 {
30691 #ifdef __AARCH64EB__
30692 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 6, 2});
30693 #else
30694 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 5, 3, 7});
30695 #endif
30696 }
30697
30698 __extension__ extern __inline uint32x2_t
30699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2_u32(uint32x2_t __a,uint32x2_t __b)30700 vtrn2_u32 (uint32x2_t __a, uint32x2_t __b)
30701 {
30702 #ifdef __AARCH64EB__
30703 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
30704 #else
30705 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
30706 #endif
30707 }
30708
30709 __extension__ extern __inline float16x8_t
30710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_f16(float16x8_t __a,float16x8_t __b)30711 vtrn2q_f16 (float16x8_t __a, float16x8_t __b)
30712 {
30713 #ifdef __AARCH64EB__
30714 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30715 #else
30716 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30717 #endif
30718 }
30719
30720 __extension__ extern __inline float32x4_t
30721 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_f32(float32x4_t __a,float32x4_t __b)30722 vtrn2q_f32 (float32x4_t __a, float32x4_t __b)
30723 {
30724 #ifdef __AARCH64EB__
30725 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
30726 #else
30727 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
30728 #endif
30729 }
30730
30731 __extension__ extern __inline float64x2_t
30732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_f64(float64x2_t __a,float64x2_t __b)30733 vtrn2q_f64 (float64x2_t __a, float64x2_t __b)
30734 {
30735 #ifdef __AARCH64EB__
30736 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30737 #else
30738 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30739 #endif
30740 }
30741
30742 __extension__ extern __inline poly8x16_t
30743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_p8(poly8x16_t __a,poly8x16_t __b)30744 vtrn2q_p8 (poly8x16_t __a, poly8x16_t __b)
30745 {
30746 #ifdef __AARCH64EB__
30747 return __builtin_shuffle (__a, __b,
30748 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
30749 #else
30750 return __builtin_shuffle (__a, __b,
30751 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
30752 #endif
30753 }
30754
30755 __extension__ extern __inline poly16x8_t
30756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_p16(poly16x8_t __a,poly16x8_t __b)30757 vtrn2q_p16 (poly16x8_t __a, poly16x8_t __b)
30758 {
30759 #ifdef __AARCH64EB__
30760 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30761 #else
30762 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30763 #endif
30764 }
30765
30766 __extension__ extern __inline int8x16_t
30767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_s8(int8x16_t __a,int8x16_t __b)30768 vtrn2q_s8 (int8x16_t __a, int8x16_t __b)
30769 {
30770 #ifdef __AARCH64EB__
30771 return __builtin_shuffle (__a, __b,
30772 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
30773 #else
30774 return __builtin_shuffle (__a, __b,
30775 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
30776 #endif
30777 }
30778
30779 __extension__ extern __inline int16x8_t
30780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_s16(int16x8_t __a,int16x8_t __b)30781 vtrn2q_s16 (int16x8_t __a, int16x8_t __b)
30782 {
30783 #ifdef __AARCH64EB__
30784 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30785 #else
30786 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30787 #endif
30788 }
30789
30790 __extension__ extern __inline int32x4_t
30791 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_s32(int32x4_t __a,int32x4_t __b)30792 vtrn2q_s32 (int32x4_t __a, int32x4_t __b)
30793 {
30794 #ifdef __AARCH64EB__
30795 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
30796 #else
30797 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
30798 #endif
30799 }
30800
30801 __extension__ extern __inline int64x2_t
30802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_s64(int64x2_t __a,int64x2_t __b)30803 vtrn2q_s64 (int64x2_t __a, int64x2_t __b)
30804 {
30805 #ifdef __AARCH64EB__
30806 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30807 #else
30808 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30809 #endif
30810 }
30811
30812 __extension__ extern __inline uint8x16_t
30813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_u8(uint8x16_t __a,uint8x16_t __b)30814 vtrn2q_u8 (uint8x16_t __a, uint8x16_t __b)
30815 {
30816 #ifdef __AARCH64EB__
30817 return __builtin_shuffle (__a, __b,
30818 (uint8x16_t) {16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14});
30819 #else
30820 return __builtin_shuffle (__a, __b,
30821 (uint8x16_t) {1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31});
30822 #endif
30823 }
30824
30825 __extension__ extern __inline uint16x8_t
30826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_u16(uint16x8_t __a,uint16x8_t __b)30827 vtrn2q_u16 (uint16x8_t __a, uint16x8_t __b)
30828 {
30829 #ifdef __AARCH64EB__
30830 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 10, 2, 12, 4, 14, 6});
30831 #else
30832 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 9, 3, 11, 5, 13, 7, 15});
30833 #endif
30834 }
30835
30836 __extension__ extern __inline uint32x4_t
30837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_u32(uint32x4_t __a,uint32x4_t __b)30838 vtrn2q_u32 (uint32x4_t __a, uint32x4_t __b)
30839 {
30840 #ifdef __AARCH64EB__
30841 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 6, 2});
30842 #else
30843 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 5, 3, 7});
30844 #endif
30845 }
30846
30847 __extension__ extern __inline uint64x2_t
30848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_u64(uint64x2_t __a,uint64x2_t __b)30849 vtrn2q_u64 (uint64x2_t __a, uint64x2_t __b)
30850 {
30851 #ifdef __AARCH64EB__
30852 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
30853 #else
30854 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
30855 #endif
30856 }
30857
30858
30859 __extension__ extern __inline poly64x2_t
30860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn2q_p64(poly64x2_t __a,poly64x2_t __b)30861 vtrn2q_p64 (poly64x2_t __a, poly64x2_t __b)
30862 {
30863 #ifdef __AARCH64EB__
30864 return __builtin_shuffle (__a, __b, (poly64x2_t) {2, 0});
30865 #else
30866 return __builtin_shuffle (__a, __b, (poly64x2_t) {1, 3});
30867 #endif
30868 }
30869
30870 __extension__ extern __inline float16x4x2_t
30871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_f16(float16x4_t __a,float16x4_t __b)30872 vtrn_f16 (float16x4_t __a, float16x4_t __b)
30873 {
30874 return (float16x4x2_t) {vtrn1_f16 (__a, __b), vtrn2_f16 (__a, __b)};
30875 }
30876
30877 __extension__ extern __inline float32x2x2_t
30878 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_f32(float32x2_t __a,float32x2_t __b)30879 vtrn_f32 (float32x2_t __a, float32x2_t __b)
30880 {
30881 return (float32x2x2_t) {vtrn1_f32 (__a, __b), vtrn2_f32 (__a, __b)};
30882 }
30883
30884 __extension__ extern __inline poly8x8x2_t
30885 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_p8(poly8x8_t __a,poly8x8_t __b)30886 vtrn_p8 (poly8x8_t __a, poly8x8_t __b)
30887 {
30888 return (poly8x8x2_t) {vtrn1_p8 (__a, __b), vtrn2_p8 (__a, __b)};
30889 }
30890
30891 __extension__ extern __inline poly16x4x2_t
30892 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_p16(poly16x4_t __a,poly16x4_t __b)30893 vtrn_p16 (poly16x4_t __a, poly16x4_t __b)
30894 {
30895 return (poly16x4x2_t) {vtrn1_p16 (__a, __b), vtrn2_p16 (__a, __b)};
30896 }
30897
30898 __extension__ extern __inline int8x8x2_t
30899 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_s8(int8x8_t __a,int8x8_t __b)30900 vtrn_s8 (int8x8_t __a, int8x8_t __b)
30901 {
30902 return (int8x8x2_t) {vtrn1_s8 (__a, __b), vtrn2_s8 (__a, __b)};
30903 }
30904
30905 __extension__ extern __inline int16x4x2_t
30906 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_s16(int16x4_t __a,int16x4_t __b)30907 vtrn_s16 (int16x4_t __a, int16x4_t __b)
30908 {
30909 return (int16x4x2_t) {vtrn1_s16 (__a, __b), vtrn2_s16 (__a, __b)};
30910 }
30911
30912 __extension__ extern __inline int32x2x2_t
30913 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_s32(int32x2_t __a,int32x2_t __b)30914 vtrn_s32 (int32x2_t __a, int32x2_t __b)
30915 {
30916 return (int32x2x2_t) {vtrn1_s32 (__a, __b), vtrn2_s32 (__a, __b)};
30917 }
30918
30919 __extension__ extern __inline uint8x8x2_t
30920 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_u8(uint8x8_t __a,uint8x8_t __b)30921 vtrn_u8 (uint8x8_t __a, uint8x8_t __b)
30922 {
30923 return (uint8x8x2_t) {vtrn1_u8 (__a, __b), vtrn2_u8 (__a, __b)};
30924 }
30925
30926 __extension__ extern __inline uint16x4x2_t
30927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_u16(uint16x4_t __a,uint16x4_t __b)30928 vtrn_u16 (uint16x4_t __a, uint16x4_t __b)
30929 {
30930 return (uint16x4x2_t) {vtrn1_u16 (__a, __b), vtrn2_u16 (__a, __b)};
30931 }
30932
30933 __extension__ extern __inline uint32x2x2_t
30934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrn_u32(uint32x2_t __a,uint32x2_t __b)30935 vtrn_u32 (uint32x2_t __a, uint32x2_t __b)
30936 {
30937 return (uint32x2x2_t) {vtrn1_u32 (__a, __b), vtrn2_u32 (__a, __b)};
30938 }
30939
30940 __extension__ extern __inline float16x8x2_t
30941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_f16(float16x8_t __a,float16x8_t __b)30942 vtrnq_f16 (float16x8_t __a, float16x8_t __b)
30943 {
30944 return (float16x8x2_t) {vtrn1q_f16 (__a, __b), vtrn2q_f16 (__a, __b)};
30945 }
30946
30947 __extension__ extern __inline float32x4x2_t
30948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_f32(float32x4_t __a,float32x4_t __b)30949 vtrnq_f32 (float32x4_t __a, float32x4_t __b)
30950 {
30951 return (float32x4x2_t) {vtrn1q_f32 (__a, __b), vtrn2q_f32 (__a, __b)};
30952 }
30953
30954 __extension__ extern __inline poly8x16x2_t
30955 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_p8(poly8x16_t __a,poly8x16_t __b)30956 vtrnq_p8 (poly8x16_t __a, poly8x16_t __b)
30957 {
30958 return (poly8x16x2_t) {vtrn1q_p8 (__a, __b), vtrn2q_p8 (__a, __b)};
30959 }
30960
30961 __extension__ extern __inline poly16x8x2_t
30962 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_p16(poly16x8_t __a,poly16x8_t __b)30963 vtrnq_p16 (poly16x8_t __a, poly16x8_t __b)
30964 {
30965 return (poly16x8x2_t) {vtrn1q_p16 (__a, __b), vtrn2q_p16 (__a, __b)};
30966 }
30967
30968 __extension__ extern __inline int8x16x2_t
30969 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_s8(int8x16_t __a,int8x16_t __b)30970 vtrnq_s8 (int8x16_t __a, int8x16_t __b)
30971 {
30972 return (int8x16x2_t) {vtrn1q_s8 (__a, __b), vtrn2q_s8 (__a, __b)};
30973 }
30974
30975 __extension__ extern __inline int16x8x2_t
30976 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_s16(int16x8_t __a,int16x8_t __b)30977 vtrnq_s16 (int16x8_t __a, int16x8_t __b)
30978 {
30979 return (int16x8x2_t) {vtrn1q_s16 (__a, __b), vtrn2q_s16 (__a, __b)};
30980 }
30981
30982 __extension__ extern __inline int32x4x2_t
30983 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_s32(int32x4_t __a,int32x4_t __b)30984 vtrnq_s32 (int32x4_t __a, int32x4_t __b)
30985 {
30986 return (int32x4x2_t) {vtrn1q_s32 (__a, __b), vtrn2q_s32 (__a, __b)};
30987 }
30988
30989 __extension__ extern __inline uint8x16x2_t
30990 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_u8(uint8x16_t __a,uint8x16_t __b)30991 vtrnq_u8 (uint8x16_t __a, uint8x16_t __b)
30992 {
30993 return (uint8x16x2_t) {vtrn1q_u8 (__a, __b), vtrn2q_u8 (__a, __b)};
30994 }
30995
30996 __extension__ extern __inline uint16x8x2_t
30997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_u16(uint16x8_t __a,uint16x8_t __b)30998 vtrnq_u16 (uint16x8_t __a, uint16x8_t __b)
30999 {
31000 return (uint16x8x2_t) {vtrn1q_u16 (__a, __b), vtrn2q_u16 (__a, __b)};
31001 }
31002
31003 __extension__ extern __inline uint32x4x2_t
31004 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtrnq_u32(uint32x4_t __a,uint32x4_t __b)31005 vtrnq_u32 (uint32x4_t __a, uint32x4_t __b)
31006 {
31007 return (uint32x4x2_t) {vtrn1q_u32 (__a, __b), vtrn2q_u32 (__a, __b)};
31008 }
31009
31010 /* vtst */
31011
31012 __extension__ extern __inline uint8x8_t
31013 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_s8(int8x8_t __a,int8x8_t __b)31014 vtst_s8 (int8x8_t __a, int8x8_t __b)
31015 {
31016 return (uint8x8_t) ((__a & __b) != 0);
31017 }
31018
31019 __extension__ extern __inline uint16x4_t
31020 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_s16(int16x4_t __a,int16x4_t __b)31021 vtst_s16 (int16x4_t __a, int16x4_t __b)
31022 {
31023 return (uint16x4_t) ((__a & __b) != 0);
31024 }
31025
31026 __extension__ extern __inline uint32x2_t
31027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_s32(int32x2_t __a,int32x2_t __b)31028 vtst_s32 (int32x2_t __a, int32x2_t __b)
31029 {
31030 return (uint32x2_t) ((__a & __b) != 0);
31031 }
31032
31033 __extension__ extern __inline uint64x1_t
31034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_s64(int64x1_t __a,int64x1_t __b)31035 vtst_s64 (int64x1_t __a, int64x1_t __b)
31036 {
31037 return (uint64x1_t) ((__a & __b) != __AARCH64_INT64_C (0));
31038 }
31039
31040 __extension__ extern __inline uint8x8_t
31041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_u8(uint8x8_t __a,uint8x8_t __b)31042 vtst_u8 (uint8x8_t __a, uint8x8_t __b)
31043 {
31044 return ((__a & __b) != 0);
31045 }
31046
31047 __extension__ extern __inline uint16x4_t
31048 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_u16(uint16x4_t __a,uint16x4_t __b)31049 vtst_u16 (uint16x4_t __a, uint16x4_t __b)
31050 {
31051 return ((__a & __b) != 0);
31052 }
31053
31054 __extension__ extern __inline uint32x2_t
31055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_u32(uint32x2_t __a,uint32x2_t __b)31056 vtst_u32 (uint32x2_t __a, uint32x2_t __b)
31057 {
31058 return ((__a & __b) != 0);
31059 }
31060
31061 __extension__ extern __inline uint64x1_t
31062 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtst_u64(uint64x1_t __a,uint64x1_t __b)31063 vtst_u64 (uint64x1_t __a, uint64x1_t __b)
31064 {
31065 return ((__a & __b) != __AARCH64_UINT64_C (0));
31066 }
31067
31068 __extension__ extern __inline uint8x16_t
31069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_s8(int8x16_t __a,int8x16_t __b)31070 vtstq_s8 (int8x16_t __a, int8x16_t __b)
31071 {
31072 return (uint8x16_t) ((__a & __b) != 0);
31073 }
31074
31075 __extension__ extern __inline uint16x8_t
31076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_s16(int16x8_t __a,int16x8_t __b)31077 vtstq_s16 (int16x8_t __a, int16x8_t __b)
31078 {
31079 return (uint16x8_t) ((__a & __b) != 0);
31080 }
31081
31082 __extension__ extern __inline uint32x4_t
31083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_s32(int32x4_t __a,int32x4_t __b)31084 vtstq_s32 (int32x4_t __a, int32x4_t __b)
31085 {
31086 return (uint32x4_t) ((__a & __b) != 0);
31087 }
31088
31089 __extension__ extern __inline uint64x2_t
31090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_s64(int64x2_t __a,int64x2_t __b)31091 vtstq_s64 (int64x2_t __a, int64x2_t __b)
31092 {
31093 return (uint64x2_t) ((__a & __b) != __AARCH64_INT64_C (0));
31094 }
31095
31096 __extension__ extern __inline uint8x16_t
31097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_u8(uint8x16_t __a,uint8x16_t __b)31098 vtstq_u8 (uint8x16_t __a, uint8x16_t __b)
31099 {
31100 return ((__a & __b) != 0);
31101 }
31102
31103 __extension__ extern __inline uint16x8_t
31104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_u16(uint16x8_t __a,uint16x8_t __b)31105 vtstq_u16 (uint16x8_t __a, uint16x8_t __b)
31106 {
31107 return ((__a & __b) != 0);
31108 }
31109
31110 __extension__ extern __inline uint32x4_t
31111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_u32(uint32x4_t __a,uint32x4_t __b)31112 vtstq_u32 (uint32x4_t __a, uint32x4_t __b)
31113 {
31114 return ((__a & __b) != 0);
31115 }
31116
31117 __extension__ extern __inline uint64x2_t
31118 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstq_u64(uint64x2_t __a,uint64x2_t __b)31119 vtstq_u64 (uint64x2_t __a, uint64x2_t __b)
31120 {
31121 return ((__a & __b) != __AARCH64_UINT64_C (0));
31122 }
31123
31124 __extension__ extern __inline uint64_t
31125 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstd_s64(int64_t __a,int64_t __b)31126 vtstd_s64 (int64_t __a, int64_t __b)
31127 {
31128 return (__a & __b) ? -1ll : 0ll;
31129 }
31130
31131 __extension__ extern __inline uint64_t
31132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vtstd_u64(uint64_t __a,uint64_t __b)31133 vtstd_u64 (uint64_t __a, uint64_t __b)
31134 {
31135 return (__a & __b) ? -1ll : 0ll;
31136 }
31137
31138 /* vuqadd */
31139
31140 __extension__ extern __inline int8x8_t
31141 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqadd_s8(int8x8_t __a,uint8x8_t __b)31142 vuqadd_s8 (int8x8_t __a, uint8x8_t __b)
31143 {
31144 return __builtin_aarch64_suqaddv8qi_ssu (__a, __b);
31145 }
31146
31147 __extension__ extern __inline int16x4_t
31148 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqadd_s16(int16x4_t __a,uint16x4_t __b)31149 vuqadd_s16 (int16x4_t __a, uint16x4_t __b)
31150 {
31151 return __builtin_aarch64_suqaddv4hi_ssu (__a, __b);
31152 }
31153
31154 __extension__ extern __inline int32x2_t
31155 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqadd_s32(int32x2_t __a,uint32x2_t __b)31156 vuqadd_s32 (int32x2_t __a, uint32x2_t __b)
31157 {
31158 return __builtin_aarch64_suqaddv2si_ssu (__a, __b);
31159 }
31160
31161 __extension__ extern __inline int64x1_t
31162 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqadd_s64(int64x1_t __a,uint64x1_t __b)31163 vuqadd_s64 (int64x1_t __a, uint64x1_t __b)
31164 {
31165 return (int64x1_t) {__builtin_aarch64_suqadddi_ssu (__a[0], __b[0])};
31166 }
31167
31168 __extension__ extern __inline int8x16_t
31169 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddq_s8(int8x16_t __a,uint8x16_t __b)31170 vuqaddq_s8 (int8x16_t __a, uint8x16_t __b)
31171 {
31172 return __builtin_aarch64_suqaddv16qi_ssu (__a, __b);
31173 }
31174
31175 __extension__ extern __inline int16x8_t
31176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddq_s16(int16x8_t __a,uint16x8_t __b)31177 vuqaddq_s16 (int16x8_t __a, uint16x8_t __b)
31178 {
31179 return __builtin_aarch64_suqaddv8hi_ssu (__a, __b);
31180 }
31181
31182 __extension__ extern __inline int32x4_t
31183 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddq_s32(int32x4_t __a,uint32x4_t __b)31184 vuqaddq_s32 (int32x4_t __a, uint32x4_t __b)
31185 {
31186 return __builtin_aarch64_suqaddv4si_ssu (__a, __b);
31187 }
31188
31189 __extension__ extern __inline int64x2_t
31190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddq_s64(int64x2_t __a,uint64x2_t __b)31191 vuqaddq_s64 (int64x2_t __a, uint64x2_t __b)
31192 {
31193 return __builtin_aarch64_suqaddv2di_ssu (__a, __b);
31194 }
31195
31196 __extension__ extern __inline int8_t
31197 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddb_s8(int8_t __a,uint8_t __b)31198 vuqaddb_s8 (int8_t __a, uint8_t __b)
31199 {
31200 return __builtin_aarch64_suqaddqi_ssu (__a, __b);
31201 }
31202
31203 __extension__ extern __inline int16_t
31204 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddh_s16(int16_t __a,uint16_t __b)31205 vuqaddh_s16 (int16_t __a, uint16_t __b)
31206 {
31207 return __builtin_aarch64_suqaddhi_ssu (__a, __b);
31208 }
31209
31210 __extension__ extern __inline int32_t
31211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqadds_s32(int32_t __a,uint32_t __b)31212 vuqadds_s32 (int32_t __a, uint32_t __b)
31213 {
31214 return __builtin_aarch64_suqaddsi_ssu (__a, __b);
31215 }
31216
31217 __extension__ extern __inline int64_t
31218 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuqaddd_s64(int64_t __a,uint64_t __b)31219 vuqaddd_s64 (int64_t __a, uint64_t __b)
31220 {
31221 return __builtin_aarch64_suqadddi_ssu (__a, __b);
31222 }
31223
31224 #define __DEFINTERLEAVE(op, rettype, intype, funcsuffix, Q) \
31225 __extension__ extern __inline rettype \
31226 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
31227 v ## op ## Q ## _ ## funcsuffix (intype a, intype b) \
31228 { \
31229 return (rettype) {v ## op ## 1 ## Q ## _ ## funcsuffix (a, b), \
31230 v ## op ## 2 ## Q ## _ ## funcsuffix (a, b)}; \
31231 }
31232
31233 #define __INTERLEAVE_LIST(op) \
31234 __DEFINTERLEAVE (op, float16x4x2_t, float16x4_t, f16,) \
31235 __DEFINTERLEAVE (op, float32x2x2_t, float32x2_t, f32,) \
31236 __DEFINTERLEAVE (op, poly8x8x2_t, poly8x8_t, p8,) \
31237 __DEFINTERLEAVE (op, poly16x4x2_t, poly16x4_t, p16,) \
31238 __DEFINTERLEAVE (op, int8x8x2_t, int8x8_t, s8,) \
31239 __DEFINTERLEAVE (op, int16x4x2_t, int16x4_t, s16,) \
31240 __DEFINTERLEAVE (op, int32x2x2_t, int32x2_t, s32,) \
31241 __DEFINTERLEAVE (op, uint8x8x2_t, uint8x8_t, u8,) \
31242 __DEFINTERLEAVE (op, uint16x4x2_t, uint16x4_t, u16,) \
31243 __DEFINTERLEAVE (op, uint32x2x2_t, uint32x2_t, u32,) \
31244 __DEFINTERLEAVE (op, float16x8x2_t, float16x8_t, f16, q) \
31245 __DEFINTERLEAVE (op, float32x4x2_t, float32x4_t, f32, q) \
31246 __DEFINTERLEAVE (op, poly8x16x2_t, poly8x16_t, p8, q) \
31247 __DEFINTERLEAVE (op, poly16x8x2_t, poly16x8_t, p16, q) \
31248 __DEFINTERLEAVE (op, int8x16x2_t, int8x16_t, s8, q) \
31249 __DEFINTERLEAVE (op, int16x8x2_t, int16x8_t, s16, q) \
31250 __DEFINTERLEAVE (op, int32x4x2_t, int32x4_t, s32, q) \
31251 __DEFINTERLEAVE (op, uint8x16x2_t, uint8x16_t, u8, q) \
31252 __DEFINTERLEAVE (op, uint16x8x2_t, uint16x8_t, u16, q) \
31253 __DEFINTERLEAVE (op, uint32x4x2_t, uint32x4_t, u32, q)
31254
31255 /* vuzp */
31256
31257 __extension__ extern __inline float16x4_t
31258 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_f16(float16x4_t __a,float16x4_t __b)31259 vuzp1_f16 (float16x4_t __a, float16x4_t __b)
31260 {
31261 #ifdef __AARCH64EB__
31262 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
31263 #else
31264 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
31265 #endif
31266 }
31267
31268 __extension__ extern __inline float32x2_t
31269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_f32(float32x2_t __a,float32x2_t __b)31270 vuzp1_f32 (float32x2_t __a, float32x2_t __b)
31271 {
31272 #ifdef __AARCH64EB__
31273 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31274 #else
31275 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31276 #endif
31277 }
31278
31279 __extension__ extern __inline poly8x8_t
31280 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_p8(poly8x8_t __a,poly8x8_t __b)31281 vuzp1_p8 (poly8x8_t __a, poly8x8_t __b)
31282 {
31283 #ifdef __AARCH64EB__
31284 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31285 #else
31286 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31287 #endif
31288 }
31289
31290 __extension__ extern __inline poly16x4_t
31291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_p16(poly16x4_t __a,poly16x4_t __b)31292 vuzp1_p16 (poly16x4_t __a, poly16x4_t __b)
31293 {
31294 #ifdef __AARCH64EB__
31295 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
31296 #else
31297 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
31298 #endif
31299 }
31300
31301 __extension__ extern __inline int8x8_t
31302 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_s8(int8x8_t __a,int8x8_t __b)31303 vuzp1_s8 (int8x8_t __a, int8x8_t __b)
31304 {
31305 #ifdef __AARCH64EB__
31306 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31307 #else
31308 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31309 #endif
31310 }
31311
31312 __extension__ extern __inline int16x4_t
31313 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_s16(int16x4_t __a,int16x4_t __b)31314 vuzp1_s16 (int16x4_t __a, int16x4_t __b)
31315 {
31316 #ifdef __AARCH64EB__
31317 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
31318 #else
31319 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
31320 #endif
31321 }
31322
31323 __extension__ extern __inline int32x2_t
31324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_s32(int32x2_t __a,int32x2_t __b)31325 vuzp1_s32 (int32x2_t __a, int32x2_t __b)
31326 {
31327 #ifdef __AARCH64EB__
31328 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31329 #else
31330 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31331 #endif
31332 }
31333
31334 __extension__ extern __inline uint8x8_t
31335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_u8(uint8x8_t __a,uint8x8_t __b)31336 vuzp1_u8 (uint8x8_t __a, uint8x8_t __b)
31337 {
31338 #ifdef __AARCH64EB__
31339 return __builtin_shuffle (__a, __b, (uint8x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31340 #else
31341 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31342 #endif
31343 }
31344
31345 __extension__ extern __inline uint16x4_t
31346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_u16(uint16x4_t __a,uint16x4_t __b)31347 vuzp1_u16 (uint16x4_t __a, uint16x4_t __b)
31348 {
31349 #ifdef __AARCH64EB__
31350 return __builtin_shuffle (__a, __b, (uint16x4_t) {5, 7, 1, 3});
31351 #else
31352 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 2, 4, 6});
31353 #endif
31354 }
31355
31356 __extension__ extern __inline uint32x2_t
31357 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1_u32(uint32x2_t __a,uint32x2_t __b)31358 vuzp1_u32 (uint32x2_t __a, uint32x2_t __b)
31359 {
31360 #ifdef __AARCH64EB__
31361 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31362 #else
31363 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31364 #endif
31365 }
31366
31367 __extension__ extern __inline float16x8_t
31368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_f16(float16x8_t __a,float16x8_t __b)31369 vuzp1q_f16 (float16x8_t __a, float16x8_t __b)
31370 {
31371 #ifdef __AARCH64EB__
31372 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31373 #else
31374 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31375 #endif
31376 }
31377
31378 __extension__ extern __inline float32x4_t
31379 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_f32(float32x4_t __a,float32x4_t __b)31380 vuzp1q_f32 (float32x4_t __a, float32x4_t __b)
31381 {
31382 #ifdef __AARCH64EB__
31383 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
31384 #else
31385 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
31386 #endif
31387 }
31388
31389 __extension__ extern __inline float64x2_t
31390 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_f64(float64x2_t __a,float64x2_t __b)31391 vuzp1q_f64 (float64x2_t __a, float64x2_t __b)
31392 {
31393 #ifdef __AARCH64EB__
31394 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
31395 #else
31396 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
31397 #endif
31398 }
31399
31400 __extension__ extern __inline poly8x16_t
31401 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_p8(poly8x16_t __a,poly8x16_t __b)31402 vuzp1q_p8 (poly8x16_t __a, poly8x16_t __b)
31403 {
31404 #ifdef __AARCH64EB__
31405 return __builtin_shuffle (__a, __b, (uint8x16_t)
31406 {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
31407 #else
31408 return __builtin_shuffle (__a, __b, (uint8x16_t)
31409 {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
31410 #endif
31411 }
31412
31413 __extension__ extern __inline poly16x8_t
31414 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_p16(poly16x8_t __a,poly16x8_t __b)31415 vuzp1q_p16 (poly16x8_t __a, poly16x8_t __b)
31416 {
31417 #ifdef __AARCH64EB__
31418 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31419 #else
31420 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31421 #endif
31422 }
31423
31424 __extension__ extern __inline int8x16_t
31425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_s8(int8x16_t __a,int8x16_t __b)31426 vuzp1q_s8 (int8x16_t __a, int8x16_t __b)
31427 {
31428 #ifdef __AARCH64EB__
31429 return __builtin_shuffle (__a, __b,
31430 (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
31431 #else
31432 return __builtin_shuffle (__a, __b,
31433 (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
31434 #endif
31435 }
31436
31437 __extension__ extern __inline int16x8_t
31438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_s16(int16x8_t __a,int16x8_t __b)31439 vuzp1q_s16 (int16x8_t __a, int16x8_t __b)
31440 {
31441 #ifdef __AARCH64EB__
31442 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31443 #else
31444 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31445 #endif
31446 }
31447
31448 __extension__ extern __inline int32x4_t
31449 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_s32(int32x4_t __a,int32x4_t __b)31450 vuzp1q_s32 (int32x4_t __a, int32x4_t __b)
31451 {
31452 #ifdef __AARCH64EB__
31453 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
31454 #else
31455 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
31456 #endif
31457 }
31458
31459 __extension__ extern __inline int64x2_t
31460 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_s64(int64x2_t __a,int64x2_t __b)31461 vuzp1q_s64 (int64x2_t __a, int64x2_t __b)
31462 {
31463 #ifdef __AARCH64EB__
31464 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
31465 #else
31466 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
31467 #endif
31468 }
31469
31470 __extension__ extern __inline uint8x16_t
31471 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_u8(uint8x16_t __a,uint8x16_t __b)31472 vuzp1q_u8 (uint8x16_t __a, uint8x16_t __b)
31473 {
31474 #ifdef __AARCH64EB__
31475 return __builtin_shuffle (__a, __b,
31476 (uint8x16_t) {17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15});
31477 #else
31478 return __builtin_shuffle (__a, __b,
31479 (uint8x16_t) {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30});
31480 #endif
31481 }
31482
31483 __extension__ extern __inline uint16x8_t
31484 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_u16(uint16x8_t __a,uint16x8_t __b)31485 vuzp1q_u16 (uint16x8_t __a, uint16x8_t __b)
31486 {
31487 #ifdef __AARCH64EB__
31488 return __builtin_shuffle (__a, __b, (uint16x8_t) {9, 11, 13, 15, 1, 3, 5, 7});
31489 #else
31490 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 2, 4, 6, 8, 10, 12, 14});
31491 #endif
31492 }
31493
31494 __extension__ extern __inline uint32x4_t
31495 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_u32(uint32x4_t __a,uint32x4_t __b)31496 vuzp1q_u32 (uint32x4_t __a, uint32x4_t __b)
31497 {
31498 #ifdef __AARCH64EB__
31499 return __builtin_shuffle (__a, __b, (uint32x4_t) {5, 7, 1, 3});
31500 #else
31501 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 2, 4, 6});
31502 #endif
31503 }
31504
31505 __extension__ extern __inline uint64x2_t
31506 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_u64(uint64x2_t __a,uint64x2_t __b)31507 vuzp1q_u64 (uint64x2_t __a, uint64x2_t __b)
31508 {
31509 #ifdef __AARCH64EB__
31510 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
31511 #else
31512 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
31513 #endif
31514 }
31515
31516 __extension__ extern __inline poly64x2_t
31517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp1q_p64(poly64x2_t __a,poly64x2_t __b)31518 vuzp1q_p64 (poly64x2_t __a, poly64x2_t __b)
31519 {
31520 #ifdef __AARCH64EB__
31521 return __builtin_shuffle (__a, __b, (poly64x2_t) {3, 1});
31522 #else
31523 return __builtin_shuffle (__a, __b, (poly64x2_t) {0, 2});
31524 #endif
31525 }
31526
31527 __extension__ extern __inline float16x4_t
31528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_f16(float16x4_t __a,float16x4_t __b)31529 vuzp2_f16 (float16x4_t __a, float16x4_t __b)
31530 {
31531 #ifdef __AARCH64EB__
31532 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
31533 #else
31534 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
31535 #endif
31536 }
31537
31538 __extension__ extern __inline float32x2_t
31539 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_f32(float32x2_t __a,float32x2_t __b)31540 vuzp2_f32 (float32x2_t __a, float32x2_t __b)
31541 {
31542 #ifdef __AARCH64EB__
31543 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
31544 #else
31545 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
31546 #endif
31547 }
31548
31549 __extension__ extern __inline poly8x8_t
31550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_p8(poly8x8_t __a,poly8x8_t __b)31551 vuzp2_p8 (poly8x8_t __a, poly8x8_t __b)
31552 {
31553 #ifdef __AARCH64EB__
31554 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31555 #else
31556 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31557 #endif
31558 }
31559
31560 __extension__ extern __inline poly16x4_t
31561 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_p16(poly16x4_t __a,poly16x4_t __b)31562 vuzp2_p16 (poly16x4_t __a, poly16x4_t __b)
31563 {
31564 #ifdef __AARCH64EB__
31565 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
31566 #else
31567 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
31568 #endif
31569 }
31570
31571 __extension__ extern __inline int8x8_t
31572 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_s8(int8x8_t __a,int8x8_t __b)31573 vuzp2_s8 (int8x8_t __a, int8x8_t __b)
31574 {
31575 #ifdef __AARCH64EB__
31576 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31577 #else
31578 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31579 #endif
31580 }
31581
31582 __extension__ extern __inline int16x4_t
31583 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_s16(int16x4_t __a,int16x4_t __b)31584 vuzp2_s16 (int16x4_t __a, int16x4_t __b)
31585 {
31586 #ifdef __AARCH64EB__
31587 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
31588 #else
31589 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
31590 #endif
31591 }
31592
31593 __extension__ extern __inline int32x2_t
31594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_s32(int32x2_t __a,int32x2_t __b)31595 vuzp2_s32 (int32x2_t __a, int32x2_t __b)
31596 {
31597 #ifdef __AARCH64EB__
31598 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
31599 #else
31600 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
31601 #endif
31602 }
31603
31604 __extension__ extern __inline uint8x8_t
31605 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_u8(uint8x8_t __a,uint8x8_t __b)31606 vuzp2_u8 (uint8x8_t __a, uint8x8_t __b)
31607 {
31608 #ifdef __AARCH64EB__
31609 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31610 #else
31611 return __builtin_shuffle (__a, __b, (uint8x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31612 #endif
31613 }
31614
31615 __extension__ extern __inline uint16x4_t
31616 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_u16(uint16x4_t __a,uint16x4_t __b)31617 vuzp2_u16 (uint16x4_t __a, uint16x4_t __b)
31618 {
31619 #ifdef __AARCH64EB__
31620 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 6, 0, 2});
31621 #else
31622 return __builtin_shuffle (__a, __b, (uint16x4_t) {1, 3, 5, 7});
31623 #endif
31624 }
31625
31626 __extension__ extern __inline uint32x2_t
31627 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2_u32(uint32x2_t __a,uint32x2_t __b)31628 vuzp2_u32 (uint32x2_t __a, uint32x2_t __b)
31629 {
31630 #ifdef __AARCH64EB__
31631 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
31632 #else
31633 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
31634 #endif
31635 }
31636
31637 __extension__ extern __inline float16x8_t
31638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_f16(float16x8_t __a,float16x8_t __b)31639 vuzp2q_f16 (float16x8_t __a, float16x8_t __b)
31640 {
31641 #ifdef __AARCH64EB__
31642 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31643 #else
31644 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31645 #endif
31646 }
31647
31648 __extension__ extern __inline float32x4_t
31649 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_f32(float32x4_t __a,float32x4_t __b)31650 vuzp2q_f32 (float32x4_t __a, float32x4_t __b)
31651 {
31652 #ifdef __AARCH64EB__
31653 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
31654 #else
31655 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
31656 #endif
31657 }
31658
31659 __extension__ extern __inline float64x2_t
31660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_f64(float64x2_t __a,float64x2_t __b)31661 vuzp2q_f64 (float64x2_t __a, float64x2_t __b)
31662 {
31663 #ifdef __AARCH64EB__
31664 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
31665 #else
31666 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
31667 #endif
31668 }
31669
31670 __extension__ extern __inline poly8x16_t
31671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_p8(poly8x16_t __a,poly8x16_t __b)31672 vuzp2q_p8 (poly8x16_t __a, poly8x16_t __b)
31673 {
31674 #ifdef __AARCH64EB__
31675 return __builtin_shuffle (__a, __b,
31676 (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
31677 #else
31678 return __builtin_shuffle (__a, __b,
31679 (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
31680 #endif
31681 }
31682
31683 __extension__ extern __inline poly16x8_t
31684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_p16(poly16x8_t __a,poly16x8_t __b)31685 vuzp2q_p16 (poly16x8_t __a, poly16x8_t __b)
31686 {
31687 #ifdef __AARCH64EB__
31688 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31689 #else
31690 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31691 #endif
31692 }
31693
31694 __extension__ extern __inline int8x16_t
31695 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_s8(int8x16_t __a,int8x16_t __b)31696 vuzp2q_s8 (int8x16_t __a, int8x16_t __b)
31697 {
31698 #ifdef __AARCH64EB__
31699 return __builtin_shuffle (__a, __b,
31700 (uint8x16_t) {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
31701 #else
31702 return __builtin_shuffle (__a, __b,
31703 (uint8x16_t) {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
31704 #endif
31705 }
31706
31707 __extension__ extern __inline int16x8_t
31708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_s16(int16x8_t __a,int16x8_t __b)31709 vuzp2q_s16 (int16x8_t __a, int16x8_t __b)
31710 {
31711 #ifdef __AARCH64EB__
31712 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31713 #else
31714 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31715 #endif
31716 }
31717
31718 __extension__ extern __inline int32x4_t
31719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_s32(int32x4_t __a,int32x4_t __b)31720 vuzp2q_s32 (int32x4_t __a, int32x4_t __b)
31721 {
31722 #ifdef __AARCH64EB__
31723 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
31724 #else
31725 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
31726 #endif
31727 }
31728
31729 __extension__ extern __inline int64x2_t
31730 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_s64(int64x2_t __a,int64x2_t __b)31731 vuzp2q_s64 (int64x2_t __a, int64x2_t __b)
31732 {
31733 #ifdef __AARCH64EB__
31734 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
31735 #else
31736 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
31737 #endif
31738 }
31739
31740 __extension__ extern __inline uint8x16_t
31741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_u8(uint8x16_t __a,uint8x16_t __b)31742 vuzp2q_u8 (uint8x16_t __a, uint8x16_t __b)
31743 {
31744 #ifdef __AARCH64EB__
31745 return __builtin_shuffle (__a, __b, (uint8x16_t)
31746 {16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14});
31747 #else
31748 return __builtin_shuffle (__a, __b, (uint8x16_t)
31749 {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31});
31750 #endif
31751 }
31752
31753 __extension__ extern __inline uint16x8_t
31754 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_u16(uint16x8_t __a,uint16x8_t __b)31755 vuzp2q_u16 (uint16x8_t __a, uint16x8_t __b)
31756 {
31757 #ifdef __AARCH64EB__
31758 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 10, 12, 14, 0, 2, 4, 6});
31759 #else
31760 return __builtin_shuffle (__a, __b, (uint16x8_t) {1, 3, 5, 7, 9, 11, 13, 15});
31761 #endif
31762 }
31763
31764 __extension__ extern __inline uint32x4_t
31765 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_u32(uint32x4_t __a,uint32x4_t __b)31766 vuzp2q_u32 (uint32x4_t __a, uint32x4_t __b)
31767 {
31768 #ifdef __AARCH64EB__
31769 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 6, 0, 2});
31770 #else
31771 return __builtin_shuffle (__a, __b, (uint32x4_t) {1, 3, 5, 7});
31772 #endif
31773 }
31774
31775 __extension__ extern __inline uint64x2_t
31776 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_u64(uint64x2_t __a,uint64x2_t __b)31777 vuzp2q_u64 (uint64x2_t __a, uint64x2_t __b)
31778 {
31779 #ifdef __AARCH64EB__
31780 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
31781 #else
31782 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
31783 #endif
31784 }
31785
31786 __extension__ extern __inline poly64x2_t
31787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vuzp2q_p64(poly64x2_t __a,poly64x2_t __b)31788 vuzp2q_p64 (poly64x2_t __a, poly64x2_t __b)
31789 {
31790 #ifdef __AARCH64EB__
31791 return __builtin_shuffle (__a, __b, (poly64x2_t) {2, 0});
31792 #else
31793 return __builtin_shuffle (__a, __b, (poly64x2_t) {1, 3});
31794 #endif
31795 }
31796
__INTERLEAVE_LIST(uzp)31797 __INTERLEAVE_LIST (uzp)
31798
31799 /* vzip */
31800
31801 __extension__ extern __inline float16x4_t
31802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31803 vzip1_f16 (float16x4_t __a, float16x4_t __b)
31804 {
31805 #ifdef __AARCH64EB__
31806 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
31807 #else
31808 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
31809 #endif
31810 }
31811
31812 __extension__ extern __inline float32x2_t
31813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_f32(float32x2_t __a,float32x2_t __b)31814 vzip1_f32 (float32x2_t __a, float32x2_t __b)
31815 {
31816 #ifdef __AARCH64EB__
31817 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31818 #else
31819 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31820 #endif
31821 }
31822
31823 __extension__ extern __inline poly8x8_t
31824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_p8(poly8x8_t __a,poly8x8_t __b)31825 vzip1_p8 (poly8x8_t __a, poly8x8_t __b)
31826 {
31827 #ifdef __AARCH64EB__
31828 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
31829 #else
31830 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31831 #endif
31832 }
31833
31834 __extension__ extern __inline poly16x4_t
31835 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_p16(poly16x4_t __a,poly16x4_t __b)31836 vzip1_p16 (poly16x4_t __a, poly16x4_t __b)
31837 {
31838 #ifdef __AARCH64EB__
31839 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
31840 #else
31841 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
31842 #endif
31843 }
31844
31845 __extension__ extern __inline int8x8_t
31846 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_s8(int8x8_t __a,int8x8_t __b)31847 vzip1_s8 (int8x8_t __a, int8x8_t __b)
31848 {
31849 #ifdef __AARCH64EB__
31850 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
31851 #else
31852 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31853 #endif
31854 }
31855
31856 __extension__ extern __inline int16x4_t
31857 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_s16(int16x4_t __a,int16x4_t __b)31858 vzip1_s16 (int16x4_t __a, int16x4_t __b)
31859 {
31860 #ifdef __AARCH64EB__
31861 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
31862 #else
31863 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
31864 #endif
31865 }
31866
31867 __extension__ extern __inline int32x2_t
31868 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_s32(int32x2_t __a,int32x2_t __b)31869 vzip1_s32 (int32x2_t __a, int32x2_t __b)
31870 {
31871 #ifdef __AARCH64EB__
31872 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31873 #else
31874 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31875 #endif
31876 }
31877
31878 __extension__ extern __inline uint8x8_t
31879 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_u8(uint8x8_t __a,uint8x8_t __b)31880 vzip1_u8 (uint8x8_t __a, uint8x8_t __b)
31881 {
31882 #ifdef __AARCH64EB__
31883 return __builtin_shuffle (__a, __b, (uint8x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
31884 #else
31885 return __builtin_shuffle (__a, __b, (uint8x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31886 #endif
31887 }
31888
31889 __extension__ extern __inline uint16x4_t
31890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_u16(uint16x4_t __a,uint16x4_t __b)31891 vzip1_u16 (uint16x4_t __a, uint16x4_t __b)
31892 {
31893 #ifdef __AARCH64EB__
31894 return __builtin_shuffle (__a, __b, (uint16x4_t) {6, 2, 7, 3});
31895 #else
31896 return __builtin_shuffle (__a, __b, (uint16x4_t) {0, 4, 1, 5});
31897 #endif
31898 }
31899
31900 __extension__ extern __inline uint32x2_t
31901 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1_u32(uint32x2_t __a,uint32x2_t __b)31902 vzip1_u32 (uint32x2_t __a, uint32x2_t __b)
31903 {
31904 #ifdef __AARCH64EB__
31905 return __builtin_shuffle (__a, __b, (uint32x2_t) {3, 1});
31906 #else
31907 return __builtin_shuffle (__a, __b, (uint32x2_t) {0, 2});
31908 #endif
31909 }
31910
31911 __extension__ extern __inline float16x8_t
31912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_f16(float16x8_t __a,float16x8_t __b)31913 vzip1q_f16 (float16x8_t __a, float16x8_t __b)
31914 {
31915 #ifdef __AARCH64EB__
31916 return __builtin_shuffle (__a, __b,
31917 (uint16x8_t) {12, 4, 13, 5, 14, 6, 15, 7});
31918 #else
31919 return __builtin_shuffle (__a, __b,
31920 (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31921 #endif
31922 }
31923
31924 __extension__ extern __inline float32x4_t
31925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_f32(float32x4_t __a,float32x4_t __b)31926 vzip1q_f32 (float32x4_t __a, float32x4_t __b)
31927 {
31928 #ifdef __AARCH64EB__
31929 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
31930 #else
31931 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
31932 #endif
31933 }
31934
31935 __extension__ extern __inline float64x2_t
31936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_f64(float64x2_t __a,float64x2_t __b)31937 vzip1q_f64 (float64x2_t __a, float64x2_t __b)
31938 {
31939 #ifdef __AARCH64EB__
31940 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
31941 #else
31942 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
31943 #endif
31944 }
31945
31946 __extension__ extern __inline poly8x16_t
31947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_p8(poly8x16_t __a,poly8x16_t __b)31948 vzip1q_p8 (poly8x16_t __a, poly8x16_t __b)
31949 {
31950 #ifdef __AARCH64EB__
31951 return __builtin_shuffle (__a, __b, (uint8x16_t)
31952 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
31953 #else
31954 return __builtin_shuffle (__a, __b, (uint8x16_t)
31955 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
31956 #endif
31957 }
31958
31959 __extension__ extern __inline poly16x8_t
31960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_p16(poly16x8_t __a,poly16x8_t __b)31961 vzip1q_p16 (poly16x8_t __a, poly16x8_t __b)
31962 {
31963 #ifdef __AARCH64EB__
31964 return __builtin_shuffle (__a, __b, (uint16x8_t)
31965 {12, 4, 13, 5, 14, 6, 15, 7});
31966 #else
31967 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31968 #endif
31969 }
31970
31971 __extension__ extern __inline int8x16_t
31972 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_s8(int8x16_t __a,int8x16_t __b)31973 vzip1q_s8 (int8x16_t __a, int8x16_t __b)
31974 {
31975 #ifdef __AARCH64EB__
31976 return __builtin_shuffle (__a, __b, (uint8x16_t)
31977 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
31978 #else
31979 return __builtin_shuffle (__a, __b, (uint8x16_t)
31980 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
31981 #endif
31982 }
31983
31984 __extension__ extern __inline int16x8_t
31985 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_s16(int16x8_t __a,int16x8_t __b)31986 vzip1q_s16 (int16x8_t __a, int16x8_t __b)
31987 {
31988 #ifdef __AARCH64EB__
31989 return __builtin_shuffle (__a, __b, (uint16x8_t)
31990 {12, 4, 13, 5, 14, 6, 15, 7});
31991 #else
31992 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
31993 #endif
31994 }
31995
31996 __extension__ extern __inline int32x4_t
31997 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_s32(int32x4_t __a,int32x4_t __b)31998 vzip1q_s32 (int32x4_t __a, int32x4_t __b)
31999 {
32000 #ifdef __AARCH64EB__
32001 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
32002 #else
32003 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
32004 #endif
32005 }
32006
32007 __extension__ extern __inline int64x2_t
32008 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_s64(int64x2_t __a,int64x2_t __b)32009 vzip1q_s64 (int64x2_t __a, int64x2_t __b)
32010 {
32011 #ifdef __AARCH64EB__
32012 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
32013 #else
32014 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
32015 #endif
32016 }
32017
32018 __extension__ extern __inline uint8x16_t
32019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_u8(uint8x16_t __a,uint8x16_t __b)32020 vzip1q_u8 (uint8x16_t __a, uint8x16_t __b)
32021 {
32022 #ifdef __AARCH64EB__
32023 return __builtin_shuffle (__a, __b, (uint8x16_t)
32024 {24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15});
32025 #else
32026 return __builtin_shuffle (__a, __b, (uint8x16_t)
32027 {0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23});
32028 #endif
32029 }
32030
32031 __extension__ extern __inline uint16x8_t
32032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_u16(uint16x8_t __a,uint16x8_t __b)32033 vzip1q_u16 (uint16x8_t __a, uint16x8_t __b)
32034 {
32035 #ifdef __AARCH64EB__
32036 return __builtin_shuffle (__a, __b, (uint16x8_t)
32037 {12, 4, 13, 5, 14, 6, 15, 7});
32038 #else
32039 return __builtin_shuffle (__a, __b, (uint16x8_t) {0, 8, 1, 9, 2, 10, 3, 11});
32040 #endif
32041 }
32042
32043 __extension__ extern __inline uint32x4_t
32044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_u32(uint32x4_t __a,uint32x4_t __b)32045 vzip1q_u32 (uint32x4_t __a, uint32x4_t __b)
32046 {
32047 #ifdef __AARCH64EB__
32048 return __builtin_shuffle (__a, __b, (uint32x4_t) {6, 2, 7, 3});
32049 #else
32050 return __builtin_shuffle (__a, __b, (uint32x4_t) {0, 4, 1, 5});
32051 #endif
32052 }
32053
32054 __extension__ extern __inline uint64x2_t
32055 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_u64(uint64x2_t __a,uint64x2_t __b)32056 vzip1q_u64 (uint64x2_t __a, uint64x2_t __b)
32057 {
32058 #ifdef __AARCH64EB__
32059 return __builtin_shuffle (__a, __b, (uint64x2_t) {3, 1});
32060 #else
32061 return __builtin_shuffle (__a, __b, (uint64x2_t) {0, 2});
32062 #endif
32063 }
32064
32065 __extension__ extern __inline poly64x2_t
32066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip1q_p64(poly64x2_t __a,poly64x2_t __b)32067 vzip1q_p64 (poly64x2_t __a, poly64x2_t __b)
32068 {
32069 #ifdef __AARCH64EB__
32070 return __builtin_shuffle (__a, __b, (poly64x2_t) {3, 1});
32071 #else
32072 return __builtin_shuffle (__a, __b, (poly64x2_t) {0, 2});
32073 #endif
32074 }
32075
32076 __extension__ extern __inline float16x4_t
32077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_f16(float16x4_t __a,float16x4_t __b)32078 vzip2_f16 (float16x4_t __a, float16x4_t __b)
32079 {
32080 #ifdef __AARCH64EB__
32081 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
32082 #else
32083 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
32084 #endif
32085 }
32086
32087 __extension__ extern __inline float32x2_t
32088 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_f32(float32x2_t __a,float32x2_t __b)32089 vzip2_f32 (float32x2_t __a, float32x2_t __b)
32090 {
32091 #ifdef __AARCH64EB__
32092 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
32093 #else
32094 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
32095 #endif
32096 }
32097
32098 __extension__ extern __inline poly8x8_t
32099 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_p8(poly8x8_t __a,poly8x8_t __b)32100 vzip2_p8 (poly8x8_t __a, poly8x8_t __b)
32101 {
32102 #ifdef __AARCH64EB__
32103 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32104 #else
32105 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
32106 #endif
32107 }
32108
32109 __extension__ extern __inline poly16x4_t
32110 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_p16(poly16x4_t __a,poly16x4_t __b)32111 vzip2_p16 (poly16x4_t __a, poly16x4_t __b)
32112 {
32113 #ifdef __AARCH64EB__
32114 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
32115 #else
32116 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
32117 #endif
32118 }
32119
32120 __extension__ extern __inline int8x8_t
32121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_s8(int8x8_t __a,int8x8_t __b)32122 vzip2_s8 (int8x8_t __a, int8x8_t __b)
32123 {
32124 #ifdef __AARCH64EB__
32125 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32126 #else
32127 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
32128 #endif
32129 }
32130
32131 __extension__ extern __inline int16x4_t
32132 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_s16(int16x4_t __a,int16x4_t __b)32133 vzip2_s16 (int16x4_t __a, int16x4_t __b)
32134 {
32135 #ifdef __AARCH64EB__
32136 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
32137 #else
32138 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
32139 #endif
32140 }
32141
32142 __extension__ extern __inline int32x2_t
32143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_s32(int32x2_t __a,int32x2_t __b)32144 vzip2_s32 (int32x2_t __a, int32x2_t __b)
32145 {
32146 #ifdef __AARCH64EB__
32147 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
32148 #else
32149 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
32150 #endif
32151 }
32152
32153 __extension__ extern __inline uint8x8_t
32154 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_u8(uint8x8_t __a,uint8x8_t __b)32155 vzip2_u8 (uint8x8_t __a, uint8x8_t __b)
32156 {
32157 #ifdef __AARCH64EB__
32158 return __builtin_shuffle (__a, __b, (uint8x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32159 #else
32160 return __builtin_shuffle (__a, __b, (uint8x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
32161 #endif
32162 }
32163
32164 __extension__ extern __inline uint16x4_t
32165 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_u16(uint16x4_t __a,uint16x4_t __b)32166 vzip2_u16 (uint16x4_t __a, uint16x4_t __b)
32167 {
32168 #ifdef __AARCH64EB__
32169 return __builtin_shuffle (__a, __b, (uint16x4_t) {4, 0, 5, 1});
32170 #else
32171 return __builtin_shuffle (__a, __b, (uint16x4_t) {2, 6, 3, 7});
32172 #endif
32173 }
32174
32175 __extension__ extern __inline uint32x2_t
32176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2_u32(uint32x2_t __a,uint32x2_t __b)32177 vzip2_u32 (uint32x2_t __a, uint32x2_t __b)
32178 {
32179 #ifdef __AARCH64EB__
32180 return __builtin_shuffle (__a, __b, (uint32x2_t) {2, 0});
32181 #else
32182 return __builtin_shuffle (__a, __b, (uint32x2_t) {1, 3});
32183 #endif
32184 }
32185
32186 __extension__ extern __inline float16x8_t
32187 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_f16(float16x8_t __a,float16x8_t __b)32188 vzip2q_f16 (float16x8_t __a, float16x8_t __b)
32189 {
32190 #ifdef __AARCH64EB__
32191 return __builtin_shuffle (__a, __b,
32192 (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32193 #else
32194 return __builtin_shuffle (__a, __b,
32195 (uint16x8_t) {4, 12, 5, 13, 6, 14, 7, 15});
32196 #endif
32197 }
32198
32199 __extension__ extern __inline float32x4_t
32200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_f32(float32x4_t __a,float32x4_t __b)32201 vzip2q_f32 (float32x4_t __a, float32x4_t __b)
32202 {
32203 #ifdef __AARCH64EB__
32204 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
32205 #else
32206 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
32207 #endif
32208 }
32209
32210 __extension__ extern __inline float64x2_t
32211 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_f64(float64x2_t __a,float64x2_t __b)32212 vzip2q_f64 (float64x2_t __a, float64x2_t __b)
32213 {
32214 #ifdef __AARCH64EB__
32215 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
32216 #else
32217 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
32218 #endif
32219 }
32220
32221 __extension__ extern __inline poly8x16_t
32222 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_p8(poly8x16_t __a,poly8x16_t __b)32223 vzip2q_p8 (poly8x16_t __a, poly8x16_t __b)
32224 {
32225 #ifdef __AARCH64EB__
32226 return __builtin_shuffle (__a, __b, (uint8x16_t)
32227 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
32228 #else
32229 return __builtin_shuffle (__a, __b, (uint8x16_t)
32230 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
32231 #endif
32232 }
32233
32234 __extension__ extern __inline poly16x8_t
32235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_p16(poly16x8_t __a,poly16x8_t __b)32236 vzip2q_p16 (poly16x8_t __a, poly16x8_t __b)
32237 {
32238 #ifdef __AARCH64EB__
32239 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32240 #else
32241 return __builtin_shuffle (__a, __b, (uint16x8_t)
32242 {4, 12, 5, 13, 6, 14, 7, 15});
32243 #endif
32244 }
32245
32246 __extension__ extern __inline int8x16_t
32247 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_s8(int8x16_t __a,int8x16_t __b)32248 vzip2q_s8 (int8x16_t __a, int8x16_t __b)
32249 {
32250 #ifdef __AARCH64EB__
32251 return __builtin_shuffle (__a, __b, (uint8x16_t)
32252 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
32253 #else
32254 return __builtin_shuffle (__a, __b, (uint8x16_t)
32255 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
32256 #endif
32257 }
32258
32259 __extension__ extern __inline int16x8_t
32260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_s16(int16x8_t __a,int16x8_t __b)32261 vzip2q_s16 (int16x8_t __a, int16x8_t __b)
32262 {
32263 #ifdef __AARCH64EB__
32264 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32265 #else
32266 return __builtin_shuffle (__a, __b, (uint16x8_t)
32267 {4, 12, 5, 13, 6, 14, 7, 15});
32268 #endif
32269 }
32270
32271 __extension__ extern __inline int32x4_t
32272 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_s32(int32x4_t __a,int32x4_t __b)32273 vzip2q_s32 (int32x4_t __a, int32x4_t __b)
32274 {
32275 #ifdef __AARCH64EB__
32276 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
32277 #else
32278 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
32279 #endif
32280 }
32281
32282 __extension__ extern __inline int64x2_t
32283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_s64(int64x2_t __a,int64x2_t __b)32284 vzip2q_s64 (int64x2_t __a, int64x2_t __b)
32285 {
32286 #ifdef __AARCH64EB__
32287 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
32288 #else
32289 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
32290 #endif
32291 }
32292
32293 __extension__ extern __inline uint8x16_t
32294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_u8(uint8x16_t __a,uint8x16_t __b)32295 vzip2q_u8 (uint8x16_t __a, uint8x16_t __b)
32296 {
32297 #ifdef __AARCH64EB__
32298 return __builtin_shuffle (__a, __b, (uint8x16_t)
32299 {16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7});
32300 #else
32301 return __builtin_shuffle (__a, __b, (uint8x16_t)
32302 {8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31});
32303 #endif
32304 }
32305
32306 __extension__ extern __inline uint16x8_t
32307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_u16(uint16x8_t __a,uint16x8_t __b)32308 vzip2q_u16 (uint16x8_t __a, uint16x8_t __b)
32309 {
32310 #ifdef __AARCH64EB__
32311 return __builtin_shuffle (__a, __b, (uint16x8_t) {8, 0, 9, 1, 10, 2, 11, 3});
32312 #else
32313 return __builtin_shuffle (__a, __b, (uint16x8_t)
32314 {4, 12, 5, 13, 6, 14, 7, 15});
32315 #endif
32316 }
32317
32318 __extension__ extern __inline uint32x4_t
32319 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_u32(uint32x4_t __a,uint32x4_t __b)32320 vzip2q_u32 (uint32x4_t __a, uint32x4_t __b)
32321 {
32322 #ifdef __AARCH64EB__
32323 return __builtin_shuffle (__a, __b, (uint32x4_t) {4, 0, 5, 1});
32324 #else
32325 return __builtin_shuffle (__a, __b, (uint32x4_t) {2, 6, 3, 7});
32326 #endif
32327 }
32328
32329 __extension__ extern __inline uint64x2_t
32330 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_u64(uint64x2_t __a,uint64x2_t __b)32331 vzip2q_u64 (uint64x2_t __a, uint64x2_t __b)
32332 {
32333 #ifdef __AARCH64EB__
32334 return __builtin_shuffle (__a, __b, (uint64x2_t) {2, 0});
32335 #else
32336 return __builtin_shuffle (__a, __b, (uint64x2_t) {1, 3});
32337 #endif
32338 }
32339
32340 __extension__ extern __inline poly64x2_t
32341 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vzip2q_p64(poly64x2_t __a,poly64x2_t __b)32342 vzip2q_p64 (poly64x2_t __a, poly64x2_t __b)
32343 {
32344 #ifdef __AARCH64EB__
32345 return __builtin_shuffle (__a, __b, (poly64x2_t) {2, 0});
32346 #else
32347 return __builtin_shuffle (__a, __b, (poly64x2_t) {1, 3});
32348 #endif
32349 }
32350
__INTERLEAVE_LIST(zip)32351 __INTERLEAVE_LIST (zip)
32352
32353 #undef __INTERLEAVE_LIST
32354 #undef __DEFINTERLEAVE
32355
32356 /* End of optimal implementations in approved order. */
32357
32358 #pragma GCC pop_options
32359
32360 /* ARMv8.2-A FP16 intrinsics. */
32361
32362 #include "arm_fp16.h"
32363
32364 #pragma GCC push_options
32365 #pragma GCC target ("arch=armv8.2-a+fp16")
32366
32367 /* ARMv8.2-A FP16 one operand vector intrinsics. */
32368
32369 __extension__ extern __inline float16x4_t
32370 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
32371 vabs_f16 (float16x4_t __a)
32372 {
32373 return __builtin_aarch64_absv4hf (__a);
32374 }
32375
32376 __extension__ extern __inline float16x8_t
32377 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabsq_f16(float16x8_t __a)32378 vabsq_f16 (float16x8_t __a)
32379 {
32380 return __builtin_aarch64_absv8hf (__a);
32381 }
32382
32383 __extension__ extern __inline uint16x4_t
32384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqz_f16(float16x4_t __a)32385 vceqz_f16 (float16x4_t __a)
32386 {
32387 return __builtin_aarch64_cmeqv4hf_uss (__a, vdup_n_f16 (0.0f));
32388 }
32389
32390 __extension__ extern __inline uint16x8_t
32391 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqzq_f16(float16x8_t __a)32392 vceqzq_f16 (float16x8_t __a)
32393 {
32394 return __builtin_aarch64_cmeqv8hf_uss (__a, vdupq_n_f16 (0.0f));
32395 }
32396
32397 __extension__ extern __inline uint16x4_t
32398 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgez_f16(float16x4_t __a)32399 vcgez_f16 (float16x4_t __a)
32400 {
32401 return __builtin_aarch64_cmgev4hf_uss (__a, vdup_n_f16 (0.0f));
32402 }
32403
32404 __extension__ extern __inline uint16x8_t
32405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgezq_f16(float16x8_t __a)32406 vcgezq_f16 (float16x8_t __a)
32407 {
32408 return __builtin_aarch64_cmgev8hf_uss (__a, vdupq_n_f16 (0.0f));
32409 }
32410
32411 __extension__ extern __inline uint16x4_t
32412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtz_f16(float16x4_t __a)32413 vcgtz_f16 (float16x4_t __a)
32414 {
32415 return __builtin_aarch64_cmgtv4hf_uss (__a, vdup_n_f16 (0.0f));
32416 }
32417
32418 __extension__ extern __inline uint16x8_t
32419 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtzq_f16(float16x8_t __a)32420 vcgtzq_f16 (float16x8_t __a)
32421 {
32422 return __builtin_aarch64_cmgtv8hf_uss (__a, vdupq_n_f16 (0.0f));
32423 }
32424
32425 __extension__ extern __inline uint16x4_t
32426 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclez_f16(float16x4_t __a)32427 vclez_f16 (float16x4_t __a)
32428 {
32429 return __builtin_aarch64_cmlev4hf_uss (__a, vdup_n_f16 (0.0f));
32430 }
32431
32432 __extension__ extern __inline uint16x8_t
32433 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclezq_f16(float16x8_t __a)32434 vclezq_f16 (float16x8_t __a)
32435 {
32436 return __builtin_aarch64_cmlev8hf_uss (__a, vdupq_n_f16 (0.0f));
32437 }
32438
32439 __extension__ extern __inline uint16x4_t
32440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltz_f16(float16x4_t __a)32441 vcltz_f16 (float16x4_t __a)
32442 {
32443 return __builtin_aarch64_cmltv4hf_uss (__a, vdup_n_f16 (0.0f));
32444 }
32445
32446 __extension__ extern __inline uint16x8_t
32447 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltzq_f16(float16x8_t __a)32448 vcltzq_f16 (float16x8_t __a)
32449 {
32450 return __builtin_aarch64_cmltv8hf_uss (__a, vdupq_n_f16 (0.0f));
32451 }
32452
32453 __extension__ extern __inline float16x4_t
32454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f16_s16(int16x4_t __a)32455 vcvt_f16_s16 (int16x4_t __a)
32456 {
32457 return __builtin_aarch64_floatv4hiv4hf (__a);
32458 }
32459
32460 __extension__ extern __inline float16x8_t
32461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f16_s16(int16x8_t __a)32462 vcvtq_f16_s16 (int16x8_t __a)
32463 {
32464 return __builtin_aarch64_floatv8hiv8hf (__a);
32465 }
32466
32467 __extension__ extern __inline float16x4_t
32468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f16_u16(uint16x4_t __a)32469 vcvt_f16_u16 (uint16x4_t __a)
32470 {
32471 return __builtin_aarch64_floatunsv4hiv4hf ((int16x4_t) __a);
32472 }
32473
32474 __extension__ extern __inline float16x8_t
32475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_f16_u16(uint16x8_t __a)32476 vcvtq_f16_u16 (uint16x8_t __a)
32477 {
32478 return __builtin_aarch64_floatunsv8hiv8hf ((int16x8_t) __a);
32479 }
32480
32481 __extension__ extern __inline int16x4_t
32482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_s16_f16(float16x4_t __a)32483 vcvt_s16_f16 (float16x4_t __a)
32484 {
32485 return __builtin_aarch64_lbtruncv4hfv4hi (__a);
32486 }
32487
32488 __extension__ extern __inline int16x8_t
32489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_s16_f16(float16x8_t __a)32490 vcvtq_s16_f16 (float16x8_t __a)
32491 {
32492 return __builtin_aarch64_lbtruncv8hfv8hi (__a);
32493 }
32494
32495 __extension__ extern __inline uint16x4_t
32496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_u16_f16(float16x4_t __a)32497 vcvt_u16_f16 (float16x4_t __a)
32498 {
32499 return __builtin_aarch64_lbtruncuv4hfv4hi_us (__a);
32500 }
32501
32502 __extension__ extern __inline uint16x8_t
32503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_u16_f16(float16x8_t __a)32504 vcvtq_u16_f16 (float16x8_t __a)
32505 {
32506 return __builtin_aarch64_lbtruncuv8hfv8hi_us (__a);
32507 }
32508
32509 __extension__ extern __inline int16x4_t
32510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_s16_f16(float16x4_t __a)32511 vcvta_s16_f16 (float16x4_t __a)
32512 {
32513 return __builtin_aarch64_lroundv4hfv4hi (__a);
32514 }
32515
32516 __extension__ extern __inline int16x8_t
32517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_s16_f16(float16x8_t __a)32518 vcvtaq_s16_f16 (float16x8_t __a)
32519 {
32520 return __builtin_aarch64_lroundv8hfv8hi (__a);
32521 }
32522
32523 __extension__ extern __inline uint16x4_t
32524 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvta_u16_f16(float16x4_t __a)32525 vcvta_u16_f16 (float16x4_t __a)
32526 {
32527 return __builtin_aarch64_lrounduv4hfv4hi_us (__a);
32528 }
32529
32530 __extension__ extern __inline uint16x8_t
32531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtaq_u16_f16(float16x8_t __a)32532 vcvtaq_u16_f16 (float16x8_t __a)
32533 {
32534 return __builtin_aarch64_lrounduv8hfv8hi_us (__a);
32535 }
32536
32537 __extension__ extern __inline int16x4_t
32538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_s16_f16(float16x4_t __a)32539 vcvtm_s16_f16 (float16x4_t __a)
32540 {
32541 return __builtin_aarch64_lfloorv4hfv4hi (__a);
32542 }
32543
32544 __extension__ extern __inline int16x8_t
32545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_s16_f16(float16x8_t __a)32546 vcvtmq_s16_f16 (float16x8_t __a)
32547 {
32548 return __builtin_aarch64_lfloorv8hfv8hi (__a);
32549 }
32550
32551 __extension__ extern __inline uint16x4_t
32552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtm_u16_f16(float16x4_t __a)32553 vcvtm_u16_f16 (float16x4_t __a)
32554 {
32555 return __builtin_aarch64_lflooruv4hfv4hi_us (__a);
32556 }
32557
32558 __extension__ extern __inline uint16x8_t
32559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtmq_u16_f16(float16x8_t __a)32560 vcvtmq_u16_f16 (float16x8_t __a)
32561 {
32562 return __builtin_aarch64_lflooruv8hfv8hi_us (__a);
32563 }
32564
32565 __extension__ extern __inline int16x4_t
32566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_s16_f16(float16x4_t __a)32567 vcvtn_s16_f16 (float16x4_t __a)
32568 {
32569 return __builtin_aarch64_lfrintnv4hfv4hi (__a);
32570 }
32571
32572 __extension__ extern __inline int16x8_t
32573 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_s16_f16(float16x8_t __a)32574 vcvtnq_s16_f16 (float16x8_t __a)
32575 {
32576 return __builtin_aarch64_lfrintnv8hfv8hi (__a);
32577 }
32578
32579 __extension__ extern __inline uint16x4_t
32580 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtn_u16_f16(float16x4_t __a)32581 vcvtn_u16_f16 (float16x4_t __a)
32582 {
32583 return __builtin_aarch64_lfrintnuv4hfv4hi_us (__a);
32584 }
32585
32586 __extension__ extern __inline uint16x8_t
32587 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtnq_u16_f16(float16x8_t __a)32588 vcvtnq_u16_f16 (float16x8_t __a)
32589 {
32590 return __builtin_aarch64_lfrintnuv8hfv8hi_us (__a);
32591 }
32592
32593 __extension__ extern __inline int16x4_t
32594 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_s16_f16(float16x4_t __a)32595 vcvtp_s16_f16 (float16x4_t __a)
32596 {
32597 return __builtin_aarch64_lceilv4hfv4hi (__a);
32598 }
32599
32600 __extension__ extern __inline int16x8_t
32601 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_s16_f16(float16x8_t __a)32602 vcvtpq_s16_f16 (float16x8_t __a)
32603 {
32604 return __builtin_aarch64_lceilv8hfv8hi (__a);
32605 }
32606
32607 __extension__ extern __inline uint16x4_t
32608 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtp_u16_f16(float16x4_t __a)32609 vcvtp_u16_f16 (float16x4_t __a)
32610 {
32611 return __builtin_aarch64_lceiluv4hfv4hi_us (__a);
32612 }
32613
32614 __extension__ extern __inline uint16x8_t
32615 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtpq_u16_f16(float16x8_t __a)32616 vcvtpq_u16_f16 (float16x8_t __a)
32617 {
32618 return __builtin_aarch64_lceiluv8hfv8hi_us (__a);
32619 }
32620
32621 __extension__ extern __inline float16x4_t
32622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vneg_f16(float16x4_t __a)32623 vneg_f16 (float16x4_t __a)
32624 {
32625 return -__a;
32626 }
32627
32628 __extension__ extern __inline float16x8_t
32629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vnegq_f16(float16x8_t __a)32630 vnegq_f16 (float16x8_t __a)
32631 {
32632 return -__a;
32633 }
32634
32635 __extension__ extern __inline float16x4_t
32636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpe_f16(float16x4_t __a)32637 vrecpe_f16 (float16x4_t __a)
32638 {
32639 return __builtin_aarch64_frecpev4hf (__a);
32640 }
32641
32642 __extension__ extern __inline float16x8_t
32643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpeq_f16(float16x8_t __a)32644 vrecpeq_f16 (float16x8_t __a)
32645 {
32646 return __builtin_aarch64_frecpev8hf (__a);
32647 }
32648
32649 __extension__ extern __inline float16x4_t
32650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd_f16(float16x4_t __a)32651 vrnd_f16 (float16x4_t __a)
32652 {
32653 return __builtin_aarch64_btruncv4hf (__a);
32654 }
32655
32656 __extension__ extern __inline float16x8_t
32657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndq_f16(float16x8_t __a)32658 vrndq_f16 (float16x8_t __a)
32659 {
32660 return __builtin_aarch64_btruncv8hf (__a);
32661 }
32662
32663 __extension__ extern __inline float16x4_t
32664 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnda_f16(float16x4_t __a)32665 vrnda_f16 (float16x4_t __a)
32666 {
32667 return __builtin_aarch64_roundv4hf (__a);
32668 }
32669
32670 __extension__ extern __inline float16x8_t
32671 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndaq_f16(float16x8_t __a)32672 vrndaq_f16 (float16x8_t __a)
32673 {
32674 return __builtin_aarch64_roundv8hf (__a);
32675 }
32676
32677 __extension__ extern __inline float16x4_t
32678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndi_f16(float16x4_t __a)32679 vrndi_f16 (float16x4_t __a)
32680 {
32681 return __builtin_aarch64_nearbyintv4hf (__a);
32682 }
32683
32684 __extension__ extern __inline float16x8_t
32685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndiq_f16(float16x8_t __a)32686 vrndiq_f16 (float16x8_t __a)
32687 {
32688 return __builtin_aarch64_nearbyintv8hf (__a);
32689 }
32690
32691 __extension__ extern __inline float16x4_t
32692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndm_f16(float16x4_t __a)32693 vrndm_f16 (float16x4_t __a)
32694 {
32695 return __builtin_aarch64_floorv4hf (__a);
32696 }
32697
32698 __extension__ extern __inline float16x8_t
32699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndmq_f16(float16x8_t __a)32700 vrndmq_f16 (float16x8_t __a)
32701 {
32702 return __builtin_aarch64_floorv8hf (__a);
32703 }
32704
32705 __extension__ extern __inline float16x4_t
32706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndn_f16(float16x4_t __a)32707 vrndn_f16 (float16x4_t __a)
32708 {
32709 return __builtin_aarch64_frintnv4hf (__a);
32710 }
32711
32712 __extension__ extern __inline float16x8_t
32713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndnq_f16(float16x8_t __a)32714 vrndnq_f16 (float16x8_t __a)
32715 {
32716 return __builtin_aarch64_frintnv8hf (__a);
32717 }
32718
32719 __extension__ extern __inline float16x4_t
32720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndp_f16(float16x4_t __a)32721 vrndp_f16 (float16x4_t __a)
32722 {
32723 return __builtin_aarch64_ceilv4hf (__a);
32724 }
32725
32726 __extension__ extern __inline float16x8_t
32727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndpq_f16(float16x8_t __a)32728 vrndpq_f16 (float16x8_t __a)
32729 {
32730 return __builtin_aarch64_ceilv8hf (__a);
32731 }
32732
32733 __extension__ extern __inline float16x4_t
32734 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndx_f16(float16x4_t __a)32735 vrndx_f16 (float16x4_t __a)
32736 {
32737 return __builtin_aarch64_rintv4hf (__a);
32738 }
32739
32740 __extension__ extern __inline float16x8_t
32741 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrndxq_f16(float16x8_t __a)32742 vrndxq_f16 (float16x8_t __a)
32743 {
32744 return __builtin_aarch64_rintv8hf (__a);
32745 }
32746
32747 __extension__ extern __inline float16x4_t
32748 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrte_f16(float16x4_t __a)32749 vrsqrte_f16 (float16x4_t __a)
32750 {
32751 return __builtin_aarch64_rsqrtev4hf (__a);
32752 }
32753
32754 __extension__ extern __inline float16x8_t
32755 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrteq_f16(float16x8_t __a)32756 vrsqrteq_f16 (float16x8_t __a)
32757 {
32758 return __builtin_aarch64_rsqrtev8hf (__a);
32759 }
32760
32761 __extension__ extern __inline float16x4_t
32762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrt_f16(float16x4_t __a)32763 vsqrt_f16 (float16x4_t __a)
32764 {
32765 return __builtin_aarch64_sqrtv4hf (__a);
32766 }
32767
32768 __extension__ extern __inline float16x8_t
32769 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsqrtq_f16(float16x8_t __a)32770 vsqrtq_f16 (float16x8_t __a)
32771 {
32772 return __builtin_aarch64_sqrtv8hf (__a);
32773 }
32774
32775 /* ARMv8.2-A FP16 two operands vector intrinsics. */
32776
32777 __extension__ extern __inline float16x4_t
32778 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vadd_f16(float16x4_t __a,float16x4_t __b)32779 vadd_f16 (float16x4_t __a, float16x4_t __b)
32780 {
32781 return __a + __b;
32782 }
32783
32784 __extension__ extern __inline float16x8_t
32785 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vaddq_f16(float16x8_t __a,float16x8_t __b)32786 vaddq_f16 (float16x8_t __a, float16x8_t __b)
32787 {
32788 return __a + __b;
32789 }
32790
32791 __extension__ extern __inline float16x4_t
32792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabd_f16(float16x4_t __a,float16x4_t __b)32793 vabd_f16 (float16x4_t __a, float16x4_t __b)
32794 {
32795 return __builtin_aarch64_fabdv4hf (__a, __b);
32796 }
32797
32798 __extension__ extern __inline float16x8_t
32799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vabdq_f16(float16x8_t __a,float16x8_t __b)32800 vabdq_f16 (float16x8_t __a, float16x8_t __b)
32801 {
32802 return __builtin_aarch64_fabdv8hf (__a, __b);
32803 }
32804
32805 __extension__ extern __inline uint16x4_t
32806 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcage_f16(float16x4_t __a,float16x4_t __b)32807 vcage_f16 (float16x4_t __a, float16x4_t __b)
32808 {
32809 return __builtin_aarch64_facgev4hf_uss (__a, __b);
32810 }
32811
32812 __extension__ extern __inline uint16x8_t
32813 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcageq_f16(float16x8_t __a,float16x8_t __b)32814 vcageq_f16 (float16x8_t __a, float16x8_t __b)
32815 {
32816 return __builtin_aarch64_facgev8hf_uss (__a, __b);
32817 }
32818
32819 __extension__ extern __inline uint16x4_t
32820 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagt_f16(float16x4_t __a,float16x4_t __b)32821 vcagt_f16 (float16x4_t __a, float16x4_t __b)
32822 {
32823 return __builtin_aarch64_facgtv4hf_uss (__a, __b);
32824 }
32825
32826 __extension__ extern __inline uint16x8_t
32827 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcagtq_f16(float16x8_t __a,float16x8_t __b)32828 vcagtq_f16 (float16x8_t __a, float16x8_t __b)
32829 {
32830 return __builtin_aarch64_facgtv8hf_uss (__a, __b);
32831 }
32832
32833 __extension__ extern __inline uint16x4_t
32834 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcale_f16(float16x4_t __a,float16x4_t __b)32835 vcale_f16 (float16x4_t __a, float16x4_t __b)
32836 {
32837 return __builtin_aarch64_faclev4hf_uss (__a, __b);
32838 }
32839
32840 __extension__ extern __inline uint16x8_t
32841 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaleq_f16(float16x8_t __a,float16x8_t __b)32842 vcaleq_f16 (float16x8_t __a, float16x8_t __b)
32843 {
32844 return __builtin_aarch64_faclev8hf_uss (__a, __b);
32845 }
32846
32847 __extension__ extern __inline uint16x4_t
32848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcalt_f16(float16x4_t __a,float16x4_t __b)32849 vcalt_f16 (float16x4_t __a, float16x4_t __b)
32850 {
32851 return __builtin_aarch64_facltv4hf_uss (__a, __b);
32852 }
32853
32854 __extension__ extern __inline uint16x8_t
32855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaltq_f16(float16x8_t __a,float16x8_t __b)32856 vcaltq_f16 (float16x8_t __a, float16x8_t __b)
32857 {
32858 return __builtin_aarch64_facltv8hf_uss (__a, __b);
32859 }
32860
32861 __extension__ extern __inline uint16x4_t
32862 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceq_f16(float16x4_t __a,float16x4_t __b)32863 vceq_f16 (float16x4_t __a, float16x4_t __b)
32864 {
32865 return __builtin_aarch64_cmeqv4hf_uss (__a, __b);
32866 }
32867
32868 __extension__ extern __inline uint16x8_t
32869 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vceqq_f16(float16x8_t __a,float16x8_t __b)32870 vceqq_f16 (float16x8_t __a, float16x8_t __b)
32871 {
32872 return __builtin_aarch64_cmeqv8hf_uss (__a, __b);
32873 }
32874
32875 __extension__ extern __inline uint16x4_t
32876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcge_f16(float16x4_t __a,float16x4_t __b)32877 vcge_f16 (float16x4_t __a, float16x4_t __b)
32878 {
32879 return __builtin_aarch64_cmgev4hf_uss (__a, __b);
32880 }
32881
32882 __extension__ extern __inline uint16x8_t
32883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgeq_f16(float16x8_t __a,float16x8_t __b)32884 vcgeq_f16 (float16x8_t __a, float16x8_t __b)
32885 {
32886 return __builtin_aarch64_cmgev8hf_uss (__a, __b);
32887 }
32888
32889 __extension__ extern __inline uint16x4_t
32890 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgt_f16(float16x4_t __a,float16x4_t __b)32891 vcgt_f16 (float16x4_t __a, float16x4_t __b)
32892 {
32893 return __builtin_aarch64_cmgtv4hf_uss (__a, __b);
32894 }
32895
32896 __extension__ extern __inline uint16x8_t
32897 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcgtq_f16(float16x8_t __a,float16x8_t __b)32898 vcgtq_f16 (float16x8_t __a, float16x8_t __b)
32899 {
32900 return __builtin_aarch64_cmgtv8hf_uss (__a, __b);
32901 }
32902
32903 __extension__ extern __inline uint16x4_t
32904 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcle_f16(float16x4_t __a,float16x4_t __b)32905 vcle_f16 (float16x4_t __a, float16x4_t __b)
32906 {
32907 return __builtin_aarch64_cmlev4hf_uss (__a, __b);
32908 }
32909
32910 __extension__ extern __inline uint16x8_t
32911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcleq_f16(float16x8_t __a,float16x8_t __b)32912 vcleq_f16 (float16x8_t __a, float16x8_t __b)
32913 {
32914 return __builtin_aarch64_cmlev8hf_uss (__a, __b);
32915 }
32916
32917 __extension__ extern __inline uint16x4_t
32918 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vclt_f16(float16x4_t __a,float16x4_t __b)32919 vclt_f16 (float16x4_t __a, float16x4_t __b)
32920 {
32921 return __builtin_aarch64_cmltv4hf_uss (__a, __b);
32922 }
32923
32924 __extension__ extern __inline uint16x8_t
32925 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcltq_f16(float16x8_t __a,float16x8_t __b)32926 vcltq_f16 (float16x8_t __a, float16x8_t __b)
32927 {
32928 return __builtin_aarch64_cmltv8hf_uss (__a, __b);
32929 }
32930
32931 __extension__ extern __inline float16x4_t
32932 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f16_s16(int16x4_t __a,const int __b)32933 vcvt_n_f16_s16 (int16x4_t __a, const int __b)
32934 {
32935 return __builtin_aarch64_scvtfv4hi (__a, __b);
32936 }
32937
32938 __extension__ extern __inline float16x8_t
32939 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f16_s16(int16x8_t __a,const int __b)32940 vcvtq_n_f16_s16 (int16x8_t __a, const int __b)
32941 {
32942 return __builtin_aarch64_scvtfv8hi (__a, __b);
32943 }
32944
32945 __extension__ extern __inline float16x4_t
32946 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_f16_u16(uint16x4_t __a,const int __b)32947 vcvt_n_f16_u16 (uint16x4_t __a, const int __b)
32948 {
32949 return __builtin_aarch64_ucvtfv4hi_sus (__a, __b);
32950 }
32951
32952 __extension__ extern __inline float16x8_t
32953 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_f16_u16(uint16x8_t __a,const int __b)32954 vcvtq_n_f16_u16 (uint16x8_t __a, const int __b)
32955 {
32956 return __builtin_aarch64_ucvtfv8hi_sus (__a, __b);
32957 }
32958
32959 __extension__ extern __inline int16x4_t
32960 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_s16_f16(float16x4_t __a,const int __b)32961 vcvt_n_s16_f16 (float16x4_t __a, const int __b)
32962 {
32963 return __builtin_aarch64_fcvtzsv4hf (__a, __b);
32964 }
32965
32966 __extension__ extern __inline int16x8_t
32967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_s16_f16(float16x8_t __a,const int __b)32968 vcvtq_n_s16_f16 (float16x8_t __a, const int __b)
32969 {
32970 return __builtin_aarch64_fcvtzsv8hf (__a, __b);
32971 }
32972
32973 __extension__ extern __inline uint16x4_t
32974 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_n_u16_f16(float16x4_t __a,const int __b)32975 vcvt_n_u16_f16 (float16x4_t __a, const int __b)
32976 {
32977 return __builtin_aarch64_fcvtzuv4hf_uss (__a, __b);
32978 }
32979
32980 __extension__ extern __inline uint16x8_t
32981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_n_u16_f16(float16x8_t __a,const int __b)32982 vcvtq_n_u16_f16 (float16x8_t __a, const int __b)
32983 {
32984 return __builtin_aarch64_fcvtzuv8hf_uss (__a, __b);
32985 }
32986
32987 __extension__ extern __inline float16x4_t
32988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdiv_f16(float16x4_t __a,float16x4_t __b)32989 vdiv_f16 (float16x4_t __a, float16x4_t __b)
32990 {
32991 return __a / __b;
32992 }
32993
32994 __extension__ extern __inline float16x8_t
32995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdivq_f16(float16x8_t __a,float16x8_t __b)32996 vdivq_f16 (float16x8_t __a, float16x8_t __b)
32997 {
32998 return __a / __b;
32999 }
33000
33001 __extension__ extern __inline float16x4_t
33002 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmax_f16(float16x4_t __a,float16x4_t __b)33003 vmax_f16 (float16x4_t __a, float16x4_t __b)
33004 {
33005 return __builtin_aarch64_smax_nanv4hf (__a, __b);
33006 }
33007
33008 __extension__ extern __inline float16x8_t
33009 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxq_f16(float16x8_t __a,float16x8_t __b)33010 vmaxq_f16 (float16x8_t __a, float16x8_t __b)
33011 {
33012 return __builtin_aarch64_smax_nanv8hf (__a, __b);
33013 }
33014
33015 __extension__ extern __inline float16x4_t
33016 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnm_f16(float16x4_t __a,float16x4_t __b)33017 vmaxnm_f16 (float16x4_t __a, float16x4_t __b)
33018 {
33019 return __builtin_aarch64_fmaxv4hf (__a, __b);
33020 }
33021
33022 __extension__ extern __inline float16x8_t
33023 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmq_f16(float16x8_t __a,float16x8_t __b)33024 vmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
33025 {
33026 return __builtin_aarch64_fmaxv8hf (__a, __b);
33027 }
33028
33029 __extension__ extern __inline float16x4_t
33030 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmin_f16(float16x4_t __a,float16x4_t __b)33031 vmin_f16 (float16x4_t __a, float16x4_t __b)
33032 {
33033 return __builtin_aarch64_smin_nanv4hf (__a, __b);
33034 }
33035
33036 __extension__ extern __inline float16x8_t
33037 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminq_f16(float16x8_t __a,float16x8_t __b)33038 vminq_f16 (float16x8_t __a, float16x8_t __b)
33039 {
33040 return __builtin_aarch64_smin_nanv8hf (__a, __b);
33041 }
33042
33043 __extension__ extern __inline float16x4_t
33044 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnm_f16(float16x4_t __a,float16x4_t __b)33045 vminnm_f16 (float16x4_t __a, float16x4_t __b)
33046 {
33047 return __builtin_aarch64_fminv4hf (__a, __b);
33048 }
33049
33050 __extension__ extern __inline float16x8_t
33051 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmq_f16(float16x8_t __a,float16x8_t __b)33052 vminnmq_f16 (float16x8_t __a, float16x8_t __b)
33053 {
33054 return __builtin_aarch64_fminv8hf (__a, __b);
33055 }
33056
33057 __extension__ extern __inline float16x4_t
33058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_f16(float16x4_t __a,float16x4_t __b)33059 vmul_f16 (float16x4_t __a, float16x4_t __b)
33060 {
33061 return __a * __b;
33062 }
33063
33064 __extension__ extern __inline float16x8_t
33065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_f16(float16x8_t __a,float16x8_t __b)33066 vmulq_f16 (float16x8_t __a, float16x8_t __b)
33067 {
33068 return __a * __b;
33069 }
33070
33071 __extension__ extern __inline float16x4_t
33072 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_f16(float16x4_t __a,float16x4_t __b)33073 vmulx_f16 (float16x4_t __a, float16x4_t __b)
33074 {
33075 return __builtin_aarch64_fmulxv4hf (__a, __b);
33076 }
33077
33078 __extension__ extern __inline float16x8_t
33079 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_f16(float16x8_t __a,float16x8_t __b)33080 vmulxq_f16 (float16x8_t __a, float16x8_t __b)
33081 {
33082 return __builtin_aarch64_fmulxv8hf (__a, __b);
33083 }
33084
33085 __extension__ extern __inline float16x4_t
33086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpadd_f16(float16x4_t __a,float16x4_t __b)33087 vpadd_f16 (float16x4_t __a, float16x4_t __b)
33088 {
33089 return __builtin_aarch64_faddpv4hf (__a, __b);
33090 }
33091
33092 __extension__ extern __inline float16x8_t
33093 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpaddq_f16(float16x8_t __a,float16x8_t __b)33094 vpaddq_f16 (float16x8_t __a, float16x8_t __b)
33095 {
33096 return __builtin_aarch64_faddpv8hf (__a, __b);
33097 }
33098
33099 __extension__ extern __inline float16x4_t
33100 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmax_f16(float16x4_t __a,float16x4_t __b)33101 vpmax_f16 (float16x4_t __a, float16x4_t __b)
33102 {
33103 return __builtin_aarch64_smax_nanpv4hf (__a, __b);
33104 }
33105
33106 __extension__ extern __inline float16x8_t
33107 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxq_f16(float16x8_t __a,float16x8_t __b)33108 vpmaxq_f16 (float16x8_t __a, float16x8_t __b)
33109 {
33110 return __builtin_aarch64_smax_nanpv8hf (__a, __b);
33111 }
33112
33113 __extension__ extern __inline float16x4_t
33114 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnm_f16(float16x4_t __a,float16x4_t __b)33115 vpmaxnm_f16 (float16x4_t __a, float16x4_t __b)
33116 {
33117 return __builtin_aarch64_smaxpv4hf (__a, __b);
33118 }
33119
33120 __extension__ extern __inline float16x8_t
33121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmaxnmq_f16(float16x8_t __a,float16x8_t __b)33122 vpmaxnmq_f16 (float16x8_t __a, float16x8_t __b)
33123 {
33124 return __builtin_aarch64_smaxpv8hf (__a, __b);
33125 }
33126
33127 __extension__ extern __inline float16x4_t
33128 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpmin_f16(float16x4_t __a,float16x4_t __b)33129 vpmin_f16 (float16x4_t __a, float16x4_t __b)
33130 {
33131 return __builtin_aarch64_smin_nanpv4hf (__a, __b);
33132 }
33133
33134 __extension__ extern __inline float16x8_t
33135 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminq_f16(float16x8_t __a,float16x8_t __b)33136 vpminq_f16 (float16x8_t __a, float16x8_t __b)
33137 {
33138 return __builtin_aarch64_smin_nanpv8hf (__a, __b);
33139 }
33140
33141 __extension__ extern __inline float16x4_t
33142 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnm_f16(float16x4_t __a,float16x4_t __b)33143 vpminnm_f16 (float16x4_t __a, float16x4_t __b)
33144 {
33145 return __builtin_aarch64_sminpv4hf (__a, __b);
33146 }
33147
33148 __extension__ extern __inline float16x8_t
33149 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vpminnmq_f16(float16x8_t __a,float16x8_t __b)33150 vpminnmq_f16 (float16x8_t __a, float16x8_t __b)
33151 {
33152 return __builtin_aarch64_sminpv8hf (__a, __b);
33153 }
33154
33155 __extension__ extern __inline float16x4_t
33156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecps_f16(float16x4_t __a,float16x4_t __b)33157 vrecps_f16 (float16x4_t __a, float16x4_t __b)
33158 {
33159 return __builtin_aarch64_frecpsv4hf (__a, __b);
33160 }
33161
33162 __extension__ extern __inline float16x8_t
33163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrecpsq_f16(float16x8_t __a,float16x8_t __b)33164 vrecpsq_f16 (float16x8_t __a, float16x8_t __b)
33165 {
33166 return __builtin_aarch64_frecpsv8hf (__a, __b);
33167 }
33168
33169 __extension__ extern __inline float16x4_t
33170 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrts_f16(float16x4_t __a,float16x4_t __b)33171 vrsqrts_f16 (float16x4_t __a, float16x4_t __b)
33172 {
33173 return __builtin_aarch64_rsqrtsv4hf (__a, __b);
33174 }
33175
33176 __extension__ extern __inline float16x8_t
33177 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrsqrtsq_f16(float16x8_t __a,float16x8_t __b)33178 vrsqrtsq_f16 (float16x8_t __a, float16x8_t __b)
33179 {
33180 return __builtin_aarch64_rsqrtsv8hf (__a, __b);
33181 }
33182
33183 __extension__ extern __inline float16x4_t
33184 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsub_f16(float16x4_t __a,float16x4_t __b)33185 vsub_f16 (float16x4_t __a, float16x4_t __b)
33186 {
33187 return __a - __b;
33188 }
33189
33190 __extension__ extern __inline float16x8_t
33191 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsubq_f16(float16x8_t __a,float16x8_t __b)33192 vsubq_f16 (float16x8_t __a, float16x8_t __b)
33193 {
33194 return __a - __b;
33195 }
33196
33197 /* ARMv8.2-A FP16 three operands vector intrinsics. */
33198
33199 __extension__ extern __inline float16x4_t
33200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_f16(float16x4_t __a,float16x4_t __b,float16x4_t __c)33201 vfma_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
33202 {
33203 return __builtin_aarch64_fmav4hf (__b, __c, __a);
33204 }
33205
33206 __extension__ extern __inline float16x8_t
33207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_f16(float16x8_t __a,float16x8_t __b,float16x8_t __c)33208 vfmaq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
33209 {
33210 return __builtin_aarch64_fmav8hf (__b, __c, __a);
33211 }
33212
33213 __extension__ extern __inline float16x4_t
33214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_f16(float16x4_t __a,float16x4_t __b,float16x4_t __c)33215 vfms_f16 (float16x4_t __a, float16x4_t __b, float16x4_t __c)
33216 {
33217 return __builtin_aarch64_fnmav4hf (__b, __c, __a);
33218 }
33219
33220 __extension__ extern __inline float16x8_t
33221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_f16(float16x8_t __a,float16x8_t __b,float16x8_t __c)33222 vfmsq_f16 (float16x8_t __a, float16x8_t __b, float16x8_t __c)
33223 {
33224 return __builtin_aarch64_fnmav8hf (__b, __c, __a);
33225 }
33226
33227 /* ARMv8.2-A FP16 lane vector intrinsics. */
33228
33229 __extension__ extern __inline float16_t
33230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmah_lane_f16(float16_t __a,float16_t __b,float16x4_t __c,const int __lane)33231 vfmah_lane_f16 (float16_t __a, float16_t __b,
33232 float16x4_t __c, const int __lane)
33233 {
33234 return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
33235 }
33236
33237 __extension__ extern __inline float16_t
33238 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmah_laneq_f16(float16_t __a,float16_t __b,float16x8_t __c,const int __lane)33239 vfmah_laneq_f16 (float16_t __a, float16_t __b,
33240 float16x8_t __c, const int __lane)
33241 {
33242 return vfmah_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
33243 }
33244
33245 __extension__ extern __inline float16x4_t
33246 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_lane_f16(float16x4_t __a,float16x4_t __b,float16x4_t __c,const int __lane)33247 vfma_lane_f16 (float16x4_t __a, float16x4_t __b,
33248 float16x4_t __c, const int __lane)
33249 {
33250 return vfma_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
33251 }
33252
33253 __extension__ extern __inline float16x8_t
33254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_lane_f16(float16x8_t __a,float16x8_t __b,float16x4_t __c,const int __lane)33255 vfmaq_lane_f16 (float16x8_t __a, float16x8_t __b,
33256 float16x4_t __c, const int __lane)
33257 {
33258 return vfmaq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
33259 }
33260
33261 __extension__ extern __inline float16x4_t
33262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_laneq_f16(float16x4_t __a,float16x4_t __b,float16x8_t __c,const int __lane)33263 vfma_laneq_f16 (float16x4_t __a, float16x4_t __b,
33264 float16x8_t __c, const int __lane)
33265 {
33266 return vfma_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
33267 }
33268
33269 __extension__ extern __inline float16x8_t
33270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_laneq_f16(float16x8_t __a,float16x8_t __b,float16x8_t __c,const int __lane)33271 vfmaq_laneq_f16 (float16x8_t __a, float16x8_t __b,
33272 float16x8_t __c, const int __lane)
33273 {
33274 return vfmaq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
33275 }
33276
33277 __extension__ extern __inline float16x4_t
33278 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfma_n_f16(float16x4_t __a,float16x4_t __b,float16_t __c)33279 vfma_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
33280 {
33281 return vfma_f16 (__a, __b, vdup_n_f16 (__c));
33282 }
33283
33284 __extension__ extern __inline float16x8_t
33285 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmaq_n_f16(float16x8_t __a,float16x8_t __b,float16_t __c)33286 vfmaq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
33287 {
33288 return vfmaq_f16 (__a, __b, vdupq_n_f16 (__c));
33289 }
33290
33291 __extension__ extern __inline float16_t
33292 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsh_lane_f16(float16_t __a,float16_t __b,float16x4_t __c,const int __lane)33293 vfmsh_lane_f16 (float16_t __a, float16_t __b,
33294 float16x4_t __c, const int __lane)
33295 {
33296 return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
33297 }
33298
33299 __extension__ extern __inline float16_t
33300 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsh_laneq_f16(float16_t __a,float16_t __b,float16x8_t __c,const int __lane)33301 vfmsh_laneq_f16 (float16_t __a, float16_t __b,
33302 float16x8_t __c, const int __lane)
33303 {
33304 return vfmsh_f16 (__a, __b, __aarch64_vget_lane_any (__c, __lane));
33305 }
33306
33307 __extension__ extern __inline float16x4_t
33308 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_lane_f16(float16x4_t __a,float16x4_t __b,float16x4_t __c,const int __lane)33309 vfms_lane_f16 (float16x4_t __a, float16x4_t __b,
33310 float16x4_t __c, const int __lane)
33311 {
33312 return vfms_f16 (__a, __b, __aarch64_vdup_lane_f16 (__c, __lane));
33313 }
33314
33315 __extension__ extern __inline float16x8_t
33316 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_lane_f16(float16x8_t __a,float16x8_t __b,float16x4_t __c,const int __lane)33317 vfmsq_lane_f16 (float16x8_t __a, float16x8_t __b,
33318 float16x4_t __c, const int __lane)
33319 {
33320 return vfmsq_f16 (__a, __b, __aarch64_vdupq_lane_f16 (__c, __lane));
33321 }
33322
33323 __extension__ extern __inline float16x4_t
33324 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_laneq_f16(float16x4_t __a,float16x4_t __b,float16x8_t __c,const int __lane)33325 vfms_laneq_f16 (float16x4_t __a, float16x4_t __b,
33326 float16x8_t __c, const int __lane)
33327 {
33328 return vfms_f16 (__a, __b, __aarch64_vdup_laneq_f16 (__c, __lane));
33329 }
33330
33331 __extension__ extern __inline float16x8_t
33332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_laneq_f16(float16x8_t __a,float16x8_t __b,float16x8_t __c,const int __lane)33333 vfmsq_laneq_f16 (float16x8_t __a, float16x8_t __b,
33334 float16x8_t __c, const int __lane)
33335 {
33336 return vfmsq_f16 (__a, __b, __aarch64_vdupq_laneq_f16 (__c, __lane));
33337 }
33338
33339 __extension__ extern __inline float16x4_t
33340 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfms_n_f16(float16x4_t __a,float16x4_t __b,float16_t __c)33341 vfms_n_f16 (float16x4_t __a, float16x4_t __b, float16_t __c)
33342 {
33343 return vfms_f16 (__a, __b, vdup_n_f16 (__c));
33344 }
33345
33346 __extension__ extern __inline float16x8_t
33347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmsq_n_f16(float16x8_t __a,float16x8_t __b,float16_t __c)33348 vfmsq_n_f16 (float16x8_t __a, float16x8_t __b, float16_t __c)
33349 {
33350 return vfmsq_f16 (__a, __b, vdupq_n_f16 (__c));
33351 }
33352
33353 __extension__ extern __inline float16_t
33354 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulh_lane_f16(float16_t __a,float16x4_t __b,const int __lane)33355 vmulh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
33356 {
33357 return __a * __aarch64_vget_lane_any (__b, __lane);
33358 }
33359
33360 __extension__ extern __inline float16x4_t
33361 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_lane_f16(float16x4_t __a,float16x4_t __b,const int __lane)33362 vmul_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
33363 {
33364 return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
33365 }
33366
33367 __extension__ extern __inline float16x8_t
33368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_lane_f16(float16x8_t __a,float16x4_t __b,const int __lane)33369 vmulq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
33370 {
33371 return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
33372 }
33373
33374 __extension__ extern __inline float16_t
33375 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulh_laneq_f16(float16_t __a,float16x8_t __b,const int __lane)33376 vmulh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
33377 {
33378 return __a * __aarch64_vget_lane_any (__b, __lane);
33379 }
33380
33381 __extension__ extern __inline float16x4_t
33382 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_laneq_f16(float16x4_t __a,float16x8_t __b,const int __lane)33383 vmul_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
33384 {
33385 return vmul_f16 (__a, vdup_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
33386 }
33387
33388 __extension__ extern __inline float16x8_t
33389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_laneq_f16(float16x8_t __a,float16x8_t __b,const int __lane)33390 vmulq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
33391 {
33392 return vmulq_f16 (__a, vdupq_n_f16 (__aarch64_vget_lane_any (__b, __lane)));
33393 }
33394
33395 __extension__ extern __inline float16x4_t
33396 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmul_n_f16(float16x4_t __a,float16_t __b)33397 vmul_n_f16 (float16x4_t __a, float16_t __b)
33398 {
33399 return vmul_lane_f16 (__a, vdup_n_f16 (__b), 0);
33400 }
33401
33402 __extension__ extern __inline float16x8_t
33403 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulq_n_f16(float16x8_t __a,float16_t __b)33404 vmulq_n_f16 (float16x8_t __a, float16_t __b)
33405 {
33406 return vmulq_laneq_f16 (__a, vdupq_n_f16 (__b), 0);
33407 }
33408
33409 __extension__ extern __inline float16_t
33410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxh_lane_f16(float16_t __a,float16x4_t __b,const int __lane)33411 vmulxh_lane_f16 (float16_t __a, float16x4_t __b, const int __lane)
33412 {
33413 return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
33414 }
33415
33416 __extension__ extern __inline float16x4_t
33417 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_lane_f16(float16x4_t __a,float16x4_t __b,const int __lane)33418 vmulx_lane_f16 (float16x4_t __a, float16x4_t __b, const int __lane)
33419 {
33420 return vmulx_f16 (__a, __aarch64_vdup_lane_f16 (__b, __lane));
33421 }
33422
33423 __extension__ extern __inline float16x8_t
33424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_lane_f16(float16x8_t __a,float16x4_t __b,const int __lane)33425 vmulxq_lane_f16 (float16x8_t __a, float16x4_t __b, const int __lane)
33426 {
33427 return vmulxq_f16 (__a, __aarch64_vdupq_lane_f16 (__b, __lane));
33428 }
33429
33430 __extension__ extern __inline float16_t
33431 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxh_laneq_f16(float16_t __a,float16x8_t __b,const int __lane)33432 vmulxh_laneq_f16 (float16_t __a, float16x8_t __b, const int __lane)
33433 {
33434 return vmulxh_f16 (__a, __aarch64_vget_lane_any (__b, __lane));
33435 }
33436
33437 __extension__ extern __inline float16x4_t
33438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_laneq_f16(float16x4_t __a,float16x8_t __b,const int __lane)33439 vmulx_laneq_f16 (float16x4_t __a, float16x8_t __b, const int __lane)
33440 {
33441 return vmulx_f16 (__a, __aarch64_vdup_laneq_f16 (__b, __lane));
33442 }
33443
33444 __extension__ extern __inline float16x8_t
33445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_laneq_f16(float16x8_t __a,float16x8_t __b,const int __lane)33446 vmulxq_laneq_f16 (float16x8_t __a, float16x8_t __b, const int __lane)
33447 {
33448 return vmulxq_f16 (__a, __aarch64_vdupq_laneq_f16 (__b, __lane));
33449 }
33450
33451 __extension__ extern __inline float16x4_t
33452 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulx_n_f16(float16x4_t __a,float16_t __b)33453 vmulx_n_f16 (float16x4_t __a, float16_t __b)
33454 {
33455 return vmulx_f16 (__a, vdup_n_f16 (__b));
33456 }
33457
33458 __extension__ extern __inline float16x8_t
33459 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmulxq_n_f16(float16x8_t __a,float16_t __b)33460 vmulxq_n_f16 (float16x8_t __a, float16_t __b)
33461 {
33462 return vmulxq_f16 (__a, vdupq_n_f16 (__b));
33463 }
33464
33465 /* ARMv8.2-A FP16 reduction vector intrinsics. */
33466
33467 __extension__ extern __inline float16_t
33468 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxv_f16(float16x4_t __a)33469 vmaxv_f16 (float16x4_t __a)
33470 {
33471 return __builtin_aarch64_reduc_smax_nan_scal_v4hf (__a);
33472 }
33473
33474 __extension__ extern __inline float16_t
33475 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxvq_f16(float16x8_t __a)33476 vmaxvq_f16 (float16x8_t __a)
33477 {
33478 return __builtin_aarch64_reduc_smax_nan_scal_v8hf (__a);
33479 }
33480
33481 __extension__ extern __inline float16_t
33482 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminv_f16(float16x4_t __a)33483 vminv_f16 (float16x4_t __a)
33484 {
33485 return __builtin_aarch64_reduc_smin_nan_scal_v4hf (__a);
33486 }
33487
33488 __extension__ extern __inline float16_t
33489 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminvq_f16(float16x8_t __a)33490 vminvq_f16 (float16x8_t __a)
33491 {
33492 return __builtin_aarch64_reduc_smin_nan_scal_v8hf (__a);
33493 }
33494
33495 __extension__ extern __inline float16_t
33496 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmv_f16(float16x4_t __a)33497 vmaxnmv_f16 (float16x4_t __a)
33498 {
33499 return __builtin_aarch64_reduc_smax_scal_v4hf (__a);
33500 }
33501
33502 __extension__ extern __inline float16_t
33503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmaxnmvq_f16(float16x8_t __a)33504 vmaxnmvq_f16 (float16x8_t __a)
33505 {
33506 return __builtin_aarch64_reduc_smax_scal_v8hf (__a);
33507 }
33508
33509 __extension__ extern __inline float16_t
33510 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmv_f16(float16x4_t __a)33511 vminnmv_f16 (float16x4_t __a)
33512 {
33513 return __builtin_aarch64_reduc_smin_scal_v4hf (__a);
33514 }
33515
33516 __extension__ extern __inline float16_t
33517 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vminnmvq_f16(float16x8_t __a)33518 vminnmvq_f16 (float16x8_t __a)
33519 {
33520 return __builtin_aarch64_reduc_smin_scal_v8hf (__a);
33521 }
33522
33523 #pragma GCC pop_options
33524
33525 /* AdvSIMD Dot Product intrinsics. */
33526
33527 #pragma GCC push_options
33528 #pragma GCC target ("arch=armv8.2-a+dotprod")
33529
33530 __extension__ extern __inline uint32x2_t
33531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_u32(uint32x2_t __r,uint8x8_t __a,uint8x8_t __b)33532 vdot_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b)
33533 {
33534 return __builtin_aarch64_udotv8qi_uuuu (__r, __a, __b);
33535 }
33536
33537 __extension__ extern __inline uint32x4_t
33538 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_u32(uint32x4_t __r,uint8x16_t __a,uint8x16_t __b)33539 vdotq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
33540 {
33541 return __builtin_aarch64_udotv16qi_uuuu (__r, __a, __b);
33542 }
33543
33544 __extension__ extern __inline int32x2_t
33545 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_s32(int32x2_t __r,int8x8_t __a,int8x8_t __b)33546 vdot_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b)
33547 {
33548 return __builtin_aarch64_sdotv8qi (__r, __a, __b);
33549 }
33550
33551 __extension__ extern __inline int32x4_t
33552 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_s32(int32x4_t __r,int8x16_t __a,int8x16_t __b)33553 vdotq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
33554 {
33555 return __builtin_aarch64_sdotv16qi (__r, __a, __b);
33556 }
33557
33558 __extension__ extern __inline uint32x2_t
33559 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_lane_u32(uint32x2_t __r,uint8x8_t __a,uint8x8_t __b,const int __index)33560 vdot_lane_u32 (uint32x2_t __r, uint8x8_t __a, uint8x8_t __b, const int __index)
33561 {
33562 return __builtin_aarch64_udot_lanev8qi_uuuus (__r, __a, __b, __index);
33563 }
33564
33565 __extension__ extern __inline uint32x2_t
33566 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_laneq_u32(uint32x2_t __r,uint8x8_t __a,uint8x16_t __b,const int __index)33567 vdot_laneq_u32 (uint32x2_t __r, uint8x8_t __a, uint8x16_t __b,
33568 const int __index)
33569 {
33570 return __builtin_aarch64_udot_laneqv8qi_uuuus (__r, __a, __b, __index);
33571 }
33572
33573 __extension__ extern __inline uint32x4_t
33574 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_lane_u32(uint32x4_t __r,uint8x16_t __a,uint8x8_t __b,const int __index)33575 vdotq_lane_u32 (uint32x4_t __r, uint8x16_t __a, uint8x8_t __b,
33576 const int __index)
33577 {
33578 return __builtin_aarch64_udot_lanev16qi_uuuus (__r, __a, __b, __index);
33579 }
33580
33581 __extension__ extern __inline uint32x4_t
33582 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_laneq_u32(uint32x4_t __r,uint8x16_t __a,uint8x16_t __b,const int __index)33583 vdotq_laneq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b,
33584 const int __index)
33585 {
33586 return __builtin_aarch64_udot_laneqv16qi_uuuus (__r, __a, __b, __index);
33587 }
33588
33589 __extension__ extern __inline int32x2_t
33590 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_lane_s32(int32x2_t __r,int8x8_t __a,int8x8_t __b,const int __index)33591 vdot_lane_s32 (int32x2_t __r, int8x8_t __a, int8x8_t __b, const int __index)
33592 {
33593 return __builtin_aarch64_sdot_lanev8qi (__r, __a, __b, __index);
33594 }
33595
33596 __extension__ extern __inline int32x2_t
33597 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdot_laneq_s32(int32x2_t __r,int8x8_t __a,int8x16_t __b,const int __index)33598 vdot_laneq_s32 (int32x2_t __r, int8x8_t __a, int8x16_t __b, const int __index)
33599 {
33600 return __builtin_aarch64_sdot_laneqv8qi (__r, __a, __b, __index);
33601 }
33602
33603 __extension__ extern __inline int32x4_t
33604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_lane_s32(int32x4_t __r,int8x16_t __a,int8x8_t __b,const int __index)33605 vdotq_lane_s32 (int32x4_t __r, int8x16_t __a, int8x8_t __b, const int __index)
33606 {
33607 return __builtin_aarch64_sdot_lanev16qi (__r, __a, __b, __index);
33608 }
33609
33610 __extension__ extern __inline int32x4_t
33611 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdotq_laneq_s32(int32x4_t __r,int8x16_t __a,int8x16_t __b,const int __index)33612 vdotq_laneq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b, const int __index)
33613 {
33614 return __builtin_aarch64_sdot_laneqv16qi (__r, __a, __b, __index);
33615 }
33616 #pragma GCC pop_options
33617
33618 #pragma GCC push_options
33619 #pragma GCC target ("arch=armv8.2-a+sm4")
33620
33621 __extension__ extern __inline uint32x4_t
33622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3ss1q_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)33623 vsm3ss1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33624 {
33625 return __builtin_aarch64_sm3ss1qv4si_uuuu (__a, __b, __c);
33626 }
33627
33628 __extension__ extern __inline uint32x4_t
33629 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3tt1aq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __imm2)33630 vsm3tt1aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33631 {
33632 return __builtin_aarch64_sm3tt1aqv4si_uuuus (__a, __b, __c, __imm2);
33633 }
33634
33635 __extension__ extern __inline uint32x4_t
33636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3tt1bq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __imm2)33637 vsm3tt1bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33638 {
33639 return __builtin_aarch64_sm3tt1bqv4si_uuuus (__a, __b, __c, __imm2);
33640 }
33641
33642 __extension__ extern __inline uint32x4_t
33643 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3tt2aq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __imm2)33644 vsm3tt2aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33645 {
33646 return __builtin_aarch64_sm3tt2aqv4si_uuuus (__a, __b, __c, __imm2);
33647 }
33648
33649 __extension__ extern __inline uint32x4_t
33650 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3tt2bq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c,const int __imm2)33651 vsm3tt2bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33652 {
33653 return __builtin_aarch64_sm3tt2bqv4si_uuuus (__a, __b, __c, __imm2);
33654 }
33655
33656 __extension__ extern __inline uint32x4_t
33657 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3partw1q_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)33658 vsm3partw1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33659 {
33660 return __builtin_aarch64_sm3partw1qv4si_uuuu (__a, __b, __c);
33661 }
33662 __extension__ extern __inline uint32x4_t
33663 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm3partw2q_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)33664 vsm3partw2q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33665 {
33666 return __builtin_aarch64_sm3partw2qv4si_uuuu (__a, __b, __c);
33667 }
33668
33669 __extension__ extern __inline uint32x4_t
33670 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm4eq_u32(uint32x4_t __a,uint32x4_t __b)33671 vsm4eq_u32 (uint32x4_t __a, uint32x4_t __b)
33672 {
33673 return __builtin_aarch64_sm4eqv4si_uuu (__a, __b);
33674 }
33675
33676 __extension__ extern __inline uint32x4_t
33677 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsm4ekeyq_u32(uint32x4_t __a,uint32x4_t __b)33678 vsm4ekeyq_u32 (uint32x4_t __a, uint32x4_t __b)
33679 {
33680 return __builtin_aarch64_sm4ekeyqv4si_uuu (__a, __b);
33681 }
33682
33683 #pragma GCC pop_options
33684
33685 #pragma GCC push_options
33686 #pragma GCC target ("arch=armv8.2-a+sha3")
33687
33688 __extension__ extern __inline uint64x2_t
33689 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha512hq_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)33690 vsha512hq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33691 {
33692 return __builtin_aarch64_crypto_sha512hqv2di_uuuu (__a, __b, __c);
33693 }
33694
33695 __extension__ extern __inline uint64x2_t
33696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha512h2q_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)33697 vsha512h2q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33698 {
33699 return __builtin_aarch64_crypto_sha512h2qv2di_uuuu (__a, __b, __c);
33700 }
33701
33702 __extension__ extern __inline uint64x2_t
33703 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha512su0q_u64(uint64x2_t __a,uint64x2_t __b)33704 vsha512su0q_u64 (uint64x2_t __a, uint64x2_t __b)
33705 {
33706 return __builtin_aarch64_crypto_sha512su0qv2di_uuu (__a, __b);
33707 }
33708
33709 __extension__ extern __inline uint64x2_t
33710 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsha512su1q_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)33711 vsha512su1q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33712 {
33713 return __builtin_aarch64_crypto_sha512su1qv2di_uuuu (__a, __b, __c);
33714 }
33715
33716 __extension__ extern __inline uint8x16_t
33717 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)33718 veor3q_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
33719 {
33720 return __builtin_aarch64_eor3qv16qi_uuuu (__a, __b, __c);
33721 }
33722
33723 __extension__ extern __inline uint16x8_t
33724 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)33725 veor3q_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
33726 {
33727 return __builtin_aarch64_eor3qv8hi_uuuu (__a, __b, __c);
33728 }
33729
33730 __extension__ extern __inline uint32x4_t
33731 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)33732 veor3q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33733 {
33734 return __builtin_aarch64_eor3qv4si_uuuu (__a, __b, __c);
33735 }
33736
33737 __extension__ extern __inline uint64x2_t
33738 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)33739 veor3q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33740 {
33741 return __builtin_aarch64_eor3qv2di_uuuu (__a, __b, __c);
33742 }
33743
33744
33745 __extension__ extern __inline int8x16_t
33746 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_s8(int8x16_t __a,int8x16_t __b,int8x16_t __c)33747 veor3q_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
33748 {
33749 return __builtin_aarch64_eor3qv16qi (__a, __b, __c);
33750 }
33751
33752 __extension__ extern __inline int16x8_t
33753 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)33754 veor3q_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
33755 {
33756 return __builtin_aarch64_eor3qv8hi (__a, __b, __c);
33757 }
33758
33759 __extension__ extern __inline int32x4_t
33760 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)33761 veor3q_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
33762 {
33763 return __builtin_aarch64_eor3qv4si (__a, __b, __c);
33764 }
33765
33766 __extension__ extern __inline int64x2_t
33767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
veor3q_s64(int64x2_t __a,int64x2_t __b,int64x2_t __c)33768 veor3q_s64 (int64x2_t __a, int64x2_t __b, int64x2_t __c)
33769 {
33770 return __builtin_aarch64_eor3qv2di (__a, __b, __c);
33771 }
33772
33773 __extension__ extern __inline uint64x2_t
33774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrax1q_u64(uint64x2_t __a,uint64x2_t __b)33775 vrax1q_u64 (uint64x2_t __a, uint64x2_t __b)
33776 {
33777 return __builtin_aarch64_rax1qv2di_uuu (__a, __b);
33778 }
33779
33780 __extension__ extern __inline uint64x2_t
33781 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vxarq_u64(uint64x2_t __a,uint64x2_t __b,const int imm6)33782 vxarq_u64 (uint64x2_t __a, uint64x2_t __b, const int imm6)
33783 {
33784 return __builtin_aarch64_xarqv2di_uuus (__a, __b,imm6);
33785 }
33786
33787 __extension__ extern __inline uint8x16_t
33788 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_u8(uint8x16_t __a,uint8x16_t __b,uint8x16_t __c)33789 vbcaxq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
33790 {
33791 return __builtin_aarch64_bcaxqv16qi_uuuu (__a, __b, __c);
33792 }
33793
33794 __extension__ extern __inline uint16x8_t
33795 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_u16(uint16x8_t __a,uint16x8_t __b,uint16x8_t __c)33796 vbcaxq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
33797 {
33798 return __builtin_aarch64_bcaxqv8hi_uuuu (__a, __b, __c);
33799 }
33800
33801 __extension__ extern __inline uint32x4_t
33802 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_u32(uint32x4_t __a,uint32x4_t __b,uint32x4_t __c)33803 vbcaxq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33804 {
33805 return __builtin_aarch64_bcaxqv4si_uuuu (__a, __b, __c);
33806 }
33807
33808 __extension__ extern __inline uint64x2_t
33809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_u64(uint64x2_t __a,uint64x2_t __b,uint64x2_t __c)33810 vbcaxq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33811 {
33812 return __builtin_aarch64_bcaxqv2di_uuuu (__a, __b, __c);
33813 }
33814
33815 __extension__ extern __inline int8x16_t
33816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_s8(int8x16_t __a,int8x16_t __b,int8x16_t __c)33817 vbcaxq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
33818 {
33819 return __builtin_aarch64_bcaxqv16qi (__a, __b, __c);
33820 }
33821
33822 __extension__ extern __inline int16x8_t
33823 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_s16(int16x8_t __a,int16x8_t __b,int16x8_t __c)33824 vbcaxq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
33825 {
33826 return __builtin_aarch64_bcaxqv8hi (__a, __b, __c);
33827 }
33828
33829 __extension__ extern __inline int32x4_t
33830 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_s32(int32x4_t __a,int32x4_t __b,int32x4_t __c)33831 vbcaxq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
33832 {
33833 return __builtin_aarch64_bcaxqv4si (__a, __b, __c);
33834 }
33835
33836 __extension__ extern __inline int64x2_t
33837 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbcaxq_s64(int64x2_t __a,int64x2_t __b,int64x2_t __c)33838 vbcaxq_s64 (int64x2_t __a, int64x2_t __b, int64x2_t __c)
33839 {
33840 return __builtin_aarch64_bcaxqv2di (__a, __b, __c);
33841 }
33842
33843 #pragma GCC pop_options
33844
33845 /* AdvSIMD Complex numbers intrinsics. */
33846
33847 #pragma GCC push_options
33848 #pragma GCC target ("arch=armv8.3-a")
33849
33850 #pragma GCC push_options
33851 #pragma GCC target ("+fp16")
33852 __extension__ extern __inline float16x4_t
33853 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcadd_rot90_f16(float16x4_t __a,float16x4_t __b)33854 vcadd_rot90_f16 (float16x4_t __a, float16x4_t __b)
33855 {
33856 return __builtin_aarch64_fcadd90v4hf (__a, __b);
33857 }
33858
33859 __extension__ extern __inline float16x8_t
33860 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaddq_rot90_f16(float16x8_t __a,float16x8_t __b)33861 vcaddq_rot90_f16 (float16x8_t __a, float16x8_t __b)
33862 {
33863 return __builtin_aarch64_fcadd90v8hf (__a, __b);
33864 }
33865
33866 __extension__ extern __inline float16x4_t
33867 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcadd_rot270_f16(float16x4_t __a,float16x4_t __b)33868 vcadd_rot270_f16 (float16x4_t __a, float16x4_t __b)
33869 {
33870 return __builtin_aarch64_fcadd270v4hf (__a, __b);
33871 }
33872
33873 __extension__ extern __inline float16x8_t
33874 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaddq_rot270_f16(float16x8_t __a,float16x8_t __b)33875 vcaddq_rot270_f16 (float16x8_t __a, float16x8_t __b)
33876 {
33877 return __builtin_aarch64_fcadd270v8hf (__a, __b);
33878 }
33879
33880 __extension__ extern __inline float16x4_t
33881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b)33882 vcmla_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
33883 {
33884 return __builtin_aarch64_fcmla0v4hf (__r, __a, __b);
33885 }
33886
33887 __extension__ extern __inline float16x8_t
33888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b)33889 vcmlaq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
33890 {
33891 return __builtin_aarch64_fcmla0v8hf (__r, __a, __b);
33892 }
33893
33894 __extension__ extern __inline float16x4_t
33895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_lane_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b,const int __index)33896 vcmla_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
33897 const int __index)
33898 {
33899 return __builtin_aarch64_fcmla_lane0v4hf (__r, __a, __b, __index);
33900 }
33901
33902 __extension__ extern __inline float16x4_t
33903 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_laneq_f16(float16x4_t __r,float16x4_t __a,float16x8_t __b,const int __index)33904 vcmla_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
33905 const int __index)
33906 {
33907 return __builtin_aarch64_fcmla_laneq0v4hf (__r, __a, __b, __index);
33908 }
33909
33910 __extension__ extern __inline float16x8_t
33911 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_lane_f16(float16x8_t __r,float16x8_t __a,float16x4_t __b,const int __index)33912 vcmlaq_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
33913 const int __index)
33914 {
33915 return __builtin_aarch64_fcmlaq_lane0v8hf (__r, __a, __b, __index);
33916 }
33917
33918 __extension__ extern __inline float16x8_t
33919 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_lane_f16(float16x8_t __r,float16x8_t __a,float16x4_t __b,const int __index)33920 vcmlaq_rot90_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
33921 const int __index)
33922 {
33923 return __builtin_aarch64_fcmlaq_lane90v8hf (__r, __a, __b, __index);
33924 }
33925
33926 __extension__ extern __inline float16x4_t
33927 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_laneq_f16(float16x4_t __r,float16x4_t __a,float16x8_t __b,const int __index)33928 vcmla_rot90_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
33929 const int __index)
33930 {
33931 return __builtin_aarch64_fcmla_laneq90v4hf (__r, __a, __b, __index);
33932 }
33933
33934 __extension__ extern __inline float16x4_t
33935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_lane_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b,const int __index)33936 vcmla_rot90_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
33937 const int __index)
33938 {
33939 return __builtin_aarch64_fcmla_lane90v4hf (__r, __a, __b, __index);
33940 }
33941
33942 __extension__ extern __inline float16x8_t
33943 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b)33944 vcmlaq_rot90_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
33945 {
33946 return __builtin_aarch64_fcmla90v8hf (__r, __a, __b);
33947 }
33948
33949 __extension__ extern __inline float16x4_t
33950 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b)33951 vcmla_rot90_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
33952 {
33953 return __builtin_aarch64_fcmla90v4hf (__r, __a, __b);
33954 }
33955
33956 __extension__ extern __inline float16x8_t
33957 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_laneq_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b,const int __index)33958 vcmlaq_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
33959 const int __index)
33960 {
33961 return __builtin_aarch64_fcmla_lane0v8hf (__r, __a, __b, __index);
33962 }
33963
33964 __extension__ extern __inline float16x4_t
33965 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_laneq_f16(float16x4_t __r,float16x4_t __a,float16x8_t __b,const int __index)33966 vcmla_rot180_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
33967 const int __index)
33968 {
33969 return __builtin_aarch64_fcmla_laneq180v4hf (__r, __a, __b, __index);
33970 }
33971
33972 __extension__ extern __inline float16x4_t
33973 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_lane_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b,const int __index)33974 vcmla_rot180_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
33975 const int __index)
33976 {
33977 return __builtin_aarch64_fcmla_lane180v4hf (__r, __a, __b, __index);
33978 }
33979
33980 __extension__ extern __inline float16x8_t
33981 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b)33982 vcmlaq_rot180_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
33983 {
33984 return __builtin_aarch64_fcmla180v8hf (__r, __a, __b);
33985 }
33986
33987 __extension__ extern __inline float16x4_t
33988 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b)33989 vcmla_rot180_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
33990 {
33991 return __builtin_aarch64_fcmla180v4hf (__r, __a, __b);
33992 }
33993
33994 __extension__ extern __inline float16x8_t
33995 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_laneq_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b,const int __index)33996 vcmlaq_rot90_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
33997 const int __index)
33998 {
33999 return __builtin_aarch64_fcmla_lane90v8hf (__r, __a, __b, __index);
34000 }
34001
34002 __extension__ extern __inline float16x8_t
34003 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_laneq_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b,const int __index)34004 vcmlaq_rot270_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
34005 const int __index)
34006 {
34007 return __builtin_aarch64_fcmla_lane270v8hf (__r, __a, __b, __index);
34008 }
34009
34010 __extension__ extern __inline float16x8_t
34011 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_lane_f16(float16x8_t __r,float16x8_t __a,float16x4_t __b,const int __index)34012 vcmlaq_rot270_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
34013 const int __index)
34014 {
34015 return __builtin_aarch64_fcmlaq_lane270v8hf (__r, __a, __b, __index);
34016 }
34017
34018 __extension__ extern __inline float16x4_t
34019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_laneq_f16(float16x4_t __r,float16x4_t __a,float16x8_t __b,const int __index)34020 vcmla_rot270_laneq_f16 (float16x4_t __r, float16x4_t __a, float16x8_t __b,
34021 const int __index)
34022 {
34023 return __builtin_aarch64_fcmla_laneq270v4hf (__r, __a, __b, __index);
34024 }
34025
34026 __extension__ extern __inline float16x8_t
34027 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b)34028 vcmlaq_rot270_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b)
34029 {
34030 return __builtin_aarch64_fcmla270v8hf (__r, __a, __b);
34031 }
34032
34033 __extension__ extern __inline float16x4_t
34034 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b)34035 vcmla_rot270_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b)
34036 {
34037 return __builtin_aarch64_fcmla270v4hf (__r, __a, __b);
34038 }
34039
34040 __extension__ extern __inline float16x8_t
34041 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_laneq_f16(float16x8_t __r,float16x8_t __a,float16x8_t __b,const int __index)34042 vcmlaq_rot180_laneq_f16 (float16x8_t __r, float16x8_t __a, float16x8_t __b,
34043 const int __index)
34044 {
34045 return __builtin_aarch64_fcmla_lane180v8hf (__r, __a, __b, __index);
34046 }
34047
34048 __extension__ extern __inline float16x8_t
34049 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_lane_f16(float16x8_t __r,float16x8_t __a,float16x4_t __b,const int __index)34050 vcmlaq_rot180_lane_f16 (float16x8_t __r, float16x8_t __a, float16x4_t __b,
34051 const int __index)
34052 {
34053 return __builtin_aarch64_fcmlaq_lane180v8hf (__r, __a, __b, __index);
34054 }
34055
34056 __extension__ extern __inline float16x4_t
34057 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_lane_f16(float16x4_t __r,float16x4_t __a,float16x4_t __b,const int __index)34058 vcmla_rot270_lane_f16 (float16x4_t __r, float16x4_t __a, float16x4_t __b,
34059 const int __index)
34060 {
34061 return __builtin_aarch64_fcmla_lane270v4hf (__r, __a, __b, __index);
34062 }
34063 #pragma GCC pop_options
34064
34065 __extension__ extern __inline float32x2_t
34066 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcadd_rot90_f32(float32x2_t __a,float32x2_t __b)34067 vcadd_rot90_f32 (float32x2_t __a, float32x2_t __b)
34068 {
34069 return __builtin_aarch64_fcadd90v2sf (__a, __b);
34070 }
34071
34072 __extension__ extern __inline float32x4_t
34073 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaddq_rot90_f32(float32x4_t __a,float32x4_t __b)34074 vcaddq_rot90_f32 (float32x4_t __a, float32x4_t __b)
34075 {
34076 return __builtin_aarch64_fcadd90v4sf (__a, __b);
34077 }
34078
34079 __extension__ extern __inline float64x2_t
34080 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaddq_rot90_f64(float64x2_t __a,float64x2_t __b)34081 vcaddq_rot90_f64 (float64x2_t __a, float64x2_t __b)
34082 {
34083 return __builtin_aarch64_fcadd90v2df (__a, __b);
34084 }
34085
34086 __extension__ extern __inline float32x2_t
34087 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcadd_rot270_f32(float32x2_t __a,float32x2_t __b)34088 vcadd_rot270_f32 (float32x2_t __a, float32x2_t __b)
34089 {
34090 return __builtin_aarch64_fcadd270v2sf (__a, __b);
34091 }
34092
34093 __extension__ extern __inline float32x4_t
34094 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaddq_rot270_f32(float32x4_t __a,float32x4_t __b)34095 vcaddq_rot270_f32 (float32x4_t __a, float32x4_t __b)
34096 {
34097 return __builtin_aarch64_fcadd270v4sf (__a, __b);
34098 }
34099
34100 __extension__ extern __inline float64x2_t
34101 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcaddq_rot270_f64(float64x2_t __a,float64x2_t __b)34102 vcaddq_rot270_f64 (float64x2_t __a, float64x2_t __b)
34103 {
34104 return __builtin_aarch64_fcadd270v2df (__a, __b);
34105 }
34106
34107 __extension__ extern __inline float32x2_t
34108 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b)34109 vcmla_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
34110 {
34111 return __builtin_aarch64_fcmla0v2sf (__r, __a, __b);
34112 }
34113
34114 __extension__ extern __inline float32x4_t
34115 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b)34116 vcmlaq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
34117 {
34118 return __builtin_aarch64_fcmla0v4sf (__r, __a, __b);
34119 }
34120
34121 __extension__ extern __inline float64x2_t
34122 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_f64(float64x2_t __r,float64x2_t __a,float64x2_t __b)34123 vcmlaq_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
34124 {
34125 return __builtin_aarch64_fcmla0v2df (__r, __a, __b);
34126 }
34127
34128 __extension__ extern __inline float32x2_t
34129 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_lane_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b,const int __index)34130 vcmla_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
34131 const int __index)
34132 {
34133 return __builtin_aarch64_fcmla_lane0v2sf (__r, __a, __b, __index);
34134 }
34135
34136 __extension__ extern __inline float32x2_t
34137 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_laneq_f32(float32x2_t __r,float32x2_t __a,float32x4_t __b,const int __index)34138 vcmla_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
34139 const int __index)
34140 {
34141 return __builtin_aarch64_fcmla_laneq0v2sf (__r, __a, __b, __index);
34142 }
34143
34144 __extension__ extern __inline float32x4_t
34145 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_lane_f32(float32x4_t __r,float32x4_t __a,float32x2_t __b,const int __index)34146 vcmlaq_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
34147 const int __index)
34148 {
34149 return __builtin_aarch64_fcmlaq_lane0v4sf (__r, __a, __b, __index);
34150 }
34151
34152 __extension__ extern __inline float32x4_t
34153 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_laneq_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b,const int __index)34154 vcmlaq_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
34155 const int __index)
34156 {
34157 return __builtin_aarch64_fcmla_lane0v4sf (__r, __a, __b, __index);
34158 }
34159
34160 __extension__ extern __inline float32x2_t
34161 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b)34162 vcmla_rot90_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
34163 {
34164 return __builtin_aarch64_fcmla90v2sf (__r, __a, __b);
34165 }
34166
34167 __extension__ extern __inline float32x4_t
34168 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b)34169 vcmlaq_rot90_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
34170 {
34171 return __builtin_aarch64_fcmla90v4sf (__r, __a, __b);
34172 }
34173
34174 __extension__ extern __inline float64x2_t
34175 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_f64(float64x2_t __r,float64x2_t __a,float64x2_t __b)34176 vcmlaq_rot90_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
34177 {
34178 return __builtin_aarch64_fcmla90v2df (__r, __a, __b);
34179 }
34180
34181 __extension__ extern __inline float32x2_t
34182 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_lane_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b,const int __index)34183 vcmla_rot90_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
34184 const int __index)
34185 {
34186 return __builtin_aarch64_fcmla_lane90v2sf (__r, __a, __b, __index);
34187 }
34188
34189 __extension__ extern __inline float32x2_t
34190 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot90_laneq_f32(float32x2_t __r,float32x2_t __a,float32x4_t __b,const int __index)34191 vcmla_rot90_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
34192 const int __index)
34193 {
34194 return __builtin_aarch64_fcmla_laneq90v2sf (__r, __a, __b, __index);
34195 }
34196
34197 __extension__ extern __inline float32x4_t
34198 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_lane_f32(float32x4_t __r,float32x4_t __a,float32x2_t __b,const int __index)34199 vcmlaq_rot90_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
34200 const int __index)
34201 {
34202 return __builtin_aarch64_fcmlaq_lane90v4sf (__r, __a, __b, __index);
34203 }
34204
34205 __extension__ extern __inline float32x4_t
34206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot90_laneq_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b,const int __index)34207 vcmlaq_rot90_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
34208 const int __index)
34209 {
34210 return __builtin_aarch64_fcmla_lane90v4sf (__r, __a, __b, __index);
34211 }
34212
34213 __extension__ extern __inline float32x2_t
34214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b)34215 vcmla_rot180_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
34216 {
34217 return __builtin_aarch64_fcmla180v2sf (__r, __a, __b);
34218 }
34219
34220 __extension__ extern __inline float32x4_t
34221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b)34222 vcmlaq_rot180_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
34223 {
34224 return __builtin_aarch64_fcmla180v4sf (__r, __a, __b);
34225 }
34226
34227 __extension__ extern __inline float64x2_t
34228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_f64(float64x2_t __r,float64x2_t __a,float64x2_t __b)34229 vcmlaq_rot180_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
34230 {
34231 return __builtin_aarch64_fcmla180v2df (__r, __a, __b);
34232 }
34233
34234 __extension__ extern __inline float32x2_t
34235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_lane_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b,const int __index)34236 vcmla_rot180_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
34237 const int __index)
34238 {
34239 return __builtin_aarch64_fcmla_lane180v2sf (__r, __a, __b, __index);
34240 }
34241
34242 __extension__ extern __inline float32x2_t
34243 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot180_laneq_f32(float32x2_t __r,float32x2_t __a,float32x4_t __b,const int __index)34244 vcmla_rot180_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
34245 const int __index)
34246 {
34247 return __builtin_aarch64_fcmla_laneq180v2sf (__r, __a, __b, __index);
34248 }
34249
34250 __extension__ extern __inline float32x4_t
34251 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_lane_f32(float32x4_t __r,float32x4_t __a,float32x2_t __b,const int __index)34252 vcmlaq_rot180_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
34253 const int __index)
34254 {
34255 return __builtin_aarch64_fcmlaq_lane180v4sf (__r, __a, __b, __index);
34256 }
34257
34258 __extension__ extern __inline float32x4_t
34259 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot180_laneq_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b,const int __index)34260 vcmlaq_rot180_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
34261 const int __index)
34262 {
34263 return __builtin_aarch64_fcmla_lane180v4sf (__r, __a, __b, __index);
34264 }
34265
34266 __extension__ extern __inline float32x2_t
34267 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b)34268 vcmla_rot270_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b)
34269 {
34270 return __builtin_aarch64_fcmla270v2sf (__r, __a, __b);
34271 }
34272
34273 __extension__ extern __inline float32x4_t
34274 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b)34275 vcmlaq_rot270_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b)
34276 {
34277 return __builtin_aarch64_fcmla270v4sf (__r, __a, __b);
34278 }
34279
34280 __extension__ extern __inline float64x2_t
34281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_f64(float64x2_t __r,float64x2_t __a,float64x2_t __b)34282 vcmlaq_rot270_f64 (float64x2_t __r, float64x2_t __a, float64x2_t __b)
34283 {
34284 return __builtin_aarch64_fcmla270v2df (__r, __a, __b);
34285 }
34286
34287 __extension__ extern __inline float32x2_t
34288 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_lane_f32(float32x2_t __r,float32x2_t __a,float32x2_t __b,const int __index)34289 vcmla_rot270_lane_f32 (float32x2_t __r, float32x2_t __a, float32x2_t __b,
34290 const int __index)
34291 {
34292 return __builtin_aarch64_fcmla_lane270v2sf (__r, __a, __b, __index);
34293 }
34294
34295 __extension__ extern __inline float32x2_t
34296 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmla_rot270_laneq_f32(float32x2_t __r,float32x2_t __a,float32x4_t __b,const int __index)34297 vcmla_rot270_laneq_f32 (float32x2_t __r, float32x2_t __a, float32x4_t __b,
34298 const int __index)
34299 {
34300 return __builtin_aarch64_fcmla_laneq270v2sf (__r, __a, __b, __index);
34301 }
34302
34303 __extension__ extern __inline float32x4_t
34304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_lane_f32(float32x4_t __r,float32x4_t __a,float32x2_t __b,const int __index)34305 vcmlaq_rot270_lane_f32 (float32x4_t __r, float32x4_t __a, float32x2_t __b,
34306 const int __index)
34307 {
34308 return __builtin_aarch64_fcmlaq_lane270v4sf (__r, __a, __b, __index);
34309 }
34310
34311 __extension__ extern __inline float32x4_t
34312 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcmlaq_rot270_laneq_f32(float32x4_t __r,float32x4_t __a,float32x4_t __b,const int __index)34313 vcmlaq_rot270_laneq_f32 (float32x4_t __r, float32x4_t __a, float32x4_t __b,
34314 const int __index)
34315 {
34316 return __builtin_aarch64_fcmla_lane270v4sf (__r, __a, __b, __index);
34317 }
34318
34319 #pragma GCC pop_options
34320
34321 #pragma GCC push_options
34322 #pragma GCC target ("arch=armv8.2-a+fp16fml")
34323
34324 __extension__ extern __inline float32x2_t
34325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_low_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b)34326 vfmlal_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
34327 {
34328 return __builtin_aarch64_fmlal_lowv2sf (__r, __a, __b);
34329 }
34330
34331 __extension__ extern __inline float32x2_t
34332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_low_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b)34333 vfmlsl_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
34334 {
34335 return __builtin_aarch64_fmlsl_lowv2sf (__r, __a, __b);
34336 }
34337
34338 __extension__ extern __inline float32x4_t
34339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_low_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b)34340 vfmlalq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
34341 {
34342 return __builtin_aarch64_fmlalq_lowv4sf (__r, __a, __b);
34343 }
34344
34345 __extension__ extern __inline float32x4_t
34346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_low_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b)34347 vfmlslq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
34348 {
34349 return __builtin_aarch64_fmlslq_lowv4sf (__r, __a, __b);
34350 }
34351
34352 __extension__ extern __inline float32x2_t
34353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_high_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b)34354 vfmlal_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
34355 {
34356 return __builtin_aarch64_fmlal_highv2sf (__r, __a, __b);
34357 }
34358
34359 __extension__ extern __inline float32x2_t
34360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_high_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b)34361 vfmlsl_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
34362 {
34363 return __builtin_aarch64_fmlsl_highv2sf (__r, __a, __b);
34364 }
34365
34366 __extension__ extern __inline float32x4_t
34367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_high_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b)34368 vfmlalq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
34369 {
34370 return __builtin_aarch64_fmlalq_highv4sf (__r, __a, __b);
34371 }
34372
34373 __extension__ extern __inline float32x4_t
34374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_high_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b)34375 vfmlslq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
34376 {
34377 return __builtin_aarch64_fmlslq_highv4sf (__r, __a, __b);
34378 }
34379
34380 __extension__ extern __inline float32x2_t
34381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_lane_low_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b,const int __lane)34382 vfmlal_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
34383 const int __lane)
34384 {
34385 return __builtin_aarch64_fmlal_lane_lowv2sf (__r, __a, __b, __lane);
34386 }
34387
34388 __extension__ extern __inline float32x2_t
34389 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_lane_low_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b,const int __lane)34390 vfmlsl_lane_low_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
34391 const int __lane)
34392 {
34393 return __builtin_aarch64_fmlsl_lane_lowv2sf (__r, __a, __b, __lane);
34394 }
34395
34396 __extension__ extern __inline float32x2_t
34397 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_laneq_low_f16(float32x2_t __r,float16x4_t __a,float16x8_t __b,const int __lane)34398 vfmlal_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
34399 const int __lane)
34400 {
34401 return __builtin_aarch64_fmlal_laneq_lowv2sf (__r, __a, __b, __lane);
34402 }
34403
34404 __extension__ extern __inline float32x2_t
34405 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_laneq_low_f16(float32x2_t __r,float16x4_t __a,float16x8_t __b,const int __lane)34406 vfmlsl_laneq_low_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
34407 const int __lane)
34408 {
34409 return __builtin_aarch64_fmlsl_laneq_lowv2sf (__r, __a, __b, __lane);
34410 }
34411
34412 __extension__ extern __inline float32x4_t
34413 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_lane_low_f16(float32x4_t __r,float16x8_t __a,float16x4_t __b,const int __lane)34414 vfmlalq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
34415 const int __lane)
34416 {
34417 return __builtin_aarch64_fmlalq_lane_lowv4sf (__r, __a, __b, __lane);
34418 }
34419
34420 __extension__ extern __inline float32x4_t
34421 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_lane_low_f16(float32x4_t __r,float16x8_t __a,float16x4_t __b,const int __lane)34422 vfmlslq_lane_low_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
34423 const int __lane)
34424 {
34425 return __builtin_aarch64_fmlslq_lane_lowv4sf (__r, __a, __b, __lane);
34426 }
34427
34428 __extension__ extern __inline float32x4_t
34429 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_laneq_low_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b,const int __lane)34430 vfmlalq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
34431 const int __lane)
34432 {
34433 return __builtin_aarch64_fmlalq_laneq_lowv4sf (__r, __a, __b, __lane);
34434 }
34435
34436 __extension__ extern __inline float32x4_t
34437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_laneq_low_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b,const int __lane)34438 vfmlslq_laneq_low_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
34439 const int __lane)
34440 {
34441 return __builtin_aarch64_fmlslq_laneq_lowv4sf (__r, __a, __b, __lane);
34442 }
34443
34444 __extension__ extern __inline float32x2_t
34445 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_lane_high_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b,const int __lane)34446 vfmlal_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
34447 const int __lane)
34448 {
34449 return __builtin_aarch64_fmlal_lane_highv2sf (__r, __a, __b, __lane);
34450 }
34451
34452 __extension__ extern __inline float32x2_t
34453 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_lane_high_f16(float32x2_t __r,float16x4_t __a,float16x4_t __b,const int __lane)34454 vfmlsl_lane_high_f16 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
34455 const int __lane)
34456 {
34457 return __builtin_aarch64_fmlsl_lane_highv2sf (__r, __a, __b, __lane);
34458 }
34459
34460 __extension__ extern __inline float32x2_t
34461 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlal_laneq_high_f16(float32x2_t __r,float16x4_t __a,float16x8_t __b,const int __lane)34462 vfmlal_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
34463 const int __lane)
34464 {
34465 return __builtin_aarch64_fmlal_laneq_highv2sf (__r, __a, __b, __lane);
34466 }
34467
34468 __extension__ extern __inline float32x2_t
34469 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlsl_laneq_high_f16(float32x2_t __r,float16x4_t __a,float16x8_t __b,const int __lane)34470 vfmlsl_laneq_high_f16 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
34471 const int __lane)
34472 {
34473 return __builtin_aarch64_fmlsl_laneq_highv2sf (__r, __a, __b, __lane);
34474 }
34475
34476 __extension__ extern __inline float32x4_t
34477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_lane_high_f16(float32x4_t __r,float16x8_t __a,float16x4_t __b,const int __lane)34478 vfmlalq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
34479 const int __lane)
34480 {
34481 return __builtin_aarch64_fmlalq_lane_highv4sf (__r, __a, __b, __lane);
34482 }
34483
34484 __extension__ extern __inline float32x4_t
34485 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_lane_high_f16(float32x4_t __r,float16x8_t __a,float16x4_t __b,const int __lane)34486 vfmlslq_lane_high_f16 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
34487 const int __lane)
34488 {
34489 return __builtin_aarch64_fmlslq_lane_highv4sf (__r, __a, __b, __lane);
34490 }
34491
34492 __extension__ extern __inline float32x4_t
34493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlalq_laneq_high_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b,const int __lane)34494 vfmlalq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
34495 const int __lane)
34496 {
34497 return __builtin_aarch64_fmlalq_laneq_highv4sf (__r, __a, __b, __lane);
34498 }
34499
34500 __extension__ extern __inline float32x4_t
34501 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vfmlslq_laneq_high_f16(float32x4_t __r,float16x8_t __a,float16x8_t __b,const int __lane)34502 vfmlslq_laneq_high_f16 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
34503 const int __lane)
34504 {
34505 return __builtin_aarch64_fmlslq_laneq_highv4sf (__r, __a, __b, __lane);
34506 }
34507
34508 #pragma GCC pop_options
34509
34510 #pragma GCC push_options
34511 #pragma GCC target ("arch=armv8.5-a")
34512
34513 __extension__ extern __inline float32x2_t
34514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd32z_f32(float32x2_t __a)34515 vrnd32z_f32 (float32x2_t __a)
34516 {
34517 return __builtin_aarch64_frint32zv2sf (__a);
34518 }
34519
34520 __extension__ extern __inline float32x4_t
34521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd32zq_f32(float32x4_t __a)34522 vrnd32zq_f32 (float32x4_t __a)
34523 {
34524 return __builtin_aarch64_frint32zv4sf (__a);
34525 }
34526
34527 __extension__ extern __inline float64x1_t
34528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd32z_f64(float64x1_t __a)34529 vrnd32z_f64 (float64x1_t __a)
34530 {
34531 return (float64x1_t)
34532 {__builtin_aarch64_frint32zdf (vget_lane_f64 (__a, 0))};
34533 }
34534
34535 __extension__ extern __inline float64x2_t
34536 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd32zq_f64(float64x2_t __a)34537 vrnd32zq_f64 (float64x2_t __a)
34538 {
34539 return __builtin_aarch64_frint32zv2df (__a);
34540 }
34541
34542 __extension__ extern __inline float32x2_t
34543 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd32x_f32(float32x2_t __a)34544 vrnd32x_f32 (float32x2_t __a)
34545 {
34546 return __builtin_aarch64_frint32xv2sf (__a);
34547 }
34548
34549 __extension__ extern __inline float32x4_t
34550 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd32xq_f32(float32x4_t __a)34551 vrnd32xq_f32 (float32x4_t __a)
34552 {
34553 return __builtin_aarch64_frint32xv4sf (__a);
34554 }
34555
34556 __extension__ extern __inline float64x1_t
34557 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd32x_f64(float64x1_t __a)34558 vrnd32x_f64 (float64x1_t __a)
34559 {
34560 return (float64x1_t) {__builtin_aarch64_frint32xdf (vget_lane_f64 (__a, 0))};
34561 }
34562
34563 __extension__ extern __inline float64x2_t
34564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd32xq_f64(float64x2_t __a)34565 vrnd32xq_f64 (float64x2_t __a)
34566 {
34567 return __builtin_aarch64_frint32xv2df (__a);
34568 }
34569
34570 __extension__ extern __inline float32x2_t
34571 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd64z_f32(float32x2_t __a)34572 vrnd64z_f32 (float32x2_t __a)
34573 {
34574 return __builtin_aarch64_frint64zv2sf (__a);
34575 }
34576
34577 __extension__ extern __inline float32x4_t
34578 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd64zq_f32(float32x4_t __a)34579 vrnd64zq_f32 (float32x4_t __a)
34580 {
34581 return __builtin_aarch64_frint64zv4sf (__a);
34582 }
34583
34584 __extension__ extern __inline float64x1_t
34585 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd64z_f64(float64x1_t __a)34586 vrnd64z_f64 (float64x1_t __a)
34587 {
34588 return (float64x1_t) {__builtin_aarch64_frint64zdf (vget_lane_f64 (__a, 0))};
34589 }
34590
34591 __extension__ extern __inline float64x2_t
34592 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd64zq_f64(float64x2_t __a)34593 vrnd64zq_f64 (float64x2_t __a)
34594 {
34595 return __builtin_aarch64_frint64zv2df (__a);
34596 }
34597
34598 __extension__ extern __inline float32x2_t
34599 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd64x_f32(float32x2_t __a)34600 vrnd64x_f32 (float32x2_t __a)
34601 {
34602 return __builtin_aarch64_frint64xv2sf (__a);
34603 }
34604
34605 __extension__ extern __inline float32x4_t
34606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd64xq_f32(float32x4_t __a)34607 vrnd64xq_f32 (float32x4_t __a)
34608 {
34609 return __builtin_aarch64_frint64xv4sf (__a);
34610 }
34611
34612 __extension__ extern __inline float64x1_t
34613 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd64x_f64(float64x1_t __a)34614 vrnd64x_f64 (float64x1_t __a)
34615 {
34616 return (float64x1_t) {__builtin_aarch64_frint64xdf (vget_lane_f64 (__a, 0))};
34617 }
34618
34619 __extension__ extern __inline float64x2_t
34620 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vrnd64xq_f64(float64x2_t __a)34621 vrnd64xq_f64 (float64x2_t __a)
34622 {
34623 return __builtin_aarch64_frint64xv2df (__a);
34624 }
34625
34626 #pragma GCC pop_options
34627
34628 #include "arm_bf16.h"
34629
34630 #pragma GCC push_options
34631 #pragma GCC target ("arch=armv8.2-a+bf16")
34632
34633 __extension__ extern __inline bfloat16x4_t
34634 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vset_lane_bf16(bfloat16_t __elem,bfloat16x4_t __vec,const int __index)34635 vset_lane_bf16 (bfloat16_t __elem, bfloat16x4_t __vec, const int __index)
34636 {
34637 return __aarch64_vset_lane_any (__elem, __vec, __index);
34638 }
34639
34640 __extension__ extern __inline bfloat16x8_t
34641 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsetq_lane_bf16(bfloat16_t __elem,bfloat16x8_t __vec,const int __index)34642 vsetq_lane_bf16 (bfloat16_t __elem, bfloat16x8_t __vec, const int __index)
34643 {
34644 return __aarch64_vset_lane_any (__elem, __vec, __index);
34645 }
34646
34647 __extension__ extern __inline bfloat16_t
34648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_lane_bf16(bfloat16x4_t __a,const int __b)34649 vget_lane_bf16 (bfloat16x4_t __a, const int __b)
34650 {
34651 return __aarch64_vget_lane_any (__a, __b);
34652 }
34653
34654 __extension__ extern __inline bfloat16_t
34655 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vgetq_lane_bf16(bfloat16x8_t __a,const int __b)34656 vgetq_lane_bf16 (bfloat16x8_t __a, const int __b)
34657 {
34658 return __aarch64_vget_lane_any (__a, __b);
34659 }
34660
34661 __extension__ extern __inline bfloat16x4_t
34662 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcreate_bf16(uint64_t __a)34663 vcreate_bf16 (uint64_t __a)
34664 {
34665 return (bfloat16x4_t) __a;
34666 }
34667
34668 __extension__ extern __inline bfloat16x8_t
34669 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcombine_bf16(bfloat16x4_t __a,bfloat16x4_t __b)34670 vcombine_bf16 (bfloat16x4_t __a, bfloat16x4_t __b)
34671 {
34672 return (bfloat16x8_t)__builtin_aarch64_combinev4bf (__a, __b);
34673 }
34674
34675 /* vdup */
34676
34677 __extension__ extern __inline bfloat16x4_t
34678 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_n_bf16(bfloat16_t __a)34679 vdup_n_bf16 (bfloat16_t __a)
34680 {
34681 return (bfloat16x4_t) {__a, __a, __a, __a};
34682 }
34683
34684 __extension__ extern __inline bfloat16x8_t
34685 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_n_bf16(bfloat16_t __a)34686 vdupq_n_bf16 (bfloat16_t __a)
34687 {
34688 return (bfloat16x8_t) {__a, __a, __a, __a, __a, __a, __a, __a};
34689 }
34690
34691 __extension__ extern __inline bfloat16x4_t
34692 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_lane_bf16(bfloat16x4_t __a,const int __b)34693 vdup_lane_bf16 (bfloat16x4_t __a, const int __b)
34694 {
34695 return vdup_n_bf16 (__aarch64_vget_lane_any (__a, __b));
34696 }
34697
34698 __extension__ extern __inline bfloat16x4_t
34699 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdup_laneq_bf16(bfloat16x8_t __a,const int __b)34700 vdup_laneq_bf16 (bfloat16x8_t __a, const int __b)
34701 {
34702 return vdup_n_bf16 (__aarch64_vget_lane_any (__a, __b));
34703 }
34704
34705 __extension__ extern __inline bfloat16x8_t
34706 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_lane_bf16(bfloat16x4_t __a,const int __b)34707 vdupq_lane_bf16 (bfloat16x4_t __a, const int __b)
34708 {
34709 return vdupq_n_bf16 (__aarch64_vget_lane_any (__a, __b));
34710 }
34711
34712 __extension__ extern __inline bfloat16x8_t
34713 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vdupq_laneq_bf16(bfloat16x8_t __a,const int __b)34714 vdupq_laneq_bf16 (bfloat16x8_t __a, const int __b)
34715 {
34716 return vdupq_n_bf16 (__aarch64_vget_lane_any (__a, __b));
34717 }
34718
34719 __extension__ extern __inline bfloat16_t
34720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_lane_bf16(bfloat16x4_t __a,const int __b)34721 vduph_lane_bf16 (bfloat16x4_t __a, const int __b)
34722 {
34723 return __aarch64_vget_lane_any (__a, __b);
34724 }
34725
34726 __extension__ extern __inline bfloat16_t
34727 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vduph_laneq_bf16(bfloat16x8_t __a,const int __b)34728 vduph_laneq_bf16 (bfloat16x8_t __a, const int __b)
34729 {
34730 return __aarch64_vget_lane_any (__a, __b);
34731 }
34732
34733 /* vld */
34734
34735 __extension__ extern __inline bfloat16x4_t
34736 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_bf16(const bfloat16_t * __a)34737 vld1_bf16 (const bfloat16_t *__a)
34738 {
34739 return (bfloat16x4_t) __builtin_aarch64_ld1v4bf (__a);
34740 }
34741
34742 __extension__ extern __inline bfloat16x8_t
34743 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_bf16(const bfloat16_t * __a)34744 vld1q_bf16 (const bfloat16_t *__a)
34745 {
34746 return __builtin_aarch64_ld1v8bf (__a);
34747 }
34748
34749 __extension__ extern __inline bfloat16x4x2_t
34750 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_bf16_x2(const bfloat16_t * __a)34751 vld1_bf16_x2 (const bfloat16_t *__a)
34752 {
34753 bfloat16x4x2_t ret;
34754 __builtin_aarch64_simd_oi __o;
34755 __o = __builtin_aarch64_ld1x2v4bf ((const __builtin_aarch64_simd_bf *) __a);
34756 ret.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregoiv4bf (__o, 0);
34757 ret.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregoiv4bf (__o, 1);
34758 return ret;
34759 }
34760
34761 __extension__ extern __inline bfloat16x8x2_t
34762 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_bf16_x2(const bfloat16_t * __a)34763 vld1q_bf16_x2 (const bfloat16_t *__a)
34764 {
34765 bfloat16x8x2_t ret;
34766 __builtin_aarch64_simd_oi __o;
34767 __o = __builtin_aarch64_ld1x2v8bf ((const __builtin_aarch64_simd_bf *) __a);
34768 ret.val[0] = (bfloat16x8_t) __builtin_aarch64_get_qregoiv8bf (__o, 0);
34769 ret.val[1] = (bfloat16x8_t) __builtin_aarch64_get_qregoiv8bf (__o, 1);
34770 return ret;
34771 }
34772
34773 __extension__ extern __inline bfloat16x4x3_t
34774 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_bf16_x3(const bfloat16_t * __a)34775 vld1_bf16_x3 (const bfloat16_t *__a)
34776 {
34777 bfloat16x4x3_t __i;
34778 __builtin_aarch64_simd_ci __o;
34779 __o = __builtin_aarch64_ld1x3v4bf ((const __builtin_aarch64_simd_bf *) __a);
34780 __i.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf (__o, 0);
34781 __i.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf (__o, 1);
34782 __i.val[2] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf (__o, 2);
34783 return __i;
34784 }
34785
34786 __extension__ extern __inline bfloat16x8x3_t
34787 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_bf16_x3(const bfloat16_t * __a)34788 vld1q_bf16_x3 (const bfloat16_t *__a)
34789 {
34790 bfloat16x8x3_t __i;
34791 __builtin_aarch64_simd_ci __o;
34792 __o = __builtin_aarch64_ld1x3v8bf ((const __builtin_aarch64_simd_bf *) __a);
34793 __i.val[0] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf (__o, 0);
34794 __i.val[1] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf (__o, 1);
34795 __i.val[2] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf (__o, 2);
34796 return __i;
34797 }
34798 __extension__ extern __inline bfloat16x4x4_t
34799 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_bf16_x4(const bfloat16_t * __a)34800 vld1_bf16_x4 (const bfloat16_t *__a)
34801 {
34802 union { bfloat16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
34803 __au.__o
34804 = __builtin_aarch64_ld1x4v4bf ((const __builtin_aarch64_simd_bf *) __a);
34805 return __au.__i;
34806 }
34807
34808 __extension__ extern __inline bfloat16x8x4_t
34809 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_bf16_x4(const bfloat16_t * __a)34810 vld1q_bf16_x4 (const bfloat16_t *__a)
34811 {
34812 union { bfloat16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au;
34813 __au.__o
34814 = __builtin_aarch64_ld1x4v8bf ((const __builtin_aarch64_simd_bf *) __a);
34815 return __au.__i;
34816 }
34817
34818 __extension__ extern __inline bfloat16x4_t
34819 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_lane_bf16(const bfloat16_t * __src,bfloat16x4_t __vec,const int __lane)34820 vld1_lane_bf16 (const bfloat16_t *__src, bfloat16x4_t __vec, const int __lane)
34821 {
34822 return __aarch64_vset_lane_any (*__src, __vec, __lane);
34823 }
34824
34825 __extension__ extern __inline bfloat16x8_t
34826 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_lane_bf16(const bfloat16_t * __src,bfloat16x8_t __vec,const int __lane)34827 vld1q_lane_bf16 (const bfloat16_t *__src, bfloat16x8_t __vec, const int __lane)
34828 {
34829 return __aarch64_vset_lane_any (*__src, __vec, __lane);
34830 }
34831
34832 __extension__ extern __inline bfloat16x4_t
34833 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1_dup_bf16(const bfloat16_t * __a)34834 vld1_dup_bf16 (const bfloat16_t* __a)
34835 {
34836 return vdup_n_bf16 (*__a);
34837 }
34838
34839 __extension__ extern __inline bfloat16x8_t
34840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld1q_dup_bf16(const bfloat16_t * __a)34841 vld1q_dup_bf16 (const bfloat16_t* __a)
34842 {
34843 return vdupq_n_bf16 (*__a);
34844 }
34845
34846 __extension__ extern __inline bfloat16x4x2_t
34847 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_bf16(const bfloat16_t * __a)34848 vld2_bf16 (const bfloat16_t * __a)
34849 {
34850 bfloat16x4x2_t ret;
34851 __builtin_aarch64_simd_oi __o;
34852 __o = __builtin_aarch64_ld2v4bf (__a);
34853 ret.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregoiv4bf (__o, 0);
34854 ret.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregoiv4bf (__o, 1);
34855 return ret;
34856 }
34857
34858 __extension__ extern __inline bfloat16x8x2_t
34859 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_bf16(const bfloat16_t * __a)34860 vld2q_bf16 (const bfloat16_t * __a)
34861 {
34862 bfloat16x8x2_t ret;
34863 __builtin_aarch64_simd_oi __o;
34864 __o = __builtin_aarch64_ld2v8bf ((const __builtin_aarch64_simd_bf *) __a);
34865 ret.val[0] = (bfloat16x8_t) __builtin_aarch64_get_qregoiv8bf (__o, 0);
34866 ret.val[1] = (bfloat16x8_t) __builtin_aarch64_get_qregoiv8bf (__o, 1);
34867 return ret;
34868 }
34869
34870 __extension__ extern __inline bfloat16x4x2_t
34871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2_dup_bf16(const bfloat16_t * __a)34872 vld2_dup_bf16 (const bfloat16_t * __a)
34873 {
34874 bfloat16x4x2_t ret;
34875 __builtin_aarch64_simd_oi __o;
34876 __o = __builtin_aarch64_ld2rv4bf ((const __builtin_aarch64_simd_bf *) __a);
34877 ret.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregoiv4bf (__o, 0);
34878 ret.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregoiv4bf (__o, 1);
34879 return ret;
34880 }
34881
34882 __extension__ extern __inline bfloat16x8x2_t
34883 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld2q_dup_bf16(const bfloat16_t * __a)34884 vld2q_dup_bf16 (const bfloat16_t * __a)
34885 {
34886 bfloat16x8x2_t ret;
34887 __builtin_aarch64_simd_oi __o;
34888 __o = __builtin_aarch64_ld2rv8bf ((const __builtin_aarch64_simd_bf *) __a);
34889 ret.val[0] = (bfloat16x8_t) __builtin_aarch64_get_qregoiv8bf (__o, 0);
34890 ret.val[1] = (bfloat16x8_t) __builtin_aarch64_get_qregoiv8bf (__o, 1);
34891 return ret;
34892 }
34893
34894 __extension__ extern __inline bfloat16x4x3_t
34895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_bf16(const bfloat16_t * __a)34896 vld3_bf16 (const bfloat16_t * __a)
34897 {
34898 bfloat16x4x3_t ret;
34899 __builtin_aarch64_simd_ci __o;
34900 __o = __builtin_aarch64_ld3v4bf ((const __builtin_aarch64_simd_bf *) __a);
34901 ret.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf (__o, 0);
34902 ret.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf (__o, 1);
34903 ret.val[2] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf (__o, 2);
34904 return ret;
34905 }
34906
34907 __extension__ extern __inline bfloat16x8x3_t
34908 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_bf16(const bfloat16_t * __a)34909 vld3q_bf16 (const bfloat16_t * __a)
34910 {
34911 bfloat16x8x3_t ret;
34912 __builtin_aarch64_simd_ci __o;
34913 __o = __builtin_aarch64_ld3v8bf ((const __builtin_aarch64_simd_bf *) __a);
34914 ret.val[0] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf (__o, 0);
34915 ret.val[1] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf (__o, 1);
34916 ret.val[2] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf (__o, 2);
34917 return ret;
34918 }
34919
34920 __extension__ extern __inline bfloat16x4x3_t
34921 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3_dup_bf16(const bfloat16_t * __a)34922 vld3_dup_bf16 (const bfloat16_t * __a)
34923 {
34924 bfloat16x4x3_t ret;
34925 __builtin_aarch64_simd_ci __o;
34926 __o = __builtin_aarch64_ld3rv4bf ((const __builtin_aarch64_simd_bf *) __a);
34927 ret.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf (__o, 0);
34928 ret.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf (__o, 1);
34929 ret.val[2] = (bfloat16x4_t) __builtin_aarch64_get_dregciv4bf (__o, 2);
34930 return ret;
34931 }
34932
34933 __extension__ extern __inline bfloat16x8x3_t
34934 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld3q_dup_bf16(const bfloat16_t * __a)34935 vld3q_dup_bf16 (const bfloat16_t * __a)
34936 {
34937 bfloat16x8x3_t ret;
34938 __builtin_aarch64_simd_ci __o;
34939 __o = __builtin_aarch64_ld3rv8bf ((const __builtin_aarch64_simd_bf *) __a);
34940 ret.val[0] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf (__o, 0);
34941 ret.val[1] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf (__o, 1);
34942 ret.val[2] = (bfloat16x8_t) __builtin_aarch64_get_qregciv8bf (__o, 2);
34943 return ret;
34944 }
34945
34946 __extension__ extern __inline bfloat16x4x4_t
34947 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_bf16(const bfloat16_t * __a)34948 vld4_bf16 (const bfloat16_t * __a)
34949 {
34950 bfloat16x4x4_t ret;
34951 __builtin_aarch64_simd_xi __o;
34952 __o = __builtin_aarch64_ld4v4bf ((const __builtin_aarch64_simd_bf *) __a);
34953 ret.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 0);
34954 ret.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 1);
34955 ret.val[2] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 2);
34956 ret.val[3] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 3);
34957 return ret;
34958 }
34959
34960 __extension__ extern __inline bfloat16x8x4_t
34961 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_bf16(const bfloat16_t * __a)34962 vld4q_bf16 (const bfloat16_t * __a)
34963 {
34964 bfloat16x8x4_t ret;
34965 __builtin_aarch64_simd_xi __o;
34966 __o = __builtin_aarch64_ld4v8bf ((const __builtin_aarch64_simd_bf *) __a);
34967 ret.val[0] = (bfloat16x8_t) __builtin_aarch64_get_qregxiv8bf (__o, 0);
34968 ret.val[1] = (bfloat16x8_t) __builtin_aarch64_get_qregxiv8bf (__o, 1);
34969 ret.val[2] = (bfloat16x8_t) __builtin_aarch64_get_qregxiv8bf (__o, 2);
34970 ret.val[3] = (bfloat16x8_t) __builtin_aarch64_get_qregxiv8bf (__o, 3);
34971 return ret;
34972 }
34973
34974 __extension__ extern __inline bfloat16x4x4_t
34975 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4_dup_bf16(const bfloat16_t * __a)34976 vld4_dup_bf16 (const bfloat16_t * __a)
34977 {
34978 bfloat16x4x4_t ret;
34979 __builtin_aarch64_simd_xi __o;
34980 __o = __builtin_aarch64_ld4rv4bf ((const __builtin_aarch64_simd_bf *) __a);
34981 ret.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 0);
34982 ret.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 1);
34983 ret.val[2] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 2);
34984 ret.val[3] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 3);
34985 return ret;
34986 }
34987
34988 __extension__ extern __inline bfloat16x8x4_t
34989 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vld4q_dup_bf16(const bfloat16_t * __a)34990 vld4q_dup_bf16 (const bfloat16_t * __a)
34991 {
34992 bfloat16x8x4_t ret;
34993 __builtin_aarch64_simd_xi __o;
34994 __o = __builtin_aarch64_ld4rv8bf ((const __builtin_aarch64_simd_bf *) __a);
34995 ret.val[0] = (bfloat16x8_t) __builtin_aarch64_get_qregxiv8bf (__o, 0);
34996 ret.val[1] = (bfloat16x8_t) __builtin_aarch64_get_qregxiv8bf (__o, 1);
34997 ret.val[2] = (bfloat16x8_t) __builtin_aarch64_get_qregxiv8bf (__o, 2);
34998 ret.val[3] = (bfloat16x8_t) __builtin_aarch64_get_qregxiv8bf (__o, 3);
34999 return ret;
35000 }
35001
35002 /* vst */
35003
35004 __extension__ extern __inline void
35005 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_bf16(bfloat16_t * __a,bfloat16x4_t __b)35006 vst1_bf16 (bfloat16_t *__a, bfloat16x4_t __b)
35007 {
35008 __builtin_aarch64_st1v4bf (__a, __b);
35009 }
35010
35011 __extension__ extern __inline void
35012 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_bf16_x2(bfloat16_t * __a,bfloat16x4x2_t __val)35013 vst1_bf16_x2 (bfloat16_t * __a, bfloat16x4x2_t __val)
35014 {
35015 __builtin_aarch64_simd_oi __o;
35016 bfloat16x8x2_t __temp;
35017 __temp.val[0] = vcombine_bf16 (__val.val[0], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35018 __temp.val[1] = vcombine_bf16 (__val.val[1], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35019 __o = __builtin_aarch64_set_qregoiv8bf (__o, __temp.val[0], 0);
35020 __o = __builtin_aarch64_set_qregoiv8bf (__o, __temp.val[1], 1);
35021 __builtin_aarch64_st1x2v4bf (__a, __o);
35022 }
35023
35024 __extension__ extern __inline void
35025 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_bf16_x2(bfloat16_t * __a,bfloat16x8x2_t __val)35026 vst1q_bf16_x2 (bfloat16_t * __a, bfloat16x8x2_t __val)
35027 {
35028 __builtin_aarch64_simd_oi __o;
35029 __o = __builtin_aarch64_set_qregoiv8bf (__o, __val.val[0], 0);
35030 __o = __builtin_aarch64_set_qregoiv8bf (__o, __val.val[1], 1);
35031 __builtin_aarch64_st1x2v8bf (__a, __o);
35032 }
35033
35034 __extension__ extern __inline void
35035 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_bf16_x3(bfloat16_t * __a,bfloat16x4x3_t __val)35036 vst1_bf16_x3 (bfloat16_t * __a, bfloat16x4x3_t __val)
35037 {
35038 __builtin_aarch64_simd_ci __o;
35039 bfloat16x8x3_t __temp;
35040 __temp.val[0] = vcombine_bf16 (__val.val[0], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35041 __temp.val[1] = vcombine_bf16 (__val.val[1], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35042 __temp.val[2] = vcombine_bf16 (__val.val[2], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35043 __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __temp.val[0], 0);
35044 __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __temp.val[1], 1);
35045 __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __temp.val[2], 2);
35046 __builtin_aarch64_st1x3v4bf ((__builtin_aarch64_simd_bf *) __a, __o);
35047 }
35048
35049 __extension__ extern __inline void
35050 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_bf16_x3(bfloat16_t * __a,bfloat16x8x3_t __val)35051 vst1q_bf16_x3 (bfloat16_t * __a, bfloat16x8x3_t __val)
35052 {
35053 __builtin_aarch64_simd_ci __o;
35054 __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __val.val[0], 0);
35055 __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __val.val[1], 1);
35056 __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __val.val[2], 2);
35057 __builtin_aarch64_st1x3v8bf ((__builtin_aarch64_simd_bf *) __a, __o);
35058 }
35059
35060 __extension__ extern __inline void
35061 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_bf16_x4(bfloat16_t * __a,bfloat16x4x4_t val)35062 vst1_bf16_x4 (bfloat16_t * __a, bfloat16x4x4_t val)
35063 {
35064 union { bfloat16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
35065 __builtin_aarch64_st1x4v4bf ((__builtin_aarch64_simd_bf *) __a, __u.__o);
35066 }
35067
35068 __extension__ extern __inline void
35069 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_bf16_x4(bfloat16_t * __a,bfloat16x8x4_t val)35070 vst1q_bf16_x4 (bfloat16_t * __a, bfloat16x8x4_t val)
35071 {
35072 union { bfloat16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val };
35073 __builtin_aarch64_st1x4v8bf ((__builtin_aarch64_simd_bf *) __a, __u.__o);
35074 }
35075
35076 __extension__ extern __inline void
35077 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_bf16(bfloat16_t * __a,bfloat16x8_t __b)35078 vst1q_bf16 (bfloat16_t *__a, bfloat16x8_t __b)
35079 {
35080 __builtin_aarch64_st1v8bf (__a, __b);
35081 }
35082
35083 __extension__ extern __inline void
35084 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1_lane_bf16(bfloat16_t * __a,bfloat16x4_t __b,const int __lane)35085 vst1_lane_bf16 (bfloat16_t *__a, bfloat16x4_t __b, const int __lane)
35086 {
35087 *__a = __aarch64_vget_lane_any (__b, __lane);
35088 }
35089
35090 __extension__ extern __inline void
35091 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst1q_lane_bf16(bfloat16_t * __a,bfloat16x8_t __b,const int __lane)35092 vst1q_lane_bf16 (bfloat16_t *__a, bfloat16x8_t __b, const int __lane)
35093 {
35094 *__a = __aarch64_vget_lane_any (__b, __lane);
35095 }
35096
35097 __extension__ extern __inline void
35098 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2_bf16(bfloat16_t * __a,bfloat16x4x2_t __val)35099 vst2_bf16 (bfloat16_t * __a, bfloat16x4x2_t __val)
35100 {
35101 __builtin_aarch64_simd_oi __o;
35102 bfloat16x8x2_t __temp;
35103 __temp.val[0] = vcombine_bf16 (__val.val[0], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35104 __temp.val[1] = vcombine_bf16 (__val.val[1], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35105 __o = __builtin_aarch64_set_qregoiv8bf (__o, __temp.val[0], 0);
35106 __o = __builtin_aarch64_set_qregoiv8bf (__o, __temp.val[1], 1);
35107 __builtin_aarch64_st2v4bf (__a, __o);
35108 }
35109
35110 __extension__ extern __inline void
35111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst2q_bf16(bfloat16_t * __a,bfloat16x8x2_t __val)35112 vst2q_bf16 (bfloat16_t * __a, bfloat16x8x2_t __val)
35113 {
35114 __builtin_aarch64_simd_oi __o;
35115 __o = __builtin_aarch64_set_qregoiv8bf (__o, __val.val[0], 0);
35116 __o = __builtin_aarch64_set_qregoiv8bf (__o, __val.val[1], 1);
35117 __builtin_aarch64_st2v8bf (__a, __o);
35118 }
35119
35120 __extension__ extern __inline void
35121 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3_bf16(bfloat16_t * __a,bfloat16x4x3_t __val)35122 vst3_bf16 (bfloat16_t * __a, bfloat16x4x3_t __val)
35123 {
35124 __builtin_aarch64_simd_ci __o;
35125 bfloat16x8x3_t __temp;
35126 __temp.val[0] = vcombine_bf16 (__val.val[0], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35127 __temp.val[1] = vcombine_bf16 (__val.val[1], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35128 __temp.val[2] = vcombine_bf16 (__val.val[2], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35129 __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __temp.val[0], 0);
35130 __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __temp.val[1], 1);
35131 __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __temp.val[2], 2);
35132 __builtin_aarch64_st3v4bf ((__builtin_aarch64_simd_bf *) __a, __o);
35133 }
35134
35135 __extension__ extern __inline void
35136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst3q_bf16(bfloat16_t * __a,bfloat16x8x3_t __val)35137 vst3q_bf16 (bfloat16_t * __a, bfloat16x8x3_t __val)
35138 {
35139 __builtin_aarch64_simd_ci __o;
35140 __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __val.val[0], 0);
35141 __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __val.val[1], 1);
35142 __o = __builtin_aarch64_set_qregciv8bf (__o, (bfloat16x8_t) __val.val[2], 2);
35143 __builtin_aarch64_st3v8bf ((__builtin_aarch64_simd_bf *) __a, __o);
35144 }
35145
35146 __extension__ extern __inline void
35147 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4_bf16(bfloat16_t * __a,bfloat16x4x4_t __val)35148 vst4_bf16 (bfloat16_t * __a, bfloat16x4x4_t __val)
35149 {
35150 __builtin_aarch64_simd_xi __o;
35151 bfloat16x8x4_t __temp;
35152 __temp.val[0] = vcombine_bf16 (__val.val[0], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35153 __temp.val[1] = vcombine_bf16 (__val.val[1], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35154 __temp.val[2] = vcombine_bf16 (__val.val[2], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35155 __temp.val[3] = vcombine_bf16 (__val.val[3], vcreate_bf16 (__AARCH64_UINT64_C (0)));
35156 __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __temp.val[0], 0);
35157 __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __temp.val[1], 1);
35158 __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __temp.val[2], 2);
35159 __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __temp.val[3], 3);
35160 __builtin_aarch64_st4v4bf ((__builtin_aarch64_simd_bf *) __a, __o);
35161 }
35162
35163 __extension__ extern __inline void
35164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vst4q_bf16(bfloat16_t * __a,bfloat16x8x4_t __val)35165 vst4q_bf16 (bfloat16_t * __a, bfloat16x8x4_t __val)
35166 {
35167 __builtin_aarch64_simd_xi __o;
35168 __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __val.val[0], 0);
35169 __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __val.val[1], 1);
35170 __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __val.val[2], 2);
35171 __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __val.val[3], 3);
35172 __builtin_aarch64_st4v8bf ((__builtin_aarch64_simd_bf *) __a, __o);
35173 }
35174
35175 /* vreinterpret */
35176
35177 __extension__ extern __inline bfloat16x4_t
35178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_u8(uint8x8_t __a)35179 vreinterpret_bf16_u8 (uint8x8_t __a)
35180 {
35181 return (bfloat16x4_t)__a;
35182 }
35183
35184 __extension__ extern __inline bfloat16x4_t
35185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_u16(uint16x4_t __a)35186 vreinterpret_bf16_u16 (uint16x4_t __a)
35187 {
35188 return (bfloat16x4_t)__a;
35189 }
35190
35191 __extension__ extern __inline bfloat16x4_t
35192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_u32(uint32x2_t __a)35193 vreinterpret_bf16_u32 (uint32x2_t __a)
35194 {
35195 return (bfloat16x4_t)__a;
35196 }
35197
35198 __extension__ extern __inline bfloat16x4_t
35199 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_u64(uint64x1_t __a)35200 vreinterpret_bf16_u64 (uint64x1_t __a)
35201 {
35202 return (bfloat16x4_t)__a;
35203 }
35204
35205 __extension__ extern __inline bfloat16x4_t
35206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_s8(int8x8_t __a)35207 vreinterpret_bf16_s8 (int8x8_t __a)
35208 {
35209 return (bfloat16x4_t)__a;
35210 }
35211
35212 __extension__ extern __inline bfloat16x4_t
35213 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_s16(int16x4_t __a)35214 vreinterpret_bf16_s16 (int16x4_t __a)
35215 {
35216 return (bfloat16x4_t)__a;
35217 }
35218
35219 __extension__ extern __inline bfloat16x4_t
35220 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_s32(int32x2_t __a)35221 vreinterpret_bf16_s32 (int32x2_t __a)
35222 {
35223 return (bfloat16x4_t)__a;
35224 }
35225
35226 __extension__ extern __inline bfloat16x4_t
35227 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_s64(int64x1_t __a)35228 vreinterpret_bf16_s64 (int64x1_t __a)
35229 {
35230 return (bfloat16x4_t)__a;
35231 }
35232
35233 __extension__ extern __inline bfloat16x4_t
35234 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_p8(poly8x8_t __a)35235 vreinterpret_bf16_p8 (poly8x8_t __a)
35236 {
35237 return (bfloat16x4_t)__a;
35238 }
35239
35240 __extension__ extern __inline bfloat16x4_t
35241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_p16(poly16x4_t __a)35242 vreinterpret_bf16_p16 (poly16x4_t __a)
35243 {
35244 return (bfloat16x4_t)__a;
35245 }
35246
35247 __extension__ extern __inline bfloat16x4_t
35248 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_p64(poly64x1_t __a)35249 vreinterpret_bf16_p64 (poly64x1_t __a)
35250 {
35251 return (bfloat16x4_t)__a;
35252 }
35253
35254 __extension__ extern __inline bfloat16x4_t
35255 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_f16(float16x4_t __a)35256 vreinterpret_bf16_f16 (float16x4_t __a)
35257 {
35258 return (bfloat16x4_t)__a;
35259 }
35260
35261 __extension__ extern __inline bfloat16x4_t
35262 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_f32(float32x2_t __a)35263 vreinterpret_bf16_f32 (float32x2_t __a)
35264 {
35265 return (bfloat16x4_t)__a;
35266 }
35267
35268 __extension__ extern __inline bfloat16x4_t
35269 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_bf16_f64(float64x1_t __a)35270 vreinterpret_bf16_f64 (float64x1_t __a)
35271 {
35272 return (bfloat16x4_t)__a;
35273 }
35274
35275 __extension__ extern __inline bfloat16x8_t
35276 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_u8(uint8x16_t __a)35277 vreinterpretq_bf16_u8 (uint8x16_t __a)
35278 {
35279 return (bfloat16x8_t)__a;
35280 }
35281
35282 __extension__ extern __inline bfloat16x8_t
35283 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_u16(uint16x8_t __a)35284 vreinterpretq_bf16_u16 (uint16x8_t __a)
35285 {
35286 return (bfloat16x8_t)__a;
35287 }
35288
35289 __extension__ extern __inline bfloat16x8_t
35290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_u32(uint32x4_t __a)35291 vreinterpretq_bf16_u32 (uint32x4_t __a)
35292 {
35293 return (bfloat16x8_t)__a;
35294 }
35295
35296 __extension__ extern __inline bfloat16x8_t
35297 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_u64(uint64x2_t __a)35298 vreinterpretq_bf16_u64 (uint64x2_t __a)
35299 {
35300 return (bfloat16x8_t)__a;
35301 }
35302
35303 __extension__ extern __inline bfloat16x8_t
35304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_s8(int8x16_t __a)35305 vreinterpretq_bf16_s8 (int8x16_t __a)
35306 {
35307 return (bfloat16x8_t)__a;
35308 }
35309
35310 __extension__ extern __inline bfloat16x8_t
35311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_s16(int16x8_t __a)35312 vreinterpretq_bf16_s16 (int16x8_t __a)
35313 {
35314 return (bfloat16x8_t)__a;
35315 }
35316
35317 __extension__ extern __inline bfloat16x8_t
35318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_s32(int32x4_t __a)35319 vreinterpretq_bf16_s32 (int32x4_t __a)
35320 {
35321 return (bfloat16x8_t)__a;
35322 }
35323
35324 __extension__ extern __inline bfloat16x8_t
35325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_s64(int64x2_t __a)35326 vreinterpretq_bf16_s64 (int64x2_t __a)
35327 {
35328 return (bfloat16x8_t)__a;
35329 }
35330
35331 __extension__ extern __inline bfloat16x8_t
35332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_p8(poly8x16_t __a)35333 vreinterpretq_bf16_p8 (poly8x16_t __a)
35334 {
35335 return (bfloat16x8_t)__a;
35336 }
35337
35338 __extension__ extern __inline bfloat16x8_t
35339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_p16(poly16x8_t __a)35340 vreinterpretq_bf16_p16 (poly16x8_t __a)
35341 {
35342 return (bfloat16x8_t)__a;
35343 }
35344
35345 __extension__ extern __inline bfloat16x8_t
35346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_p64(poly64x2_t __a)35347 vreinterpretq_bf16_p64 (poly64x2_t __a)
35348 {
35349 return (bfloat16x8_t)__a;
35350 }
35351
35352 __extension__ extern __inline bfloat16x8_t
35353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_p128(poly128_t __a)35354 vreinterpretq_bf16_p128 (poly128_t __a)
35355 {
35356 return (bfloat16x8_t)__a;
35357 }
35358
35359 __extension__ extern __inline bfloat16x8_t
35360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_f16(float16x8_t __a)35361 vreinterpretq_bf16_f16 (float16x8_t __a)
35362 {
35363 return (bfloat16x8_t)__a;
35364 }
35365
35366 __extension__ extern __inline bfloat16x8_t
35367 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_f32(float32x4_t __a)35368 vreinterpretq_bf16_f32 (float32x4_t __a)
35369 {
35370 return (bfloat16x8_t)__a;
35371 }
35372
35373 __extension__ extern __inline bfloat16x8_t
35374 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_bf16_f64(float64x2_t __a)35375 vreinterpretq_bf16_f64 (float64x2_t __a)
35376 {
35377 return (bfloat16x8_t)__a;
35378 }
35379
35380 __extension__ extern __inline int8x8_t
35381 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s8_bf16(bfloat16x4_t __a)35382 vreinterpret_s8_bf16 (bfloat16x4_t __a)
35383 {
35384 return (int8x8_t)__a;
35385 }
35386
35387 __extension__ extern __inline int16x4_t
35388 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s16_bf16(bfloat16x4_t __a)35389 vreinterpret_s16_bf16 (bfloat16x4_t __a)
35390 {
35391 return (int16x4_t)__a;
35392 }
35393
35394 __extension__ extern __inline int32x2_t
35395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s32_bf16(bfloat16x4_t __a)35396 vreinterpret_s32_bf16 (bfloat16x4_t __a)
35397 {
35398 return (int32x2_t)__a;
35399 }
35400
35401 __extension__ extern __inline int64x1_t
35402 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_s64_bf16(bfloat16x4_t __a)35403 vreinterpret_s64_bf16 (bfloat16x4_t __a)
35404 {
35405 return (int64x1_t)__a;
35406 }
35407
35408 __extension__ extern __inline uint8x8_t
35409 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u8_bf16(bfloat16x4_t __a)35410 vreinterpret_u8_bf16 (bfloat16x4_t __a)
35411 {
35412 return (uint8x8_t)__a;
35413 }
35414
35415 __extension__ extern __inline uint16x4_t
35416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u16_bf16(bfloat16x4_t __a)35417 vreinterpret_u16_bf16 (bfloat16x4_t __a)
35418 {
35419 return (uint16x4_t)__a;
35420 }
35421
35422 __extension__ extern __inline uint32x2_t
35423 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u32_bf16(bfloat16x4_t __a)35424 vreinterpret_u32_bf16 (bfloat16x4_t __a)
35425 {
35426 return (uint32x2_t)__a;
35427 }
35428
35429 __extension__ extern __inline uint64x1_t
35430 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_u64_bf16(bfloat16x4_t __a)35431 vreinterpret_u64_bf16 (bfloat16x4_t __a)
35432 {
35433 return (uint64x1_t)__a;
35434 }
35435
35436 __extension__ extern __inline float16x4_t
35437 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f16_bf16(bfloat16x4_t __a)35438 vreinterpret_f16_bf16 (bfloat16x4_t __a)
35439 {
35440 return (float16x4_t)__a;
35441 }
35442
35443 __extension__ extern __inline float32x2_t
35444 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f32_bf16(bfloat16x4_t __a)35445 vreinterpret_f32_bf16 (bfloat16x4_t __a)
35446 {
35447 return (float32x2_t)__a;
35448 }
35449
35450 __extension__ extern __inline float64x1_t
35451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_f64_bf16(bfloat16x4_t __a)35452 vreinterpret_f64_bf16 (bfloat16x4_t __a)
35453 {
35454 return (float64x1_t)__a;
35455 }
35456
35457 __extension__ extern __inline poly8x8_t
35458 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p8_bf16(bfloat16x4_t __a)35459 vreinterpret_p8_bf16 (bfloat16x4_t __a)
35460 {
35461 return (poly8x8_t)__a;
35462 }
35463
35464 __extension__ extern __inline poly16x4_t
35465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p16_bf16(bfloat16x4_t __a)35466 vreinterpret_p16_bf16 (bfloat16x4_t __a)
35467 {
35468 return (poly16x4_t)__a;
35469 }
35470
35471 __extension__ extern __inline poly64x1_t
35472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpret_p64_bf16(bfloat16x4_t __a)35473 vreinterpret_p64_bf16 (bfloat16x4_t __a)
35474 {
35475 return (poly64x1_t)__a;
35476 }
35477
35478 __extension__ extern __inline int8x16_t
35479 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s8_bf16(bfloat16x8_t __a)35480 vreinterpretq_s8_bf16 (bfloat16x8_t __a)
35481 {
35482 return (int8x16_t)__a;
35483 }
35484
35485 __extension__ extern __inline int16x8_t
35486 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s16_bf16(bfloat16x8_t __a)35487 vreinterpretq_s16_bf16 (bfloat16x8_t __a)
35488 {
35489 return (int16x8_t)__a;
35490 }
35491
35492 __extension__ extern __inline int32x4_t
35493 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s32_bf16(bfloat16x8_t __a)35494 vreinterpretq_s32_bf16 (bfloat16x8_t __a)
35495 {
35496 return (int32x4_t)__a;
35497 }
35498
35499 __extension__ extern __inline int64x2_t
35500 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_s64_bf16(bfloat16x8_t __a)35501 vreinterpretq_s64_bf16 (bfloat16x8_t __a)
35502 {
35503 return (int64x2_t)__a;
35504 }
35505
35506 __extension__ extern __inline uint8x16_t
35507 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u8_bf16(bfloat16x8_t __a)35508 vreinterpretq_u8_bf16 (bfloat16x8_t __a)
35509 {
35510 return (uint8x16_t)__a;
35511 }
35512
35513 __extension__ extern __inline uint16x8_t
35514 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u16_bf16(bfloat16x8_t __a)35515 vreinterpretq_u16_bf16 (bfloat16x8_t __a)
35516 {
35517 return (uint16x8_t)__a;
35518 }
35519
35520 __extension__ extern __inline uint32x4_t
35521 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u32_bf16(bfloat16x8_t __a)35522 vreinterpretq_u32_bf16 (bfloat16x8_t __a)
35523 {
35524 return (uint32x4_t)__a;
35525 }
35526
35527 __extension__ extern __inline uint64x2_t
35528 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_u64_bf16(bfloat16x8_t __a)35529 vreinterpretq_u64_bf16 (bfloat16x8_t __a)
35530 {
35531 return (uint64x2_t)__a;
35532 }
35533
35534 __extension__ extern __inline float16x8_t
35535 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f16_bf16(bfloat16x8_t __a)35536 vreinterpretq_f16_bf16 (bfloat16x8_t __a)
35537 {
35538 return (float16x8_t)__a;
35539 }
35540
35541 __extension__ extern __inline float32x4_t
35542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f32_bf16(bfloat16x8_t __a)35543 vreinterpretq_f32_bf16 (bfloat16x8_t __a)
35544 {
35545 return (float32x4_t)__a;
35546 }
35547
35548 __extension__ extern __inline float64x2_t
35549 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_f64_bf16(bfloat16x8_t __a)35550 vreinterpretq_f64_bf16 (bfloat16x8_t __a)
35551 {
35552 return (float64x2_t)__a;
35553 }
35554
35555 __extension__ extern __inline poly8x16_t
35556 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p8_bf16(bfloat16x8_t __a)35557 vreinterpretq_p8_bf16 (bfloat16x8_t __a)
35558 {
35559 return (poly8x16_t)__a;
35560 }
35561
35562 __extension__ extern __inline poly16x8_t
35563 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p16_bf16(bfloat16x8_t __a)35564 vreinterpretq_p16_bf16 (bfloat16x8_t __a)
35565 {
35566 return (poly16x8_t)__a;
35567 }
35568
35569 __extension__ extern __inline poly64x2_t
35570 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p64_bf16(bfloat16x8_t __a)35571 vreinterpretq_p64_bf16 (bfloat16x8_t __a)
35572 {
35573 return (poly64x2_t)__a;
35574 }
35575
35576 __extension__ extern __inline poly128_t
35577 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vreinterpretq_p128_bf16(bfloat16x8_t __a)35578 vreinterpretq_p128_bf16 (bfloat16x8_t __a)
35579 {
35580 return (poly128_t)__a;
35581 }
35582
35583 __extension__ extern __inline float32x2_t
35584 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfdot_f32(float32x2_t __r,bfloat16x4_t __a,bfloat16x4_t __b)35585 vbfdot_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b)
35586 {
35587 return __builtin_aarch64_bfdotv2sf (__r, __a, __b);
35588 }
35589
35590 __extension__ extern __inline float32x4_t
35591 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfdotq_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x8_t __b)35592 vbfdotq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
35593 {
35594 return __builtin_aarch64_bfdotv4sf (__r, __a, __b);
35595 }
35596
35597 __extension__ extern __inline float32x2_t
35598 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfdot_lane_f32(float32x2_t __r,bfloat16x4_t __a,bfloat16x4_t __b,const int __index)35599 vbfdot_lane_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b,
35600 const int __index)
35601 {
35602 return __builtin_aarch64_bfdot_lanev2sf (__r, __a, __b, __index);
35603 }
35604
35605 __extension__ extern __inline float32x4_t
35606 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfdotq_lane_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x4_t __b,const int __index)35607 vbfdotq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
35608 const int __index)
35609 {
35610 return __builtin_aarch64_bfdot_lanev4sf (__r, __a, __b, __index);
35611 }
35612
35613 __extension__ extern __inline float32x2_t
35614 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfdot_laneq_f32(float32x2_t __r,bfloat16x4_t __a,bfloat16x8_t __b,const int __index)35615 vbfdot_laneq_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x8_t __b,
35616 const int __index)
35617 {
35618 return __builtin_aarch64_bfdot_laneqv2sf (__r, __a, __b, __index);
35619 }
35620
35621 __extension__ extern __inline float32x4_t
35622 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfdotq_laneq_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x8_t __b,const int __index)35623 vbfdotq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
35624 const int __index)
35625 {
35626 return __builtin_aarch64_bfdot_laneqv4sf (__r, __a, __b, __index);
35627 }
35628
35629 __extension__ extern __inline float32x4_t
35630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfmmlaq_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x8_t __b)35631 vbfmmlaq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
35632
35633 {
35634 return __builtin_aarch64_bfmmlaqv4sf (__r, __a, __b);
35635 }
35636
35637 __extension__ extern __inline float32x4_t
35638 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfmlalbq_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x8_t __b)35639 vbfmlalbq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
35640 {
35641 return __builtin_aarch64_bfmlalbv4sf (__r, __a, __b);
35642 }
35643
35644 __extension__ extern __inline float32x4_t
35645 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfmlaltq_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x8_t __b)35646 vbfmlaltq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b)
35647 {
35648 return __builtin_aarch64_bfmlaltv4sf (__r, __a, __b);
35649 }
35650
35651 __extension__ extern __inline float32x4_t
35652 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfmlalbq_lane_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x4_t __b,const int __index)35653 vbfmlalbq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
35654 const int __index)
35655 {
35656 return __builtin_aarch64_bfmlalb_lanev4sf (__r, __a, __b, __index);
35657 }
35658
35659 __extension__ extern __inline float32x4_t
35660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfmlaltq_lane_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x4_t __b,const int __index)35661 vbfmlaltq_lane_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x4_t __b,
35662 const int __index)
35663 {
35664 return __builtin_aarch64_bfmlalt_lanev4sf (__r, __a, __b, __index);
35665 }
35666
35667 __extension__ extern __inline float32x4_t
35668 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfmlalbq_laneq_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x8_t __b,const int __index)35669 vbfmlalbq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
35670 const int __index)
35671 {
35672 return __builtin_aarch64_bfmlalb_lane_qv4sf (__r, __a, __b, __index);
35673 }
35674
35675 __extension__ extern __inline float32x4_t
35676 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vbfmlaltq_laneq_f32(float32x4_t __r,bfloat16x8_t __a,bfloat16x8_t __b,const int __index)35677 vbfmlaltq_laneq_f32 (float32x4_t __r, bfloat16x8_t __a, bfloat16x8_t __b,
35678 const int __index)
35679 {
35680 return __builtin_aarch64_bfmlalt_lane_qv4sf (__r, __a, __b, __index);
35681 }
35682
35683 __extension__ extern __inline bfloat16x4_t
35684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_low_bf16(bfloat16x8_t __a)35685 vget_low_bf16 (bfloat16x8_t __a)
35686 {
35687 return __builtin_aarch64_vget_lo_halfv8bf (__a);
35688 }
35689
35690 __extension__ extern __inline bfloat16x4_t
35691 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vget_high_bf16(bfloat16x8_t __a)35692 vget_high_bf16 (bfloat16x8_t __a)
35693 {
35694 return __builtin_aarch64_vget_hi_halfv8bf (__a);
35695 }
35696
35697 __extension__ extern __inline float32x4_t
35698 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_f32_bf16(bfloat16x4_t __a)35699 vcvt_f32_bf16 (bfloat16x4_t __a)
35700 {
35701 return __builtin_aarch64_vbfcvtv4bf (__a);
35702 }
35703
35704 __extension__ extern __inline float32x4_t
35705 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_low_f32_bf16(bfloat16x8_t __a)35706 vcvtq_low_f32_bf16 (bfloat16x8_t __a)
35707 {
35708 return __builtin_aarch64_vbfcvtv8bf (__a);
35709 }
35710
35711 __extension__ extern __inline float32x4_t
35712 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_high_f32_bf16(bfloat16x8_t __a)35713 vcvtq_high_f32_bf16 (bfloat16x8_t __a)
35714 {
35715 return __builtin_aarch64_vbfcvt_highv8bf (__a);
35716 }
35717
35718 __extension__ extern __inline bfloat16x4_t
35719 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvt_bf16_f32(float32x4_t __a)35720 vcvt_bf16_f32 (float32x4_t __a)
35721 {
35722 return __builtin_aarch64_bfcvtnv4bf (__a);
35723 }
35724
35725 __extension__ extern __inline bfloat16x8_t
35726 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_low_bf16_f32(float32x4_t __a)35727 vcvtq_low_bf16_f32 (float32x4_t __a)
35728 {
35729 return __builtin_aarch64_bfcvtn_qv8bf (__a);
35730 }
35731
35732 __extension__ extern __inline bfloat16x8_t
35733 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcvtq_high_bf16_f32(bfloat16x8_t __inactive,float32x4_t __a)35734 vcvtq_high_bf16_f32 (bfloat16x8_t __inactive, float32x4_t __a)
35735 {
35736 return __builtin_aarch64_bfcvtn2v8bf (__inactive, __a);
35737 }
35738
35739 __extension__ extern __inline bfloat16x4_t
35740 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_lane_bf16(bfloat16x4_t __a,const int __lane1,bfloat16x4_t __b,const int __lane2)35741 vcopy_lane_bf16 (bfloat16x4_t __a, const int __lane1,
35742 bfloat16x4_t __b, const int __lane2)
35743 {
35744 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
35745 __a, __lane1);
35746 }
35747
35748 __extension__ extern __inline bfloat16x8_t
35749 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_lane_bf16(bfloat16x8_t __a,const int __lane1,bfloat16x4_t __b,const int __lane2)35750 vcopyq_lane_bf16 (bfloat16x8_t __a, const int __lane1,
35751 bfloat16x4_t __b, const int __lane2)
35752 {
35753 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
35754 __a, __lane1);
35755 }
35756
35757 __extension__ extern __inline bfloat16x4_t
35758 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopy_laneq_bf16(bfloat16x4_t __a,const int __lane1,bfloat16x8_t __b,const int __lane2)35759 vcopy_laneq_bf16 (bfloat16x4_t __a, const int __lane1,
35760 bfloat16x8_t __b, const int __lane2)
35761 {
35762 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
35763 __a, __lane1);
35764 }
35765
35766 __extension__ extern __inline bfloat16x8_t
35767 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vcopyq_laneq_bf16(bfloat16x8_t __a,const int __lane1,bfloat16x8_t __b,const int __lane2)35768 vcopyq_laneq_bf16 (bfloat16x8_t __a, const int __lane1,
35769 bfloat16x8_t __b, const int __lane2)
35770 {
35771 return __aarch64_vset_lane_any (__aarch64_vget_lane_any (__b, __lane2),
35772 __a, __lane1);
35773 }
35774
__LD2_LANE_FUNC(bfloat16x4x2_t,bfloat16x4_t,bfloat16x8x2_t,bfloat16_t,v4bf,v8bf,bf,bf16,bfloat16x8_t)35775 __LD2_LANE_FUNC (bfloat16x4x2_t, bfloat16x4_t, bfloat16x8x2_t, bfloat16_t, v4bf,
35776 v8bf, bf, bf16, bfloat16x8_t)
35777 __LD2Q_LANE_FUNC (bfloat16x8x2_t, bfloat16x8_t, bfloat16_t, v8bf, bf, bf16)
35778 __LD3_LANE_FUNC (bfloat16x4x3_t, bfloat16x4_t, bfloat16x8x3_t, bfloat16_t, v4bf,
35779 v8bf, bf, bf16, bfloat16x8_t)
35780 __LD3Q_LANE_FUNC (bfloat16x8x3_t, bfloat16x8_t, bfloat16_t, v8bf, bf, bf16)
35781 __LD4_LANE_FUNC (bfloat16x4x4_t, bfloat16x4_t, bfloat16x8x4_t, bfloat16_t, v4bf,
35782 v8bf, bf, bf16, bfloat16x8_t)
35783 __LD4Q_LANE_FUNC (bfloat16x8x4_t, bfloat16x8_t, bfloat16_t, v8bf, bf, bf16)
35784
35785 __ST2_LANE_FUNC (bfloat16x4x2_t, bfloat16x8x2_t, bfloat16_t, v4bf, v8bf, bf,
35786 bf16, bfloat16x8_t)
35787 __ST2Q_LANE_FUNC (bfloat16x8x2_t, bfloat16_t, v8bf, bf, bf16)
35788 __ST3_LANE_FUNC (bfloat16x4x3_t, bfloat16x8x3_t, bfloat16_t, v4bf, v8bf, bf,
35789 bf16, bfloat16x8_t)
35790 __ST3Q_LANE_FUNC (bfloat16x8x3_t, bfloat16_t, v8bf, bf, bf16)
35791 __ST4_LANE_FUNC (bfloat16x4x4_t, bfloat16x8x4_t, bfloat16_t, v4bf, v8bf, bf,
35792 bf16, bfloat16x8_t)
35793 __ST4Q_LANE_FUNC (bfloat16x8x4_t, bfloat16_t, v8bf, bf, bf16)
35794
35795 #pragma GCC pop_options
35796
35797 /* AdvSIMD 8-bit Integer Matrix Multiply (I8MM) intrinsics. */
35798
35799 #pragma GCC push_options
35800 #pragma GCC target ("arch=armv8.2-a+i8mm")
35801
35802 __extension__ extern __inline int32x2_t
35803 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
35804 vusdot_s32 (int32x2_t __r, uint8x8_t __a, int8x8_t __b)
35805 {
35806 return __builtin_aarch64_usdotv8qi_ssus (__r, __a, __b);
35807 }
35808
35809 __extension__ extern __inline int32x4_t
35810 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vusdotq_s32(int32x4_t __r,uint8x16_t __a,int8x16_t __b)35811 vusdotq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b)
35812 {
35813 return __builtin_aarch64_usdotv16qi_ssus (__r, __a, __b);
35814 }
35815
35816 __extension__ extern __inline int32x2_t
35817 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vusdot_lane_s32(int32x2_t __r,uint8x8_t __a,int8x8_t __b,const int __index)35818 vusdot_lane_s32 (int32x2_t __r, uint8x8_t __a, int8x8_t __b, const int __index)
35819 {
35820 return __builtin_aarch64_usdot_lanev8qi_ssuss (__r, __a, __b, __index);
35821 }
35822
35823 __extension__ extern __inline int32x2_t
35824 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vusdot_laneq_s32(int32x2_t __r,uint8x8_t __a,int8x16_t __b,const int __index)35825 vusdot_laneq_s32 (int32x2_t __r, uint8x8_t __a, int8x16_t __b,
35826 const int __index)
35827 {
35828 return __builtin_aarch64_usdot_laneqv8qi_ssuss (__r, __a, __b, __index);
35829 }
35830
35831 __extension__ extern __inline int32x4_t
35832 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vusdotq_lane_s32(int32x4_t __r,uint8x16_t __a,int8x8_t __b,const int __index)35833 vusdotq_lane_s32 (int32x4_t __r, uint8x16_t __a, int8x8_t __b,
35834 const int __index)
35835 {
35836 return __builtin_aarch64_usdot_lanev16qi_ssuss (__r, __a, __b, __index);
35837 }
35838
35839 __extension__ extern __inline int32x4_t
35840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vusdotq_laneq_s32(int32x4_t __r,uint8x16_t __a,int8x16_t __b,const int __index)35841 vusdotq_laneq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b,
35842 const int __index)
35843 {
35844 return __builtin_aarch64_usdot_laneqv16qi_ssuss (__r, __a, __b, __index);
35845 }
35846
35847 __extension__ extern __inline int32x2_t
35848 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsudot_lane_s32(int32x2_t __r,int8x8_t __a,uint8x8_t __b,const int __index)35849 vsudot_lane_s32 (int32x2_t __r, int8x8_t __a, uint8x8_t __b, const int __index)
35850 {
35851 return __builtin_aarch64_sudot_lanev8qi_sssus (__r, __a, __b, __index);
35852 }
35853
35854 __extension__ extern __inline int32x2_t
35855 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsudot_laneq_s32(int32x2_t __r,int8x8_t __a,uint8x16_t __b,const int __index)35856 vsudot_laneq_s32 (int32x2_t __r, int8x8_t __a, uint8x16_t __b,
35857 const int __index)
35858 {
35859 return __builtin_aarch64_sudot_laneqv8qi_sssus (__r, __a, __b, __index);
35860 }
35861
35862 __extension__ extern __inline int32x4_t
35863 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsudotq_lane_s32(int32x4_t __r,int8x16_t __a,uint8x8_t __b,const int __index)35864 vsudotq_lane_s32 (int32x4_t __r, int8x16_t __a, uint8x8_t __b,
35865 const int __index)
35866 {
35867 return __builtin_aarch64_sudot_lanev16qi_sssus (__r, __a, __b, __index);
35868 }
35869
35870 __extension__ extern __inline int32x4_t
35871 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vsudotq_laneq_s32(int32x4_t __r,int8x16_t __a,uint8x16_t __b,const int __index)35872 vsudotq_laneq_s32 (int32x4_t __r, int8x16_t __a, uint8x16_t __b,
35873 const int __index)
35874 {
35875 return __builtin_aarch64_sudot_laneqv16qi_sssus (__r, __a, __b, __index);
35876 }
35877
35878 /* Matrix Multiply-Accumulate. */
35879
35880 __extension__ extern __inline int32x4_t
35881 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmmlaq_s32(int32x4_t __r,int8x16_t __a,int8x16_t __b)35882 vmmlaq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b)
35883 {
35884 return __builtin_aarch64_simd_smmlav16qi (__r, __a, __b);
35885 }
35886
35887 __extension__ extern __inline uint32x4_t
35888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vmmlaq_u32(uint32x4_t __r,uint8x16_t __a,uint8x16_t __b)35889 vmmlaq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b)
35890 {
35891 return __builtin_aarch64_simd_ummlav16qi_uuuu (__r, __a, __b);
35892 }
35893
35894 __extension__ extern __inline int32x4_t
35895 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
vusmmlaq_s32(int32x4_t __r,uint8x16_t __a,int8x16_t __b)35896 vusmmlaq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b)
35897 {
35898 return __builtin_aarch64_simd_usmmlav16qi_ssus (__r, __a, __b);
35899 }
35900
35901 #pragma GCC pop_options
35902
poly8x8_t(__always_inline__,__gnu_inline__,__artificial__)35903 __extension__ extern __inline poly8x8_t
35904 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
35905 vadd_p8 (poly8x8_t __a, poly8x8_t __b)
35906 {
35907 return __a ^ __b;
35908 }
35909
poly16x4_t(__always_inline__,__gnu_inline__,__artificial__)35910 __extension__ extern __inline poly16x4_t
35911 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
35912 vadd_p16 (poly16x4_t __a, poly16x4_t __b)
35913 {
35914 return __a ^ __b;
35915 }
35916
poly64x1_t(__always_inline__,__gnu_inline__,__artificial__)35917 __extension__ extern __inline poly64x1_t
35918 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
35919 vadd_p64 (poly64x1_t __a, poly64x1_t __b)
35920 {
35921 return __a ^ __b;
35922 }
35923
poly8x16_t(__always_inline__,__gnu_inline__,__artificial__)35924 __extension__ extern __inline poly8x16_t
35925 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
35926 vaddq_p8 (poly8x16_t __a, poly8x16_t __b)
35927 {
35928 return __a ^ __b;
35929 }
35930
poly16x8_t(__always_inline__,__gnu_inline__,__artificial__)35931 __extension__ extern __inline poly16x8_t
35932 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
35933 vaddq_p16 (poly16x8_t __a, poly16x8_t __b)
35934 {
35935 return __a ^__b;
35936 }
35937
poly64x2_t(__always_inline__,__gnu_inline__,__artificial__)35938 __extension__ extern __inline poly64x2_t
35939 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
35940 vaddq_p64 (poly64x2_t __a, poly64x2_t __b)
35941 {
35942 return __a ^ __b;
35943 }
35944
poly128_t(__always_inline__,__gnu_inline__,__artificial__)35945 __extension__ extern __inline poly128_t
35946 __attribute ((__always_inline__, __gnu_inline__, __artificial__))
35947 vaddq_p128 (poly128_t __a, poly128_t __b)
35948 {
35949 return __a ^ __b;
35950 }
35951
35952 #undef __aarch64_vget_lane_any
35953
35954 #undef __aarch64_vdup_lane_any
35955 #undef __aarch64_vdup_lane_f16
35956 #undef __aarch64_vdup_lane_f32
35957 #undef __aarch64_vdup_lane_f64
35958 #undef __aarch64_vdup_lane_p8
35959 #undef __aarch64_vdup_lane_p16
35960 #undef __aarch64_vdup_lane_s8
35961 #undef __aarch64_vdup_lane_s16
35962 #undef __aarch64_vdup_lane_s32
35963 #undef __aarch64_vdup_lane_s64
35964 #undef __aarch64_vdup_lane_u8
35965 #undef __aarch64_vdup_lane_u16
35966 #undef __aarch64_vdup_lane_u32
35967 #undef __aarch64_vdup_lane_u64
35968 #undef __aarch64_vdup_laneq_f16
35969 #undef __aarch64_vdup_laneq_f32
35970 #undef __aarch64_vdup_laneq_f64
35971 #undef __aarch64_vdup_laneq_p8
35972 #undef __aarch64_vdup_laneq_p16
35973 #undef __aarch64_vdup_laneq_s8
35974 #undef __aarch64_vdup_laneq_s16
35975 #undef __aarch64_vdup_laneq_s32
35976 #undef __aarch64_vdup_laneq_s64
35977 #undef __aarch64_vdup_laneq_u8
35978 #undef __aarch64_vdup_laneq_u16
35979 #undef __aarch64_vdup_laneq_u32
35980 #undef __aarch64_vdup_laneq_u64
35981 #undef __aarch64_vdupq_lane_f16
35982 #undef __aarch64_vdupq_lane_f32
35983 #undef __aarch64_vdupq_lane_f64
35984 #undef __aarch64_vdupq_lane_p8
35985 #undef __aarch64_vdupq_lane_p16
35986 #undef __aarch64_vdupq_lane_s8
35987 #undef __aarch64_vdupq_lane_s16
35988 #undef __aarch64_vdupq_lane_s32
35989 #undef __aarch64_vdupq_lane_s64
35990 #undef __aarch64_vdupq_lane_u8
35991 #undef __aarch64_vdupq_lane_u16
35992 #undef __aarch64_vdupq_lane_u32
35993 #undef __aarch64_vdupq_lane_u64
35994 #undef __aarch64_vdupq_laneq_f16
35995 #undef __aarch64_vdupq_laneq_f32
35996 #undef __aarch64_vdupq_laneq_f64
35997 #undef __aarch64_vdupq_laneq_p8
35998 #undef __aarch64_vdupq_laneq_p16
35999 #undef __aarch64_vdupq_laneq_s8
36000 #undef __aarch64_vdupq_laneq_s16
36001 #undef __aarch64_vdupq_laneq_s32
36002 #undef __aarch64_vdupq_laneq_s64
36003 #undef __aarch64_vdupq_laneq_u8
36004 #undef __aarch64_vdupq_laneq_u16
36005 #undef __aarch64_vdupq_laneq_u32
36006 #undef __aarch64_vdupq_laneq_u64
36007
36008 #undef __LD2_LANE_FUNC
36009 #undef __LD2Q_LANE_FUNC
36010 #undef __LD3_LANE_FUNC
36011 #undef __LD3Q_LANE_FUNC
36012 #undef __LD4_LANE_FUNC
36013 #undef __LD4Q_LANE_FUNC
36014 #undef __ST2_LANE_FUNC
36015 #undef __ST2Q_LANE_FUNC
36016 #undef __ST3_LANE_FUNC
36017 #undef __ST3Q_LANE_FUNC
36018 #undef __ST4_LANE_FUNC
36019 #undef __ST4Q_LANE_FUNC
36020
36021 #endif
36022