1 /* ARM NEON intrinsics include file. 2 3 Copyright (C) 2006-2014 Free Software Foundation, Inc. 4 Contributed by CodeSourcery. 5 6 This file is part of GCC. 7 8 GCC is free software; you can redistribute it and/or modify it 9 under the terms of the GNU General Public License as published 10 by the Free Software Foundation; either version 3, or (at your 11 option) any later version. 12 13 GCC is distributed in the hope that it will be useful, but WITHOUT 14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 15 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 16 License for more details. 17 18 Under Section 7 of GPL version 3, you are granted additional 19 permissions described in the GCC Runtime Library Exception, version 20 3.1, as published by the Free Software Foundation. 21 22 You should have received a copy of the GNU General Public License and 23 a copy of the GCC Runtime Library Exception along with this program; 24 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 25 <http://www.gnu.org/licenses/>. */ 26 27 #ifndef _GCC_ARM_NEON_H 28 #define _GCC_ARM_NEON_H 1 29 30 #ifndef __ARM_NEON__ 31 #error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use arm_neon.h 32 #else 33 34 #ifdef __cplusplus 35 extern "C" { 36 #endif 37 38 #include <stdint.h> 39 40 typedef __builtin_neon_qi int8x8_t __attribute__ ((__vector_size__ (8))); 41 typedef __builtin_neon_hi int16x4_t __attribute__ ((__vector_size__ (8))); 42 typedef __builtin_neon_si int32x2_t __attribute__ ((__vector_size__ (8))); 43 typedef __builtin_neon_di int64x1_t; 44 typedef __builtin_neon_hf float16x4_t __attribute__ ((__vector_size__ (8))); 45 typedef __builtin_neon_sf float32x2_t __attribute__ ((__vector_size__ (8))); 46 typedef __builtin_neon_poly8 poly8x8_t __attribute__ ((__vector_size__ (8))); 47 typedef __builtin_neon_poly16 poly16x4_t __attribute__ ((__vector_size__ (8))); 48 #ifdef __ARM_FEATURE_CRYPTO 49 typedef __builtin_neon_poly64 poly64x1_t; 50 #endif 51 typedef __builtin_neon_uqi uint8x8_t __attribute__ ((__vector_size__ (8))); 52 typedef __builtin_neon_uhi uint16x4_t __attribute__ ((__vector_size__ (8))); 53 typedef __builtin_neon_usi uint32x2_t __attribute__ ((__vector_size__ (8))); 54 typedef __builtin_neon_udi uint64x1_t; 55 typedef __builtin_neon_qi int8x16_t __attribute__ ((__vector_size__ (16))); 56 typedef __builtin_neon_hi int16x8_t __attribute__ ((__vector_size__ (16))); 57 typedef __builtin_neon_si int32x4_t __attribute__ ((__vector_size__ (16))); 58 typedef __builtin_neon_di int64x2_t __attribute__ ((__vector_size__ (16))); 59 typedef __builtin_neon_sf float32x4_t __attribute__ ((__vector_size__ (16))); 60 typedef __builtin_neon_poly8 poly8x16_t __attribute__ ((__vector_size__ (16))); 61 typedef __builtin_neon_poly16 poly16x8_t __attribute__ ((__vector_size__ (16))); 62 #ifdef __ARM_FEATURE_CRYPTO 63 typedef __builtin_neon_poly64 poly64x2_t __attribute__ ((__vector_size__ (16))); 64 #endif 65 typedef __builtin_neon_uqi uint8x16_t __attribute__ ((__vector_size__ (16))); 66 typedef __builtin_neon_uhi uint16x8_t __attribute__ ((__vector_size__ (16))); 67 typedef __builtin_neon_usi uint32x4_t __attribute__ ((__vector_size__ (16))); 68 typedef __builtin_neon_udi uint64x2_t __attribute__ ((__vector_size__ (16))); 69 70 typedef float float32_t; 71 typedef __builtin_neon_poly8 poly8_t; 72 typedef __builtin_neon_poly16 poly16_t; 73 #ifdef __ARM_FEATURE_CRYPTO 74 typedef __builtin_neon_poly64 poly64_t; 75 typedef __builtin_neon_poly128 poly128_t; 76 #endif 77 78 typedef struct int8x8x2_t 79 { 80 int8x8_t val[2]; 81 } int8x8x2_t; 82 83 typedef struct int8x16x2_t 84 { 85 int8x16_t val[2]; 86 } int8x16x2_t; 87 88 typedef struct int16x4x2_t 89 { 90 int16x4_t val[2]; 91 } int16x4x2_t; 92 93 typedef struct int16x8x2_t 94 { 95 int16x8_t val[2]; 96 } int16x8x2_t; 97 98 typedef struct int32x2x2_t 99 { 100 int32x2_t val[2]; 101 } int32x2x2_t; 102 103 typedef struct int32x4x2_t 104 { 105 int32x4_t val[2]; 106 } int32x4x2_t; 107 108 typedef struct int64x1x2_t 109 { 110 int64x1_t val[2]; 111 } int64x1x2_t; 112 113 typedef struct int64x2x2_t 114 { 115 int64x2_t val[2]; 116 } int64x2x2_t; 117 118 typedef struct uint8x8x2_t 119 { 120 uint8x8_t val[2]; 121 } uint8x8x2_t; 122 123 typedef struct uint8x16x2_t 124 { 125 uint8x16_t val[2]; 126 } uint8x16x2_t; 127 128 typedef struct uint16x4x2_t 129 { 130 uint16x4_t val[2]; 131 } uint16x4x2_t; 132 133 typedef struct uint16x8x2_t 134 { 135 uint16x8_t val[2]; 136 } uint16x8x2_t; 137 138 typedef struct uint32x2x2_t 139 { 140 uint32x2_t val[2]; 141 } uint32x2x2_t; 142 143 typedef struct uint32x4x2_t 144 { 145 uint32x4_t val[2]; 146 } uint32x4x2_t; 147 148 typedef struct uint64x1x2_t 149 { 150 uint64x1_t val[2]; 151 } uint64x1x2_t; 152 153 typedef struct uint64x2x2_t 154 { 155 uint64x2_t val[2]; 156 } uint64x2x2_t; 157 158 typedef struct float32x2x2_t 159 { 160 float32x2_t val[2]; 161 } float32x2x2_t; 162 163 typedef struct float32x4x2_t 164 { 165 float32x4_t val[2]; 166 } float32x4x2_t; 167 168 typedef struct poly8x8x2_t 169 { 170 poly8x8_t val[2]; 171 } poly8x8x2_t; 172 173 typedef struct poly8x16x2_t 174 { 175 poly8x16_t val[2]; 176 } poly8x16x2_t; 177 178 typedef struct poly16x4x2_t 179 { 180 poly16x4_t val[2]; 181 } poly16x4x2_t; 182 183 typedef struct poly16x8x2_t 184 { 185 poly16x8_t val[2]; 186 } poly16x8x2_t; 187 188 #ifdef __ARM_FEATURE_CRYPTO 189 typedef struct poly64x1x2_t 190 { 191 poly64x1_t val[2]; 192 } poly64x1x2_t; 193 #endif 194 195 196 #ifdef __ARM_FEATURE_CRYPTO 197 typedef struct poly64x2x2_t 198 { 199 poly64x2_t val[2]; 200 } poly64x2x2_t; 201 #endif 202 203 204 typedef struct int8x8x3_t 205 { 206 int8x8_t val[3]; 207 } int8x8x3_t; 208 209 typedef struct int8x16x3_t 210 { 211 int8x16_t val[3]; 212 } int8x16x3_t; 213 214 typedef struct int16x4x3_t 215 { 216 int16x4_t val[3]; 217 } int16x4x3_t; 218 219 typedef struct int16x8x3_t 220 { 221 int16x8_t val[3]; 222 } int16x8x3_t; 223 224 typedef struct int32x2x3_t 225 { 226 int32x2_t val[3]; 227 } int32x2x3_t; 228 229 typedef struct int32x4x3_t 230 { 231 int32x4_t val[3]; 232 } int32x4x3_t; 233 234 typedef struct int64x1x3_t 235 { 236 int64x1_t val[3]; 237 } int64x1x3_t; 238 239 typedef struct int64x2x3_t 240 { 241 int64x2_t val[3]; 242 } int64x2x3_t; 243 244 typedef struct uint8x8x3_t 245 { 246 uint8x8_t val[3]; 247 } uint8x8x3_t; 248 249 typedef struct uint8x16x3_t 250 { 251 uint8x16_t val[3]; 252 } uint8x16x3_t; 253 254 typedef struct uint16x4x3_t 255 { 256 uint16x4_t val[3]; 257 } uint16x4x3_t; 258 259 typedef struct uint16x8x3_t 260 { 261 uint16x8_t val[3]; 262 } uint16x8x3_t; 263 264 typedef struct uint32x2x3_t 265 { 266 uint32x2_t val[3]; 267 } uint32x2x3_t; 268 269 typedef struct uint32x4x3_t 270 { 271 uint32x4_t val[3]; 272 } uint32x4x3_t; 273 274 typedef struct uint64x1x3_t 275 { 276 uint64x1_t val[3]; 277 } uint64x1x3_t; 278 279 typedef struct uint64x2x3_t 280 { 281 uint64x2_t val[3]; 282 } uint64x2x3_t; 283 284 typedef struct float32x2x3_t 285 { 286 float32x2_t val[3]; 287 } float32x2x3_t; 288 289 typedef struct float32x4x3_t 290 { 291 float32x4_t val[3]; 292 } float32x4x3_t; 293 294 typedef struct poly8x8x3_t 295 { 296 poly8x8_t val[3]; 297 } poly8x8x3_t; 298 299 typedef struct poly8x16x3_t 300 { 301 poly8x16_t val[3]; 302 } poly8x16x3_t; 303 304 typedef struct poly16x4x3_t 305 { 306 poly16x4_t val[3]; 307 } poly16x4x3_t; 308 309 typedef struct poly16x8x3_t 310 { 311 poly16x8_t val[3]; 312 } poly16x8x3_t; 313 314 #ifdef __ARM_FEATURE_CRYPTO 315 typedef struct poly64x1x3_t 316 { 317 poly64x1_t val[3]; 318 } poly64x1x3_t; 319 #endif 320 321 322 #ifdef __ARM_FEATURE_CRYPTO 323 typedef struct poly64x2x3_t 324 { 325 poly64x2_t val[3]; 326 } poly64x2x3_t; 327 #endif 328 329 330 typedef struct int8x8x4_t 331 { 332 int8x8_t val[4]; 333 } int8x8x4_t; 334 335 typedef struct int8x16x4_t 336 { 337 int8x16_t val[4]; 338 } int8x16x4_t; 339 340 typedef struct int16x4x4_t 341 { 342 int16x4_t val[4]; 343 } int16x4x4_t; 344 345 typedef struct int16x8x4_t 346 { 347 int16x8_t val[4]; 348 } int16x8x4_t; 349 350 typedef struct int32x2x4_t 351 { 352 int32x2_t val[4]; 353 } int32x2x4_t; 354 355 typedef struct int32x4x4_t 356 { 357 int32x4_t val[4]; 358 } int32x4x4_t; 359 360 typedef struct int64x1x4_t 361 { 362 int64x1_t val[4]; 363 } int64x1x4_t; 364 365 typedef struct int64x2x4_t 366 { 367 int64x2_t val[4]; 368 } int64x2x4_t; 369 370 typedef struct uint8x8x4_t 371 { 372 uint8x8_t val[4]; 373 } uint8x8x4_t; 374 375 typedef struct uint8x16x4_t 376 { 377 uint8x16_t val[4]; 378 } uint8x16x4_t; 379 380 typedef struct uint16x4x4_t 381 { 382 uint16x4_t val[4]; 383 } uint16x4x4_t; 384 385 typedef struct uint16x8x4_t 386 { 387 uint16x8_t val[4]; 388 } uint16x8x4_t; 389 390 typedef struct uint32x2x4_t 391 { 392 uint32x2_t val[4]; 393 } uint32x2x4_t; 394 395 typedef struct uint32x4x4_t 396 { 397 uint32x4_t val[4]; 398 } uint32x4x4_t; 399 400 typedef struct uint64x1x4_t 401 { 402 uint64x1_t val[4]; 403 } uint64x1x4_t; 404 405 typedef struct uint64x2x4_t 406 { 407 uint64x2_t val[4]; 408 } uint64x2x4_t; 409 410 typedef struct float32x2x4_t 411 { 412 float32x2_t val[4]; 413 } float32x2x4_t; 414 415 typedef struct float32x4x4_t 416 { 417 float32x4_t val[4]; 418 } float32x4x4_t; 419 420 typedef struct poly8x8x4_t 421 { 422 poly8x8_t val[4]; 423 } poly8x8x4_t; 424 425 typedef struct poly8x16x4_t 426 { 427 poly8x16_t val[4]; 428 } poly8x16x4_t; 429 430 typedef struct poly16x4x4_t 431 { 432 poly16x4_t val[4]; 433 } poly16x4x4_t; 434 435 typedef struct poly16x8x4_t 436 { 437 poly16x8_t val[4]; 438 } poly16x8x4_t; 439 440 #ifdef __ARM_FEATURE_CRYPTO 441 typedef struct poly64x1x4_t 442 { 443 poly64x1_t val[4]; 444 } poly64x1x4_t; 445 #endif 446 447 448 #ifdef __ARM_FEATURE_CRYPTO 449 typedef struct poly64x2x4_t 450 { 451 poly64x2_t val[4]; 452 } poly64x2x4_t; 453 #endif 454 455 456 457 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 458 vadd_s8 (int8x8_t __a, int8x8_t __b) 459 { 460 return (int8x8_t)__builtin_neon_vaddv8qi (__a, __b, 1); 461 } 462 463 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 464 vadd_s16 (int16x4_t __a, int16x4_t __b) 465 { 466 return (int16x4_t)__builtin_neon_vaddv4hi (__a, __b, 1); 467 } 468 469 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 470 vadd_s32 (int32x2_t __a, int32x2_t __b) 471 { 472 return (int32x2_t)__builtin_neon_vaddv2si (__a, __b, 1); 473 } 474 475 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 476 vadd_f32 (float32x2_t __a, float32x2_t __b) 477 { 478 return (float32x2_t)__builtin_neon_vaddv2sf (__a, __b, 3); 479 } 480 481 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 482 vadd_u8 (uint8x8_t __a, uint8x8_t __b) 483 { 484 return (uint8x8_t)__builtin_neon_vaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 485 } 486 487 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 488 vadd_u16 (uint16x4_t __a, uint16x4_t __b) 489 { 490 return (uint16x4_t)__builtin_neon_vaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 491 } 492 493 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 494 vadd_u32 (uint32x2_t __a, uint32x2_t __b) 495 { 496 return (uint32x2_t)__builtin_neon_vaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 497 } 498 499 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 500 vadd_s64 (int64x1_t __a, int64x1_t __b) 501 { 502 return (int64x1_t)__builtin_neon_vadddi (__a, __b, 1); 503 } 504 505 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 506 vadd_u64 (uint64x1_t __a, uint64x1_t __b) 507 { 508 return (uint64x1_t)__builtin_neon_vadddi ((int64x1_t) __a, (int64x1_t) __b, 0); 509 } 510 511 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 512 vaddq_s8 (int8x16_t __a, int8x16_t __b) 513 { 514 return (int8x16_t)__builtin_neon_vaddv16qi (__a, __b, 1); 515 } 516 517 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 518 vaddq_s16 (int16x8_t __a, int16x8_t __b) 519 { 520 return (int16x8_t)__builtin_neon_vaddv8hi (__a, __b, 1); 521 } 522 523 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 524 vaddq_s32 (int32x4_t __a, int32x4_t __b) 525 { 526 return (int32x4_t)__builtin_neon_vaddv4si (__a, __b, 1); 527 } 528 529 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 530 vaddq_s64 (int64x2_t __a, int64x2_t __b) 531 { 532 return (int64x2_t)__builtin_neon_vaddv2di (__a, __b, 1); 533 } 534 535 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 536 vaddq_f32 (float32x4_t __a, float32x4_t __b) 537 { 538 return (float32x4_t)__builtin_neon_vaddv4sf (__a, __b, 3); 539 } 540 541 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 542 vaddq_u8 (uint8x16_t __a, uint8x16_t __b) 543 { 544 return (uint8x16_t)__builtin_neon_vaddv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 545 } 546 547 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 548 vaddq_u16 (uint16x8_t __a, uint16x8_t __b) 549 { 550 return (uint16x8_t)__builtin_neon_vaddv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 551 } 552 553 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 554 vaddq_u32 (uint32x4_t __a, uint32x4_t __b) 555 { 556 return (uint32x4_t)__builtin_neon_vaddv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 557 } 558 559 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 560 vaddq_u64 (uint64x2_t __a, uint64x2_t __b) 561 { 562 return (uint64x2_t)__builtin_neon_vaddv2di ((int64x2_t) __a, (int64x2_t) __b, 0); 563 } 564 565 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 566 vaddl_s8 (int8x8_t __a, int8x8_t __b) 567 { 568 return (int16x8_t)__builtin_neon_vaddlv8qi (__a, __b, 1); 569 } 570 571 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 572 vaddl_s16 (int16x4_t __a, int16x4_t __b) 573 { 574 return (int32x4_t)__builtin_neon_vaddlv4hi (__a, __b, 1); 575 } 576 577 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 578 vaddl_s32 (int32x2_t __a, int32x2_t __b) 579 { 580 return (int64x2_t)__builtin_neon_vaddlv2si (__a, __b, 1); 581 } 582 583 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 584 vaddl_u8 (uint8x8_t __a, uint8x8_t __b) 585 { 586 return (uint16x8_t)__builtin_neon_vaddlv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 587 } 588 589 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 590 vaddl_u16 (uint16x4_t __a, uint16x4_t __b) 591 { 592 return (uint32x4_t)__builtin_neon_vaddlv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 593 } 594 595 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 596 vaddl_u32 (uint32x2_t __a, uint32x2_t __b) 597 { 598 return (uint64x2_t)__builtin_neon_vaddlv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 599 } 600 601 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 602 vaddw_s8 (int16x8_t __a, int8x8_t __b) 603 { 604 return (int16x8_t)__builtin_neon_vaddwv8qi (__a, __b, 1); 605 } 606 607 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 608 vaddw_s16 (int32x4_t __a, int16x4_t __b) 609 { 610 return (int32x4_t)__builtin_neon_vaddwv4hi (__a, __b, 1); 611 } 612 613 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 614 vaddw_s32 (int64x2_t __a, int32x2_t __b) 615 { 616 return (int64x2_t)__builtin_neon_vaddwv2si (__a, __b, 1); 617 } 618 619 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 620 vaddw_u8 (uint16x8_t __a, uint8x8_t __b) 621 { 622 return (uint16x8_t)__builtin_neon_vaddwv8qi ((int16x8_t) __a, (int8x8_t) __b, 0); 623 } 624 625 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 626 vaddw_u16 (uint32x4_t __a, uint16x4_t __b) 627 { 628 return (uint32x4_t)__builtin_neon_vaddwv4hi ((int32x4_t) __a, (int16x4_t) __b, 0); 629 } 630 631 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 632 vaddw_u32 (uint64x2_t __a, uint32x2_t __b) 633 { 634 return (uint64x2_t)__builtin_neon_vaddwv2si ((int64x2_t) __a, (int32x2_t) __b, 0); 635 } 636 637 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 638 vhadd_s8 (int8x8_t __a, int8x8_t __b) 639 { 640 return (int8x8_t)__builtin_neon_vhaddv8qi (__a, __b, 1); 641 } 642 643 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 644 vhadd_s16 (int16x4_t __a, int16x4_t __b) 645 { 646 return (int16x4_t)__builtin_neon_vhaddv4hi (__a, __b, 1); 647 } 648 649 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 650 vhadd_s32 (int32x2_t __a, int32x2_t __b) 651 { 652 return (int32x2_t)__builtin_neon_vhaddv2si (__a, __b, 1); 653 } 654 655 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 656 vhadd_u8 (uint8x8_t __a, uint8x8_t __b) 657 { 658 return (uint8x8_t)__builtin_neon_vhaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 659 } 660 661 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 662 vhadd_u16 (uint16x4_t __a, uint16x4_t __b) 663 { 664 return (uint16x4_t)__builtin_neon_vhaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 665 } 666 667 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 668 vhadd_u32 (uint32x2_t __a, uint32x2_t __b) 669 { 670 return (uint32x2_t)__builtin_neon_vhaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 671 } 672 673 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 674 vhaddq_s8 (int8x16_t __a, int8x16_t __b) 675 { 676 return (int8x16_t)__builtin_neon_vhaddv16qi (__a, __b, 1); 677 } 678 679 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 680 vhaddq_s16 (int16x8_t __a, int16x8_t __b) 681 { 682 return (int16x8_t)__builtin_neon_vhaddv8hi (__a, __b, 1); 683 } 684 685 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 686 vhaddq_s32 (int32x4_t __a, int32x4_t __b) 687 { 688 return (int32x4_t)__builtin_neon_vhaddv4si (__a, __b, 1); 689 } 690 691 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 692 vhaddq_u8 (uint8x16_t __a, uint8x16_t __b) 693 { 694 return (uint8x16_t)__builtin_neon_vhaddv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 695 } 696 697 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 698 vhaddq_u16 (uint16x8_t __a, uint16x8_t __b) 699 { 700 return (uint16x8_t)__builtin_neon_vhaddv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 701 } 702 703 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 704 vhaddq_u32 (uint32x4_t __a, uint32x4_t __b) 705 { 706 return (uint32x4_t)__builtin_neon_vhaddv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 707 } 708 709 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 710 vrhadd_s8 (int8x8_t __a, int8x8_t __b) 711 { 712 return (int8x8_t)__builtin_neon_vhaddv8qi (__a, __b, 5); 713 } 714 715 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 716 vrhadd_s16 (int16x4_t __a, int16x4_t __b) 717 { 718 return (int16x4_t)__builtin_neon_vhaddv4hi (__a, __b, 5); 719 } 720 721 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 722 vrhadd_s32 (int32x2_t __a, int32x2_t __b) 723 { 724 return (int32x2_t)__builtin_neon_vhaddv2si (__a, __b, 5); 725 } 726 727 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 728 vrhadd_u8 (uint8x8_t __a, uint8x8_t __b) 729 { 730 return (uint8x8_t)__builtin_neon_vhaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 4); 731 } 732 733 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 734 vrhadd_u16 (uint16x4_t __a, uint16x4_t __b) 735 { 736 return (uint16x4_t)__builtin_neon_vhaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 4); 737 } 738 739 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 740 vrhadd_u32 (uint32x2_t __a, uint32x2_t __b) 741 { 742 return (uint32x2_t)__builtin_neon_vhaddv2si ((int32x2_t) __a, (int32x2_t) __b, 4); 743 } 744 745 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 746 vrhaddq_s8 (int8x16_t __a, int8x16_t __b) 747 { 748 return (int8x16_t)__builtin_neon_vhaddv16qi (__a, __b, 5); 749 } 750 751 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 752 vrhaddq_s16 (int16x8_t __a, int16x8_t __b) 753 { 754 return (int16x8_t)__builtin_neon_vhaddv8hi (__a, __b, 5); 755 } 756 757 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 758 vrhaddq_s32 (int32x4_t __a, int32x4_t __b) 759 { 760 return (int32x4_t)__builtin_neon_vhaddv4si (__a, __b, 5); 761 } 762 763 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 764 vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b) 765 { 766 return (uint8x16_t)__builtin_neon_vhaddv16qi ((int8x16_t) __a, (int8x16_t) __b, 4); 767 } 768 769 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 770 vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b) 771 { 772 return (uint16x8_t)__builtin_neon_vhaddv8hi ((int16x8_t) __a, (int16x8_t) __b, 4); 773 } 774 775 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 776 vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b) 777 { 778 return (uint32x4_t)__builtin_neon_vhaddv4si ((int32x4_t) __a, (int32x4_t) __b, 4); 779 } 780 781 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 782 vqadd_s8 (int8x8_t __a, int8x8_t __b) 783 { 784 return (int8x8_t)__builtin_neon_vqaddv8qi (__a, __b, 1); 785 } 786 787 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 788 vqadd_s16 (int16x4_t __a, int16x4_t __b) 789 { 790 return (int16x4_t)__builtin_neon_vqaddv4hi (__a, __b, 1); 791 } 792 793 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 794 vqadd_s32 (int32x2_t __a, int32x2_t __b) 795 { 796 return (int32x2_t)__builtin_neon_vqaddv2si (__a, __b, 1); 797 } 798 799 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 800 vqadd_s64 (int64x1_t __a, int64x1_t __b) 801 { 802 return (int64x1_t)__builtin_neon_vqadddi (__a, __b, 1); 803 } 804 805 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 806 vqadd_u8 (uint8x8_t __a, uint8x8_t __b) 807 { 808 return (uint8x8_t)__builtin_neon_vqaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 809 } 810 811 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 812 vqadd_u16 (uint16x4_t __a, uint16x4_t __b) 813 { 814 return (uint16x4_t)__builtin_neon_vqaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 815 } 816 817 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 818 vqadd_u32 (uint32x2_t __a, uint32x2_t __b) 819 { 820 return (uint32x2_t)__builtin_neon_vqaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 821 } 822 823 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 824 vqadd_u64 (uint64x1_t __a, uint64x1_t __b) 825 { 826 return (uint64x1_t)__builtin_neon_vqadddi ((int64x1_t) __a, (int64x1_t) __b, 0); 827 } 828 829 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 830 vqaddq_s8 (int8x16_t __a, int8x16_t __b) 831 { 832 return (int8x16_t)__builtin_neon_vqaddv16qi (__a, __b, 1); 833 } 834 835 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 836 vqaddq_s16 (int16x8_t __a, int16x8_t __b) 837 { 838 return (int16x8_t)__builtin_neon_vqaddv8hi (__a, __b, 1); 839 } 840 841 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 842 vqaddq_s32 (int32x4_t __a, int32x4_t __b) 843 { 844 return (int32x4_t)__builtin_neon_vqaddv4si (__a, __b, 1); 845 } 846 847 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 848 vqaddq_s64 (int64x2_t __a, int64x2_t __b) 849 { 850 return (int64x2_t)__builtin_neon_vqaddv2di (__a, __b, 1); 851 } 852 853 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 854 vqaddq_u8 (uint8x16_t __a, uint8x16_t __b) 855 { 856 return (uint8x16_t)__builtin_neon_vqaddv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 857 } 858 859 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 860 vqaddq_u16 (uint16x8_t __a, uint16x8_t __b) 861 { 862 return (uint16x8_t)__builtin_neon_vqaddv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 863 } 864 865 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 866 vqaddq_u32 (uint32x4_t __a, uint32x4_t __b) 867 { 868 return (uint32x4_t)__builtin_neon_vqaddv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 869 } 870 871 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 872 vqaddq_u64 (uint64x2_t __a, uint64x2_t __b) 873 { 874 return (uint64x2_t)__builtin_neon_vqaddv2di ((int64x2_t) __a, (int64x2_t) __b, 0); 875 } 876 877 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 878 vaddhn_s16 (int16x8_t __a, int16x8_t __b) 879 { 880 return (int8x8_t)__builtin_neon_vaddhnv8hi (__a, __b, 1); 881 } 882 883 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 884 vaddhn_s32 (int32x4_t __a, int32x4_t __b) 885 { 886 return (int16x4_t)__builtin_neon_vaddhnv4si (__a, __b, 1); 887 } 888 889 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 890 vaddhn_s64 (int64x2_t __a, int64x2_t __b) 891 { 892 return (int32x2_t)__builtin_neon_vaddhnv2di (__a, __b, 1); 893 } 894 895 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 896 vaddhn_u16 (uint16x8_t __a, uint16x8_t __b) 897 { 898 return (uint8x8_t)__builtin_neon_vaddhnv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 899 } 900 901 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 902 vaddhn_u32 (uint32x4_t __a, uint32x4_t __b) 903 { 904 return (uint16x4_t)__builtin_neon_vaddhnv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 905 } 906 907 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 908 vaddhn_u64 (uint64x2_t __a, uint64x2_t __b) 909 { 910 return (uint32x2_t)__builtin_neon_vaddhnv2di ((int64x2_t) __a, (int64x2_t) __b, 0); 911 } 912 913 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 914 vraddhn_s16 (int16x8_t __a, int16x8_t __b) 915 { 916 return (int8x8_t)__builtin_neon_vaddhnv8hi (__a, __b, 5); 917 } 918 919 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 920 vraddhn_s32 (int32x4_t __a, int32x4_t __b) 921 { 922 return (int16x4_t)__builtin_neon_vaddhnv4si (__a, __b, 5); 923 } 924 925 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 926 vraddhn_s64 (int64x2_t __a, int64x2_t __b) 927 { 928 return (int32x2_t)__builtin_neon_vaddhnv2di (__a, __b, 5); 929 } 930 931 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 932 vraddhn_u16 (uint16x8_t __a, uint16x8_t __b) 933 { 934 return (uint8x8_t)__builtin_neon_vaddhnv8hi ((int16x8_t) __a, (int16x8_t) __b, 4); 935 } 936 937 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 938 vraddhn_u32 (uint32x4_t __a, uint32x4_t __b) 939 { 940 return (uint16x4_t)__builtin_neon_vaddhnv4si ((int32x4_t) __a, (int32x4_t) __b, 4); 941 } 942 943 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 944 vraddhn_u64 (uint64x2_t __a, uint64x2_t __b) 945 { 946 return (uint32x2_t)__builtin_neon_vaddhnv2di ((int64x2_t) __a, (int64x2_t) __b, 4); 947 } 948 949 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 950 vmul_s8 (int8x8_t __a, int8x8_t __b) 951 { 952 return (int8x8_t)__builtin_neon_vmulv8qi (__a, __b, 1); 953 } 954 955 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 956 vmul_s16 (int16x4_t __a, int16x4_t __b) 957 { 958 return (int16x4_t)__builtin_neon_vmulv4hi (__a, __b, 1); 959 } 960 961 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 962 vmul_s32 (int32x2_t __a, int32x2_t __b) 963 { 964 return (int32x2_t)__builtin_neon_vmulv2si (__a, __b, 1); 965 } 966 967 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 968 vmul_f32 (float32x2_t __a, float32x2_t __b) 969 { 970 return (float32x2_t)__builtin_neon_vmulv2sf (__a, __b, 3); 971 } 972 973 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 974 vmul_u8 (uint8x8_t __a, uint8x8_t __b) 975 { 976 return (uint8x8_t)__builtin_neon_vmulv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 977 } 978 979 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 980 vmul_u16 (uint16x4_t __a, uint16x4_t __b) 981 { 982 return (uint16x4_t)__builtin_neon_vmulv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 983 } 984 985 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 986 vmul_u32 (uint32x2_t __a, uint32x2_t __b) 987 { 988 return (uint32x2_t)__builtin_neon_vmulv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 989 } 990 991 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 992 vmul_p8 (poly8x8_t __a, poly8x8_t __b) 993 { 994 return (poly8x8_t)__builtin_neon_vmulv8qi ((int8x8_t) __a, (int8x8_t) __b, 2); 995 } 996 997 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 998 vmulq_s8 (int8x16_t __a, int8x16_t __b) 999 { 1000 return (int8x16_t)__builtin_neon_vmulv16qi (__a, __b, 1); 1001 } 1002 1003 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 1004 vmulq_s16 (int16x8_t __a, int16x8_t __b) 1005 { 1006 return (int16x8_t)__builtin_neon_vmulv8hi (__a, __b, 1); 1007 } 1008 1009 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 1010 vmulq_s32 (int32x4_t __a, int32x4_t __b) 1011 { 1012 return (int32x4_t)__builtin_neon_vmulv4si (__a, __b, 1); 1013 } 1014 1015 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 1016 vmulq_f32 (float32x4_t __a, float32x4_t __b) 1017 { 1018 return (float32x4_t)__builtin_neon_vmulv4sf (__a, __b, 3); 1019 } 1020 1021 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 1022 vmulq_u8 (uint8x16_t __a, uint8x16_t __b) 1023 { 1024 return (uint8x16_t)__builtin_neon_vmulv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 1025 } 1026 1027 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 1028 vmulq_u16 (uint16x8_t __a, uint16x8_t __b) 1029 { 1030 return (uint16x8_t)__builtin_neon_vmulv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 1031 } 1032 1033 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 1034 vmulq_u32 (uint32x4_t __a, uint32x4_t __b) 1035 { 1036 return (uint32x4_t)__builtin_neon_vmulv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 1037 } 1038 1039 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 1040 vmulq_p8 (poly8x16_t __a, poly8x16_t __b) 1041 { 1042 return (poly8x16_t)__builtin_neon_vmulv16qi ((int8x16_t) __a, (int8x16_t) __b, 2); 1043 } 1044 1045 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 1046 vqdmulh_s16 (int16x4_t __a, int16x4_t __b) 1047 { 1048 return (int16x4_t)__builtin_neon_vqdmulhv4hi (__a, __b, 1); 1049 } 1050 1051 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 1052 vqdmulh_s32 (int32x2_t __a, int32x2_t __b) 1053 { 1054 return (int32x2_t)__builtin_neon_vqdmulhv2si (__a, __b, 1); 1055 } 1056 1057 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 1058 vqdmulhq_s16 (int16x8_t __a, int16x8_t __b) 1059 { 1060 return (int16x8_t)__builtin_neon_vqdmulhv8hi (__a, __b, 1); 1061 } 1062 1063 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 1064 vqdmulhq_s32 (int32x4_t __a, int32x4_t __b) 1065 { 1066 return (int32x4_t)__builtin_neon_vqdmulhv4si (__a, __b, 1); 1067 } 1068 1069 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 1070 vqrdmulh_s16 (int16x4_t __a, int16x4_t __b) 1071 { 1072 return (int16x4_t)__builtin_neon_vqdmulhv4hi (__a, __b, 5); 1073 } 1074 1075 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 1076 vqrdmulh_s32 (int32x2_t __a, int32x2_t __b) 1077 { 1078 return (int32x2_t)__builtin_neon_vqdmulhv2si (__a, __b, 5); 1079 } 1080 1081 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 1082 vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b) 1083 { 1084 return (int16x8_t)__builtin_neon_vqdmulhv8hi (__a, __b, 5); 1085 } 1086 1087 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 1088 vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b) 1089 { 1090 return (int32x4_t)__builtin_neon_vqdmulhv4si (__a, __b, 5); 1091 } 1092 1093 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 1094 vmull_s8 (int8x8_t __a, int8x8_t __b) 1095 { 1096 return (int16x8_t)__builtin_neon_vmullv8qi (__a, __b, 1); 1097 } 1098 1099 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 1100 vmull_s16 (int16x4_t __a, int16x4_t __b) 1101 { 1102 return (int32x4_t)__builtin_neon_vmullv4hi (__a, __b, 1); 1103 } 1104 1105 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 1106 vmull_s32 (int32x2_t __a, int32x2_t __b) 1107 { 1108 return (int64x2_t)__builtin_neon_vmullv2si (__a, __b, 1); 1109 } 1110 1111 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 1112 vmull_u8 (uint8x8_t __a, uint8x8_t __b) 1113 { 1114 return (uint16x8_t)__builtin_neon_vmullv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 1115 } 1116 1117 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 1118 vmull_u16 (uint16x4_t __a, uint16x4_t __b) 1119 { 1120 return (uint32x4_t)__builtin_neon_vmullv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 1121 } 1122 1123 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 1124 vmull_u32 (uint32x2_t __a, uint32x2_t __b) 1125 { 1126 return (uint64x2_t)__builtin_neon_vmullv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 1127 } 1128 1129 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 1130 vmull_p8 (poly8x8_t __a, poly8x8_t __b) 1131 { 1132 return (poly16x8_t)__builtin_neon_vmullv8qi ((int8x8_t) __a, (int8x8_t) __b, 2); 1133 } 1134 1135 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 1136 vqdmull_s16 (int16x4_t __a, int16x4_t __b) 1137 { 1138 return (int32x4_t)__builtin_neon_vqdmullv4hi (__a, __b, 1); 1139 } 1140 1141 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 1142 vqdmull_s32 (int32x2_t __a, int32x2_t __b) 1143 { 1144 return (int64x2_t)__builtin_neon_vqdmullv2si (__a, __b, 1); 1145 } 1146 1147 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 1148 vmla_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c) 1149 { 1150 return (int8x8_t)__builtin_neon_vmlav8qi (__a, __b, __c, 1); 1151 } 1152 1153 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 1154 vmla_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c) 1155 { 1156 return (int16x4_t)__builtin_neon_vmlav4hi (__a, __b, __c, 1); 1157 } 1158 1159 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 1160 vmla_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c) 1161 { 1162 return (int32x2_t)__builtin_neon_vmlav2si (__a, __b, __c, 1); 1163 } 1164 1165 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 1166 vmla_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c) 1167 { 1168 return (float32x2_t)__builtin_neon_vmlav2sf (__a, __b, __c, 3); 1169 } 1170 1171 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 1172 vmla_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c) 1173 { 1174 return (uint8x8_t)__builtin_neon_vmlav8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0); 1175 } 1176 1177 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 1178 vmla_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c) 1179 { 1180 return (uint16x4_t)__builtin_neon_vmlav4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0); 1181 } 1182 1183 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 1184 vmla_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c) 1185 { 1186 return (uint32x2_t)__builtin_neon_vmlav2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0); 1187 } 1188 1189 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 1190 vmlaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c) 1191 { 1192 return (int8x16_t)__builtin_neon_vmlav16qi (__a, __b, __c, 1); 1193 } 1194 1195 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 1196 vmlaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c) 1197 { 1198 return (int16x8_t)__builtin_neon_vmlav8hi (__a, __b, __c, 1); 1199 } 1200 1201 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 1202 vmlaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c) 1203 { 1204 return (int32x4_t)__builtin_neon_vmlav4si (__a, __b, __c, 1); 1205 } 1206 1207 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 1208 vmlaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c) 1209 { 1210 return (float32x4_t)__builtin_neon_vmlav4sf (__a, __b, __c, 3); 1211 } 1212 1213 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 1214 vmlaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c) 1215 { 1216 return (uint8x16_t)__builtin_neon_vmlav16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c, 0); 1217 } 1218 1219 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 1220 vmlaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c) 1221 { 1222 return (uint16x8_t)__builtin_neon_vmlav8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c, 0); 1223 } 1224 1225 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 1226 vmlaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c) 1227 { 1228 return (uint32x4_t)__builtin_neon_vmlav4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c, 0); 1229 } 1230 1231 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 1232 vmlal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c) 1233 { 1234 return (int16x8_t)__builtin_neon_vmlalv8qi (__a, __b, __c, 1); 1235 } 1236 1237 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 1238 vmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c) 1239 { 1240 return (int32x4_t)__builtin_neon_vmlalv4hi (__a, __b, __c, 1); 1241 } 1242 1243 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 1244 vmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c) 1245 { 1246 return (int64x2_t)__builtin_neon_vmlalv2si (__a, __b, __c, 1); 1247 } 1248 1249 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 1250 vmlal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c) 1251 { 1252 return (uint16x8_t)__builtin_neon_vmlalv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0); 1253 } 1254 1255 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 1256 vmlal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c) 1257 { 1258 return (uint32x4_t)__builtin_neon_vmlalv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0); 1259 } 1260 1261 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 1262 vmlal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c) 1263 { 1264 return (uint64x2_t)__builtin_neon_vmlalv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0); 1265 } 1266 1267 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 1268 vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c) 1269 { 1270 return (int32x4_t)__builtin_neon_vqdmlalv4hi (__a, __b, __c, 1); 1271 } 1272 1273 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 1274 vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c) 1275 { 1276 return (int64x2_t)__builtin_neon_vqdmlalv2si (__a, __b, __c, 1); 1277 } 1278 1279 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 1280 vmls_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c) 1281 { 1282 return (int8x8_t)__builtin_neon_vmlsv8qi (__a, __b, __c, 1); 1283 } 1284 1285 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 1286 vmls_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c) 1287 { 1288 return (int16x4_t)__builtin_neon_vmlsv4hi (__a, __b, __c, 1); 1289 } 1290 1291 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 1292 vmls_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c) 1293 { 1294 return (int32x2_t)__builtin_neon_vmlsv2si (__a, __b, __c, 1); 1295 } 1296 1297 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 1298 vmls_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c) 1299 { 1300 return (float32x2_t)__builtin_neon_vmlsv2sf (__a, __b, __c, 3); 1301 } 1302 1303 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 1304 vmls_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c) 1305 { 1306 return (uint8x8_t)__builtin_neon_vmlsv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0); 1307 } 1308 1309 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 1310 vmls_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c) 1311 { 1312 return (uint16x4_t)__builtin_neon_vmlsv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0); 1313 } 1314 1315 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 1316 vmls_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c) 1317 { 1318 return (uint32x2_t)__builtin_neon_vmlsv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0); 1319 } 1320 1321 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 1322 vmlsq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c) 1323 { 1324 return (int8x16_t)__builtin_neon_vmlsv16qi (__a, __b, __c, 1); 1325 } 1326 1327 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 1328 vmlsq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c) 1329 { 1330 return (int16x8_t)__builtin_neon_vmlsv8hi (__a, __b, __c, 1); 1331 } 1332 1333 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 1334 vmlsq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c) 1335 { 1336 return (int32x4_t)__builtin_neon_vmlsv4si (__a, __b, __c, 1); 1337 } 1338 1339 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 1340 vmlsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c) 1341 { 1342 return (float32x4_t)__builtin_neon_vmlsv4sf (__a, __b, __c, 3); 1343 } 1344 1345 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 1346 vmlsq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c) 1347 { 1348 return (uint8x16_t)__builtin_neon_vmlsv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c, 0); 1349 } 1350 1351 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 1352 vmlsq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c) 1353 { 1354 return (uint16x8_t)__builtin_neon_vmlsv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c, 0); 1355 } 1356 1357 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 1358 vmlsq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c) 1359 { 1360 return (uint32x4_t)__builtin_neon_vmlsv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c, 0); 1361 } 1362 1363 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 1364 vmlsl_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c) 1365 { 1366 return (int16x8_t)__builtin_neon_vmlslv8qi (__a, __b, __c, 1); 1367 } 1368 1369 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 1370 vmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c) 1371 { 1372 return (int32x4_t)__builtin_neon_vmlslv4hi (__a, __b, __c, 1); 1373 } 1374 1375 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 1376 vmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c) 1377 { 1378 return (int64x2_t)__builtin_neon_vmlslv2si (__a, __b, __c, 1); 1379 } 1380 1381 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 1382 vmlsl_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c) 1383 { 1384 return (uint16x8_t)__builtin_neon_vmlslv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0); 1385 } 1386 1387 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 1388 vmlsl_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c) 1389 { 1390 return (uint32x4_t)__builtin_neon_vmlslv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0); 1391 } 1392 1393 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 1394 vmlsl_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c) 1395 { 1396 return (uint64x2_t)__builtin_neon_vmlslv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0); 1397 } 1398 1399 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 1400 vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c) 1401 { 1402 return (int32x4_t)__builtin_neon_vqdmlslv4hi (__a, __b, __c, 1); 1403 } 1404 1405 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 1406 vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c) 1407 { 1408 return (int64x2_t)__builtin_neon_vqdmlslv2si (__a, __b, __c, 1); 1409 } 1410 1411 #ifdef __ARM_FEATURE_FMA 1412 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 1413 vfma_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c) 1414 { 1415 return (float32x2_t)__builtin_neon_vfmav2sf (__a, __b, __c, 3); 1416 } 1417 1418 #endif 1419 #ifdef __ARM_FEATURE_FMA 1420 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 1421 vfmaq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c) 1422 { 1423 return (float32x4_t)__builtin_neon_vfmav4sf (__a, __b, __c, 3); 1424 } 1425 1426 #endif 1427 #ifdef __ARM_FEATURE_FMA 1428 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 1429 vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c) 1430 { 1431 return (float32x2_t)__builtin_neon_vfmsv2sf (__a, __b, __c, 3); 1432 } 1433 1434 #endif 1435 #ifdef __ARM_FEATURE_FMA 1436 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 1437 vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c) 1438 { 1439 return (float32x4_t)__builtin_neon_vfmsv4sf (__a, __b, __c, 3); 1440 } 1441 1442 #endif 1443 #if __ARM_ARCH >= 8 1444 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 1445 vrndn_f32 (float32x2_t __a) 1446 { 1447 return (float32x2_t)__builtin_neon_vrintnv2sf (__a); 1448 } 1449 1450 #endif 1451 #if __ARM_ARCH >= 8 1452 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 1453 vrndqn_f32 (float32x4_t __a) 1454 { 1455 return (float32x4_t)__builtin_neon_vrintnv4sf (__a); 1456 } 1457 1458 #endif 1459 #if __ARM_ARCH >= 8 1460 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 1461 vrnda_f32 (float32x2_t __a) 1462 { 1463 return (float32x2_t)__builtin_neon_vrintav2sf (__a); 1464 } 1465 1466 #endif 1467 #if __ARM_ARCH >= 8 1468 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 1469 vrndqa_f32 (float32x4_t __a) 1470 { 1471 return (float32x4_t)__builtin_neon_vrintav4sf (__a); 1472 } 1473 1474 #endif 1475 #if __ARM_ARCH >= 8 1476 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 1477 vrndp_f32 (float32x2_t __a) 1478 { 1479 return (float32x2_t)__builtin_neon_vrintpv2sf (__a); 1480 } 1481 1482 #endif 1483 #if __ARM_ARCH >= 8 1484 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 1485 vrndqp_f32 (float32x4_t __a) 1486 { 1487 return (float32x4_t)__builtin_neon_vrintpv4sf (__a); 1488 } 1489 1490 #endif 1491 #if __ARM_ARCH >= 8 1492 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 1493 vrndm_f32 (float32x2_t __a) 1494 { 1495 return (float32x2_t)__builtin_neon_vrintmv2sf (__a); 1496 } 1497 1498 #endif 1499 #if __ARM_ARCH >= 8 1500 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 1501 vrndqm_f32 (float32x4_t __a) 1502 { 1503 return (float32x4_t)__builtin_neon_vrintmv4sf (__a); 1504 } 1505 1506 #endif 1507 #if __ARM_ARCH >= 8 1508 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 1509 vrnd_f32 (float32x2_t __a) 1510 { 1511 return (float32x2_t)__builtin_neon_vrintzv2sf (__a); 1512 } 1513 1514 #endif 1515 #if __ARM_ARCH >= 8 1516 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 1517 vrndq_f32 (float32x4_t __a) 1518 { 1519 return (float32x4_t)__builtin_neon_vrintzv4sf (__a); 1520 } 1521 1522 #endif 1523 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 1524 vsub_s8 (int8x8_t __a, int8x8_t __b) 1525 { 1526 return (int8x8_t)__builtin_neon_vsubv8qi (__a, __b, 1); 1527 } 1528 1529 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 1530 vsub_s16 (int16x4_t __a, int16x4_t __b) 1531 { 1532 return (int16x4_t)__builtin_neon_vsubv4hi (__a, __b, 1); 1533 } 1534 1535 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 1536 vsub_s32 (int32x2_t __a, int32x2_t __b) 1537 { 1538 return (int32x2_t)__builtin_neon_vsubv2si (__a, __b, 1); 1539 } 1540 1541 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 1542 vsub_f32 (float32x2_t __a, float32x2_t __b) 1543 { 1544 return (float32x2_t)__builtin_neon_vsubv2sf (__a, __b, 3); 1545 } 1546 1547 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 1548 vsub_u8 (uint8x8_t __a, uint8x8_t __b) 1549 { 1550 return (uint8x8_t)__builtin_neon_vsubv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 1551 } 1552 1553 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 1554 vsub_u16 (uint16x4_t __a, uint16x4_t __b) 1555 { 1556 return (uint16x4_t)__builtin_neon_vsubv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 1557 } 1558 1559 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 1560 vsub_u32 (uint32x2_t __a, uint32x2_t __b) 1561 { 1562 return (uint32x2_t)__builtin_neon_vsubv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 1563 } 1564 1565 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 1566 vsub_s64 (int64x1_t __a, int64x1_t __b) 1567 { 1568 return (int64x1_t)__builtin_neon_vsubdi (__a, __b, 1); 1569 } 1570 1571 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 1572 vsub_u64 (uint64x1_t __a, uint64x1_t __b) 1573 { 1574 return (uint64x1_t)__builtin_neon_vsubdi ((int64x1_t) __a, (int64x1_t) __b, 0); 1575 } 1576 1577 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 1578 vsubq_s8 (int8x16_t __a, int8x16_t __b) 1579 { 1580 return (int8x16_t)__builtin_neon_vsubv16qi (__a, __b, 1); 1581 } 1582 1583 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 1584 vsubq_s16 (int16x8_t __a, int16x8_t __b) 1585 { 1586 return (int16x8_t)__builtin_neon_vsubv8hi (__a, __b, 1); 1587 } 1588 1589 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 1590 vsubq_s32 (int32x4_t __a, int32x4_t __b) 1591 { 1592 return (int32x4_t)__builtin_neon_vsubv4si (__a, __b, 1); 1593 } 1594 1595 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 1596 vsubq_s64 (int64x2_t __a, int64x2_t __b) 1597 { 1598 return (int64x2_t)__builtin_neon_vsubv2di (__a, __b, 1); 1599 } 1600 1601 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 1602 vsubq_f32 (float32x4_t __a, float32x4_t __b) 1603 { 1604 return (float32x4_t)__builtin_neon_vsubv4sf (__a, __b, 3); 1605 } 1606 1607 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 1608 vsubq_u8 (uint8x16_t __a, uint8x16_t __b) 1609 { 1610 return (uint8x16_t)__builtin_neon_vsubv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 1611 } 1612 1613 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 1614 vsubq_u16 (uint16x8_t __a, uint16x8_t __b) 1615 { 1616 return (uint16x8_t)__builtin_neon_vsubv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 1617 } 1618 1619 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 1620 vsubq_u32 (uint32x4_t __a, uint32x4_t __b) 1621 { 1622 return (uint32x4_t)__builtin_neon_vsubv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 1623 } 1624 1625 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 1626 vsubq_u64 (uint64x2_t __a, uint64x2_t __b) 1627 { 1628 return (uint64x2_t)__builtin_neon_vsubv2di ((int64x2_t) __a, (int64x2_t) __b, 0); 1629 } 1630 1631 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 1632 vsubl_s8 (int8x8_t __a, int8x8_t __b) 1633 { 1634 return (int16x8_t)__builtin_neon_vsublv8qi (__a, __b, 1); 1635 } 1636 1637 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 1638 vsubl_s16 (int16x4_t __a, int16x4_t __b) 1639 { 1640 return (int32x4_t)__builtin_neon_vsublv4hi (__a, __b, 1); 1641 } 1642 1643 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 1644 vsubl_s32 (int32x2_t __a, int32x2_t __b) 1645 { 1646 return (int64x2_t)__builtin_neon_vsublv2si (__a, __b, 1); 1647 } 1648 1649 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 1650 vsubl_u8 (uint8x8_t __a, uint8x8_t __b) 1651 { 1652 return (uint16x8_t)__builtin_neon_vsublv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 1653 } 1654 1655 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 1656 vsubl_u16 (uint16x4_t __a, uint16x4_t __b) 1657 { 1658 return (uint32x4_t)__builtin_neon_vsublv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 1659 } 1660 1661 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 1662 vsubl_u32 (uint32x2_t __a, uint32x2_t __b) 1663 { 1664 return (uint64x2_t)__builtin_neon_vsublv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 1665 } 1666 1667 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 1668 vsubw_s8 (int16x8_t __a, int8x8_t __b) 1669 { 1670 return (int16x8_t)__builtin_neon_vsubwv8qi (__a, __b, 1); 1671 } 1672 1673 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 1674 vsubw_s16 (int32x4_t __a, int16x4_t __b) 1675 { 1676 return (int32x4_t)__builtin_neon_vsubwv4hi (__a, __b, 1); 1677 } 1678 1679 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 1680 vsubw_s32 (int64x2_t __a, int32x2_t __b) 1681 { 1682 return (int64x2_t)__builtin_neon_vsubwv2si (__a, __b, 1); 1683 } 1684 1685 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 1686 vsubw_u8 (uint16x8_t __a, uint8x8_t __b) 1687 { 1688 return (uint16x8_t)__builtin_neon_vsubwv8qi ((int16x8_t) __a, (int8x8_t) __b, 0); 1689 } 1690 1691 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 1692 vsubw_u16 (uint32x4_t __a, uint16x4_t __b) 1693 { 1694 return (uint32x4_t)__builtin_neon_vsubwv4hi ((int32x4_t) __a, (int16x4_t) __b, 0); 1695 } 1696 1697 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 1698 vsubw_u32 (uint64x2_t __a, uint32x2_t __b) 1699 { 1700 return (uint64x2_t)__builtin_neon_vsubwv2si ((int64x2_t) __a, (int32x2_t) __b, 0); 1701 } 1702 1703 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 1704 vhsub_s8 (int8x8_t __a, int8x8_t __b) 1705 { 1706 return (int8x8_t)__builtin_neon_vhsubv8qi (__a, __b, 1); 1707 } 1708 1709 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 1710 vhsub_s16 (int16x4_t __a, int16x4_t __b) 1711 { 1712 return (int16x4_t)__builtin_neon_vhsubv4hi (__a, __b, 1); 1713 } 1714 1715 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 1716 vhsub_s32 (int32x2_t __a, int32x2_t __b) 1717 { 1718 return (int32x2_t)__builtin_neon_vhsubv2si (__a, __b, 1); 1719 } 1720 1721 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 1722 vhsub_u8 (uint8x8_t __a, uint8x8_t __b) 1723 { 1724 return (uint8x8_t)__builtin_neon_vhsubv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 1725 } 1726 1727 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 1728 vhsub_u16 (uint16x4_t __a, uint16x4_t __b) 1729 { 1730 return (uint16x4_t)__builtin_neon_vhsubv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 1731 } 1732 1733 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 1734 vhsub_u32 (uint32x2_t __a, uint32x2_t __b) 1735 { 1736 return (uint32x2_t)__builtin_neon_vhsubv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 1737 } 1738 1739 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 1740 vhsubq_s8 (int8x16_t __a, int8x16_t __b) 1741 { 1742 return (int8x16_t)__builtin_neon_vhsubv16qi (__a, __b, 1); 1743 } 1744 1745 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 1746 vhsubq_s16 (int16x8_t __a, int16x8_t __b) 1747 { 1748 return (int16x8_t)__builtin_neon_vhsubv8hi (__a, __b, 1); 1749 } 1750 1751 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 1752 vhsubq_s32 (int32x4_t __a, int32x4_t __b) 1753 { 1754 return (int32x4_t)__builtin_neon_vhsubv4si (__a, __b, 1); 1755 } 1756 1757 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 1758 vhsubq_u8 (uint8x16_t __a, uint8x16_t __b) 1759 { 1760 return (uint8x16_t)__builtin_neon_vhsubv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 1761 } 1762 1763 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 1764 vhsubq_u16 (uint16x8_t __a, uint16x8_t __b) 1765 { 1766 return (uint16x8_t)__builtin_neon_vhsubv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 1767 } 1768 1769 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 1770 vhsubq_u32 (uint32x4_t __a, uint32x4_t __b) 1771 { 1772 return (uint32x4_t)__builtin_neon_vhsubv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 1773 } 1774 1775 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 1776 vqsub_s8 (int8x8_t __a, int8x8_t __b) 1777 { 1778 return (int8x8_t)__builtin_neon_vqsubv8qi (__a, __b, 1); 1779 } 1780 1781 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 1782 vqsub_s16 (int16x4_t __a, int16x4_t __b) 1783 { 1784 return (int16x4_t)__builtin_neon_vqsubv4hi (__a, __b, 1); 1785 } 1786 1787 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 1788 vqsub_s32 (int32x2_t __a, int32x2_t __b) 1789 { 1790 return (int32x2_t)__builtin_neon_vqsubv2si (__a, __b, 1); 1791 } 1792 1793 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 1794 vqsub_s64 (int64x1_t __a, int64x1_t __b) 1795 { 1796 return (int64x1_t)__builtin_neon_vqsubdi (__a, __b, 1); 1797 } 1798 1799 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 1800 vqsub_u8 (uint8x8_t __a, uint8x8_t __b) 1801 { 1802 return (uint8x8_t)__builtin_neon_vqsubv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 1803 } 1804 1805 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 1806 vqsub_u16 (uint16x4_t __a, uint16x4_t __b) 1807 { 1808 return (uint16x4_t)__builtin_neon_vqsubv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 1809 } 1810 1811 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 1812 vqsub_u32 (uint32x2_t __a, uint32x2_t __b) 1813 { 1814 return (uint32x2_t)__builtin_neon_vqsubv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 1815 } 1816 1817 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 1818 vqsub_u64 (uint64x1_t __a, uint64x1_t __b) 1819 { 1820 return (uint64x1_t)__builtin_neon_vqsubdi ((int64x1_t) __a, (int64x1_t) __b, 0); 1821 } 1822 1823 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 1824 vqsubq_s8 (int8x16_t __a, int8x16_t __b) 1825 { 1826 return (int8x16_t)__builtin_neon_vqsubv16qi (__a, __b, 1); 1827 } 1828 1829 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 1830 vqsubq_s16 (int16x8_t __a, int16x8_t __b) 1831 { 1832 return (int16x8_t)__builtin_neon_vqsubv8hi (__a, __b, 1); 1833 } 1834 1835 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 1836 vqsubq_s32 (int32x4_t __a, int32x4_t __b) 1837 { 1838 return (int32x4_t)__builtin_neon_vqsubv4si (__a, __b, 1); 1839 } 1840 1841 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 1842 vqsubq_s64 (int64x2_t __a, int64x2_t __b) 1843 { 1844 return (int64x2_t)__builtin_neon_vqsubv2di (__a, __b, 1); 1845 } 1846 1847 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 1848 vqsubq_u8 (uint8x16_t __a, uint8x16_t __b) 1849 { 1850 return (uint8x16_t)__builtin_neon_vqsubv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 1851 } 1852 1853 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 1854 vqsubq_u16 (uint16x8_t __a, uint16x8_t __b) 1855 { 1856 return (uint16x8_t)__builtin_neon_vqsubv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 1857 } 1858 1859 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 1860 vqsubq_u32 (uint32x4_t __a, uint32x4_t __b) 1861 { 1862 return (uint32x4_t)__builtin_neon_vqsubv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 1863 } 1864 1865 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 1866 vqsubq_u64 (uint64x2_t __a, uint64x2_t __b) 1867 { 1868 return (uint64x2_t)__builtin_neon_vqsubv2di ((int64x2_t) __a, (int64x2_t) __b, 0); 1869 } 1870 1871 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 1872 vsubhn_s16 (int16x8_t __a, int16x8_t __b) 1873 { 1874 return (int8x8_t)__builtin_neon_vsubhnv8hi (__a, __b, 1); 1875 } 1876 1877 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 1878 vsubhn_s32 (int32x4_t __a, int32x4_t __b) 1879 { 1880 return (int16x4_t)__builtin_neon_vsubhnv4si (__a, __b, 1); 1881 } 1882 1883 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 1884 vsubhn_s64 (int64x2_t __a, int64x2_t __b) 1885 { 1886 return (int32x2_t)__builtin_neon_vsubhnv2di (__a, __b, 1); 1887 } 1888 1889 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 1890 vsubhn_u16 (uint16x8_t __a, uint16x8_t __b) 1891 { 1892 return (uint8x8_t)__builtin_neon_vsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 1893 } 1894 1895 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 1896 vsubhn_u32 (uint32x4_t __a, uint32x4_t __b) 1897 { 1898 return (uint16x4_t)__builtin_neon_vsubhnv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 1899 } 1900 1901 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 1902 vsubhn_u64 (uint64x2_t __a, uint64x2_t __b) 1903 { 1904 return (uint32x2_t)__builtin_neon_vsubhnv2di ((int64x2_t) __a, (int64x2_t) __b, 0); 1905 } 1906 1907 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 1908 vrsubhn_s16 (int16x8_t __a, int16x8_t __b) 1909 { 1910 return (int8x8_t)__builtin_neon_vsubhnv8hi (__a, __b, 5); 1911 } 1912 1913 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 1914 vrsubhn_s32 (int32x4_t __a, int32x4_t __b) 1915 { 1916 return (int16x4_t)__builtin_neon_vsubhnv4si (__a, __b, 5); 1917 } 1918 1919 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 1920 vrsubhn_s64 (int64x2_t __a, int64x2_t __b) 1921 { 1922 return (int32x2_t)__builtin_neon_vsubhnv2di (__a, __b, 5); 1923 } 1924 1925 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 1926 vrsubhn_u16 (uint16x8_t __a, uint16x8_t __b) 1927 { 1928 return (uint8x8_t)__builtin_neon_vsubhnv8hi ((int16x8_t) __a, (int16x8_t) __b, 4); 1929 } 1930 1931 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 1932 vrsubhn_u32 (uint32x4_t __a, uint32x4_t __b) 1933 { 1934 return (uint16x4_t)__builtin_neon_vsubhnv4si ((int32x4_t) __a, (int32x4_t) __b, 4); 1935 } 1936 1937 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 1938 vrsubhn_u64 (uint64x2_t __a, uint64x2_t __b) 1939 { 1940 return (uint32x2_t)__builtin_neon_vsubhnv2di ((int64x2_t) __a, (int64x2_t) __b, 4); 1941 } 1942 1943 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 1944 vceq_s8 (int8x8_t __a, int8x8_t __b) 1945 { 1946 return (uint8x8_t)__builtin_neon_vceqv8qi (__a, __b, 1); 1947 } 1948 1949 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 1950 vceq_s16 (int16x4_t __a, int16x4_t __b) 1951 { 1952 return (uint16x4_t)__builtin_neon_vceqv4hi (__a, __b, 1); 1953 } 1954 1955 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 1956 vceq_s32 (int32x2_t __a, int32x2_t __b) 1957 { 1958 return (uint32x2_t)__builtin_neon_vceqv2si (__a, __b, 1); 1959 } 1960 1961 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 1962 vceq_f32 (float32x2_t __a, float32x2_t __b) 1963 { 1964 return (uint32x2_t)__builtin_neon_vceqv2sf (__a, __b, 3); 1965 } 1966 1967 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 1968 vceq_u8 (uint8x8_t __a, uint8x8_t __b) 1969 { 1970 return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 1971 } 1972 1973 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 1974 vceq_u16 (uint16x4_t __a, uint16x4_t __b) 1975 { 1976 return (uint16x4_t)__builtin_neon_vceqv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 1977 } 1978 1979 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 1980 vceq_u32 (uint32x2_t __a, uint32x2_t __b) 1981 { 1982 return (uint32x2_t)__builtin_neon_vceqv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 1983 } 1984 1985 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 1986 vceq_p8 (poly8x8_t __a, poly8x8_t __b) 1987 { 1988 return (uint8x8_t)__builtin_neon_vceqv8qi ((int8x8_t) __a, (int8x8_t) __b, 2); 1989 } 1990 1991 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 1992 vceqq_s8 (int8x16_t __a, int8x16_t __b) 1993 { 1994 return (uint8x16_t)__builtin_neon_vceqv16qi (__a, __b, 1); 1995 } 1996 1997 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 1998 vceqq_s16 (int16x8_t __a, int16x8_t __b) 1999 { 2000 return (uint16x8_t)__builtin_neon_vceqv8hi (__a, __b, 1); 2001 } 2002 2003 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2004 vceqq_s32 (int32x4_t __a, int32x4_t __b) 2005 { 2006 return (uint32x4_t)__builtin_neon_vceqv4si (__a, __b, 1); 2007 } 2008 2009 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2010 vceqq_f32 (float32x4_t __a, float32x4_t __b) 2011 { 2012 return (uint32x4_t)__builtin_neon_vceqv4sf (__a, __b, 3); 2013 } 2014 2015 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2016 vceqq_u8 (uint8x16_t __a, uint8x16_t __b) 2017 { 2018 return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 2019 } 2020 2021 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2022 vceqq_u16 (uint16x8_t __a, uint16x8_t __b) 2023 { 2024 return (uint16x8_t)__builtin_neon_vceqv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 2025 } 2026 2027 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2028 vceqq_u32 (uint32x4_t __a, uint32x4_t __b) 2029 { 2030 return (uint32x4_t)__builtin_neon_vceqv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 2031 } 2032 2033 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2034 vceqq_p8 (poly8x16_t __a, poly8x16_t __b) 2035 { 2036 return (uint8x16_t)__builtin_neon_vceqv16qi ((int8x16_t) __a, (int8x16_t) __b, 2); 2037 } 2038 2039 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 2040 vcge_s8 (int8x8_t __a, int8x8_t __b) 2041 { 2042 return (uint8x8_t)__builtin_neon_vcgev8qi (__a, __b, 1); 2043 } 2044 2045 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 2046 vcge_s16 (int16x4_t __a, int16x4_t __b) 2047 { 2048 return (uint16x4_t)__builtin_neon_vcgev4hi (__a, __b, 1); 2049 } 2050 2051 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2052 vcge_s32 (int32x2_t __a, int32x2_t __b) 2053 { 2054 return (uint32x2_t)__builtin_neon_vcgev2si (__a, __b, 1); 2055 } 2056 2057 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2058 vcge_f32 (float32x2_t __a, float32x2_t __b) 2059 { 2060 return (uint32x2_t)__builtin_neon_vcgev2sf (__a, __b, 3); 2061 } 2062 2063 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 2064 vcge_u8 (uint8x8_t __a, uint8x8_t __b) 2065 { 2066 return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 2067 } 2068 2069 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 2070 vcge_u16 (uint16x4_t __a, uint16x4_t __b) 2071 { 2072 return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 2073 } 2074 2075 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2076 vcge_u32 (uint32x2_t __a, uint32x2_t __b) 2077 { 2078 return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 2079 } 2080 2081 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2082 vcgeq_s8 (int8x16_t __a, int8x16_t __b) 2083 { 2084 return (uint8x16_t)__builtin_neon_vcgev16qi (__a, __b, 1); 2085 } 2086 2087 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2088 vcgeq_s16 (int16x8_t __a, int16x8_t __b) 2089 { 2090 return (uint16x8_t)__builtin_neon_vcgev8hi (__a, __b, 1); 2091 } 2092 2093 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2094 vcgeq_s32 (int32x4_t __a, int32x4_t __b) 2095 { 2096 return (uint32x4_t)__builtin_neon_vcgev4si (__a, __b, 1); 2097 } 2098 2099 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2100 vcgeq_f32 (float32x4_t __a, float32x4_t __b) 2101 { 2102 return (uint32x4_t)__builtin_neon_vcgev4sf (__a, __b, 3); 2103 } 2104 2105 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2106 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b) 2107 { 2108 return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 2109 } 2110 2111 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2112 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b) 2113 { 2114 return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 2115 } 2116 2117 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2118 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b) 2119 { 2120 return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 2121 } 2122 2123 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 2124 vcle_s8 (int8x8_t __a, int8x8_t __b) 2125 { 2126 return (uint8x8_t)__builtin_neon_vcgev8qi (__b, __a, 1); 2127 } 2128 2129 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 2130 vcle_s16 (int16x4_t __a, int16x4_t __b) 2131 { 2132 return (uint16x4_t)__builtin_neon_vcgev4hi (__b, __a, 1); 2133 } 2134 2135 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2136 vcle_s32 (int32x2_t __a, int32x2_t __b) 2137 { 2138 return (uint32x2_t)__builtin_neon_vcgev2si (__b, __a, 1); 2139 } 2140 2141 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2142 vcle_f32 (float32x2_t __a, float32x2_t __b) 2143 { 2144 return (uint32x2_t)__builtin_neon_vcgev2sf (__b, __a, 3); 2145 } 2146 2147 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 2148 vcle_u8 (uint8x8_t __a, uint8x8_t __b) 2149 { 2150 return (uint8x8_t)__builtin_neon_vcgeuv8qi ((int8x8_t) __b, (int8x8_t) __a, 0); 2151 } 2152 2153 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 2154 vcle_u16 (uint16x4_t __a, uint16x4_t __b) 2155 { 2156 return (uint16x4_t)__builtin_neon_vcgeuv4hi ((int16x4_t) __b, (int16x4_t) __a, 0); 2157 } 2158 2159 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2160 vcle_u32 (uint32x2_t __a, uint32x2_t __b) 2161 { 2162 return (uint32x2_t)__builtin_neon_vcgeuv2si ((int32x2_t) __b, (int32x2_t) __a, 0); 2163 } 2164 2165 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2166 vcleq_s8 (int8x16_t __a, int8x16_t __b) 2167 { 2168 return (uint8x16_t)__builtin_neon_vcgev16qi (__b, __a, 1); 2169 } 2170 2171 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2172 vcleq_s16 (int16x8_t __a, int16x8_t __b) 2173 { 2174 return (uint16x8_t)__builtin_neon_vcgev8hi (__b, __a, 1); 2175 } 2176 2177 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2178 vcleq_s32 (int32x4_t __a, int32x4_t __b) 2179 { 2180 return (uint32x4_t)__builtin_neon_vcgev4si (__b, __a, 1); 2181 } 2182 2183 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2184 vcleq_f32 (float32x4_t __a, float32x4_t __b) 2185 { 2186 return (uint32x4_t)__builtin_neon_vcgev4sf (__b, __a, 3); 2187 } 2188 2189 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2190 vcleq_u8 (uint8x16_t __a, uint8x16_t __b) 2191 { 2192 return (uint8x16_t)__builtin_neon_vcgeuv16qi ((int8x16_t) __b, (int8x16_t) __a, 0); 2193 } 2194 2195 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2196 vcleq_u16 (uint16x8_t __a, uint16x8_t __b) 2197 { 2198 return (uint16x8_t)__builtin_neon_vcgeuv8hi ((int16x8_t) __b, (int16x8_t) __a, 0); 2199 } 2200 2201 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2202 vcleq_u32 (uint32x4_t __a, uint32x4_t __b) 2203 { 2204 return (uint32x4_t)__builtin_neon_vcgeuv4si ((int32x4_t) __b, (int32x4_t) __a, 0); 2205 } 2206 2207 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 2208 vcgt_s8 (int8x8_t __a, int8x8_t __b) 2209 { 2210 return (uint8x8_t)__builtin_neon_vcgtv8qi (__a, __b, 1); 2211 } 2212 2213 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 2214 vcgt_s16 (int16x4_t __a, int16x4_t __b) 2215 { 2216 return (uint16x4_t)__builtin_neon_vcgtv4hi (__a, __b, 1); 2217 } 2218 2219 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2220 vcgt_s32 (int32x2_t __a, int32x2_t __b) 2221 { 2222 return (uint32x2_t)__builtin_neon_vcgtv2si (__a, __b, 1); 2223 } 2224 2225 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2226 vcgt_f32 (float32x2_t __a, float32x2_t __b) 2227 { 2228 return (uint32x2_t)__builtin_neon_vcgtv2sf (__a, __b, 3); 2229 } 2230 2231 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 2232 vcgt_u8 (uint8x8_t __a, uint8x8_t __b) 2233 { 2234 return (uint8x8_t)__builtin_neon_vcgtuv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 2235 } 2236 2237 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 2238 vcgt_u16 (uint16x4_t __a, uint16x4_t __b) 2239 { 2240 return (uint16x4_t)__builtin_neon_vcgtuv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 2241 } 2242 2243 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2244 vcgt_u32 (uint32x2_t __a, uint32x2_t __b) 2245 { 2246 return (uint32x2_t)__builtin_neon_vcgtuv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 2247 } 2248 2249 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2250 vcgtq_s8 (int8x16_t __a, int8x16_t __b) 2251 { 2252 return (uint8x16_t)__builtin_neon_vcgtv16qi (__a, __b, 1); 2253 } 2254 2255 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2256 vcgtq_s16 (int16x8_t __a, int16x8_t __b) 2257 { 2258 return (uint16x8_t)__builtin_neon_vcgtv8hi (__a, __b, 1); 2259 } 2260 2261 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2262 vcgtq_s32 (int32x4_t __a, int32x4_t __b) 2263 { 2264 return (uint32x4_t)__builtin_neon_vcgtv4si (__a, __b, 1); 2265 } 2266 2267 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2268 vcgtq_f32 (float32x4_t __a, float32x4_t __b) 2269 { 2270 return (uint32x4_t)__builtin_neon_vcgtv4sf (__a, __b, 3); 2271 } 2272 2273 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2274 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b) 2275 { 2276 return (uint8x16_t)__builtin_neon_vcgtuv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 2277 } 2278 2279 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2280 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b) 2281 { 2282 return (uint16x8_t)__builtin_neon_vcgtuv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 2283 } 2284 2285 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2286 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b) 2287 { 2288 return (uint32x4_t)__builtin_neon_vcgtuv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 2289 } 2290 2291 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 2292 vclt_s8 (int8x8_t __a, int8x8_t __b) 2293 { 2294 return (uint8x8_t)__builtin_neon_vcgtv8qi (__b, __a, 1); 2295 } 2296 2297 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 2298 vclt_s16 (int16x4_t __a, int16x4_t __b) 2299 { 2300 return (uint16x4_t)__builtin_neon_vcgtv4hi (__b, __a, 1); 2301 } 2302 2303 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2304 vclt_s32 (int32x2_t __a, int32x2_t __b) 2305 { 2306 return (uint32x2_t)__builtin_neon_vcgtv2si (__b, __a, 1); 2307 } 2308 2309 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2310 vclt_f32 (float32x2_t __a, float32x2_t __b) 2311 { 2312 return (uint32x2_t)__builtin_neon_vcgtv2sf (__b, __a, 3); 2313 } 2314 2315 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 2316 vclt_u8 (uint8x8_t __a, uint8x8_t __b) 2317 { 2318 return (uint8x8_t)__builtin_neon_vcgtuv8qi ((int8x8_t) __b, (int8x8_t) __a, 0); 2319 } 2320 2321 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 2322 vclt_u16 (uint16x4_t __a, uint16x4_t __b) 2323 { 2324 return (uint16x4_t)__builtin_neon_vcgtuv4hi ((int16x4_t) __b, (int16x4_t) __a, 0); 2325 } 2326 2327 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2328 vclt_u32 (uint32x2_t __a, uint32x2_t __b) 2329 { 2330 return (uint32x2_t)__builtin_neon_vcgtuv2si ((int32x2_t) __b, (int32x2_t) __a, 0); 2331 } 2332 2333 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2334 vcltq_s8 (int8x16_t __a, int8x16_t __b) 2335 { 2336 return (uint8x16_t)__builtin_neon_vcgtv16qi (__b, __a, 1); 2337 } 2338 2339 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2340 vcltq_s16 (int16x8_t __a, int16x8_t __b) 2341 { 2342 return (uint16x8_t)__builtin_neon_vcgtv8hi (__b, __a, 1); 2343 } 2344 2345 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2346 vcltq_s32 (int32x4_t __a, int32x4_t __b) 2347 { 2348 return (uint32x4_t)__builtin_neon_vcgtv4si (__b, __a, 1); 2349 } 2350 2351 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2352 vcltq_f32 (float32x4_t __a, float32x4_t __b) 2353 { 2354 return (uint32x4_t)__builtin_neon_vcgtv4sf (__b, __a, 3); 2355 } 2356 2357 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2358 vcltq_u8 (uint8x16_t __a, uint8x16_t __b) 2359 { 2360 return (uint8x16_t)__builtin_neon_vcgtuv16qi ((int8x16_t) __b, (int8x16_t) __a, 0); 2361 } 2362 2363 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2364 vcltq_u16 (uint16x8_t __a, uint16x8_t __b) 2365 { 2366 return (uint16x8_t)__builtin_neon_vcgtuv8hi ((int16x8_t) __b, (int16x8_t) __a, 0); 2367 } 2368 2369 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2370 vcltq_u32 (uint32x4_t __a, uint32x4_t __b) 2371 { 2372 return (uint32x4_t)__builtin_neon_vcgtuv4si ((int32x4_t) __b, (int32x4_t) __a, 0); 2373 } 2374 2375 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2376 vcage_f32 (float32x2_t __a, float32x2_t __b) 2377 { 2378 return (uint32x2_t)__builtin_neon_vcagev2sf (__a, __b, 3); 2379 } 2380 2381 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2382 vcageq_f32 (float32x4_t __a, float32x4_t __b) 2383 { 2384 return (uint32x4_t)__builtin_neon_vcagev4sf (__a, __b, 3); 2385 } 2386 2387 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2388 vcale_f32 (float32x2_t __a, float32x2_t __b) 2389 { 2390 return (uint32x2_t)__builtin_neon_vcagev2sf (__b, __a, 3); 2391 } 2392 2393 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2394 vcaleq_f32 (float32x4_t __a, float32x4_t __b) 2395 { 2396 return (uint32x4_t)__builtin_neon_vcagev4sf (__b, __a, 3); 2397 } 2398 2399 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2400 vcagt_f32 (float32x2_t __a, float32x2_t __b) 2401 { 2402 return (uint32x2_t)__builtin_neon_vcagtv2sf (__a, __b, 3); 2403 } 2404 2405 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2406 vcagtq_f32 (float32x4_t __a, float32x4_t __b) 2407 { 2408 return (uint32x4_t)__builtin_neon_vcagtv4sf (__a, __b, 3); 2409 } 2410 2411 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2412 vcalt_f32 (float32x2_t __a, float32x2_t __b) 2413 { 2414 return (uint32x2_t)__builtin_neon_vcagtv2sf (__b, __a, 3); 2415 } 2416 2417 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2418 vcaltq_f32 (float32x4_t __a, float32x4_t __b) 2419 { 2420 return (uint32x4_t)__builtin_neon_vcagtv4sf (__b, __a, 3); 2421 } 2422 2423 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 2424 vtst_s8 (int8x8_t __a, int8x8_t __b) 2425 { 2426 return (uint8x8_t)__builtin_neon_vtstv8qi (__a, __b, 1); 2427 } 2428 2429 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 2430 vtst_s16 (int16x4_t __a, int16x4_t __b) 2431 { 2432 return (uint16x4_t)__builtin_neon_vtstv4hi (__a, __b, 1); 2433 } 2434 2435 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2436 vtst_s32 (int32x2_t __a, int32x2_t __b) 2437 { 2438 return (uint32x2_t)__builtin_neon_vtstv2si (__a, __b, 1); 2439 } 2440 2441 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 2442 vtst_u8 (uint8x8_t __a, uint8x8_t __b) 2443 { 2444 return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 2445 } 2446 2447 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 2448 vtst_u16 (uint16x4_t __a, uint16x4_t __b) 2449 { 2450 return (uint16x4_t)__builtin_neon_vtstv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 2451 } 2452 2453 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2454 vtst_u32 (uint32x2_t __a, uint32x2_t __b) 2455 { 2456 return (uint32x2_t)__builtin_neon_vtstv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 2457 } 2458 2459 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 2460 vtst_p8 (poly8x8_t __a, poly8x8_t __b) 2461 { 2462 return (uint8x8_t)__builtin_neon_vtstv8qi ((int8x8_t) __a, (int8x8_t) __b, 2); 2463 } 2464 2465 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2466 vtstq_s8 (int8x16_t __a, int8x16_t __b) 2467 { 2468 return (uint8x16_t)__builtin_neon_vtstv16qi (__a, __b, 1); 2469 } 2470 2471 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2472 vtstq_s16 (int16x8_t __a, int16x8_t __b) 2473 { 2474 return (uint16x8_t)__builtin_neon_vtstv8hi (__a, __b, 1); 2475 } 2476 2477 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2478 vtstq_s32 (int32x4_t __a, int32x4_t __b) 2479 { 2480 return (uint32x4_t)__builtin_neon_vtstv4si (__a, __b, 1); 2481 } 2482 2483 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2484 vtstq_u8 (uint8x16_t __a, uint8x16_t __b) 2485 { 2486 return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 2487 } 2488 2489 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2490 vtstq_u16 (uint16x8_t __a, uint16x8_t __b) 2491 { 2492 return (uint16x8_t)__builtin_neon_vtstv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 2493 } 2494 2495 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2496 vtstq_u32 (uint32x4_t __a, uint32x4_t __b) 2497 { 2498 return (uint32x4_t)__builtin_neon_vtstv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 2499 } 2500 2501 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2502 vtstq_p8 (poly8x16_t __a, poly8x16_t __b) 2503 { 2504 return (uint8x16_t)__builtin_neon_vtstv16qi ((int8x16_t) __a, (int8x16_t) __b, 2); 2505 } 2506 2507 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 2508 vabd_s8 (int8x8_t __a, int8x8_t __b) 2509 { 2510 return (int8x8_t)__builtin_neon_vabdv8qi (__a, __b, 1); 2511 } 2512 2513 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 2514 vabd_s16 (int16x4_t __a, int16x4_t __b) 2515 { 2516 return (int16x4_t)__builtin_neon_vabdv4hi (__a, __b, 1); 2517 } 2518 2519 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 2520 vabd_s32 (int32x2_t __a, int32x2_t __b) 2521 { 2522 return (int32x2_t)__builtin_neon_vabdv2si (__a, __b, 1); 2523 } 2524 2525 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 2526 vabd_f32 (float32x2_t __a, float32x2_t __b) 2527 { 2528 return (float32x2_t)__builtin_neon_vabdv2sf (__a, __b, 3); 2529 } 2530 2531 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 2532 vabd_u8 (uint8x8_t __a, uint8x8_t __b) 2533 { 2534 return (uint8x8_t)__builtin_neon_vabdv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 2535 } 2536 2537 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 2538 vabd_u16 (uint16x4_t __a, uint16x4_t __b) 2539 { 2540 return (uint16x4_t)__builtin_neon_vabdv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 2541 } 2542 2543 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2544 vabd_u32 (uint32x2_t __a, uint32x2_t __b) 2545 { 2546 return (uint32x2_t)__builtin_neon_vabdv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 2547 } 2548 2549 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 2550 vabdq_s8 (int8x16_t __a, int8x16_t __b) 2551 { 2552 return (int8x16_t)__builtin_neon_vabdv16qi (__a, __b, 1); 2553 } 2554 2555 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 2556 vabdq_s16 (int16x8_t __a, int16x8_t __b) 2557 { 2558 return (int16x8_t)__builtin_neon_vabdv8hi (__a, __b, 1); 2559 } 2560 2561 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 2562 vabdq_s32 (int32x4_t __a, int32x4_t __b) 2563 { 2564 return (int32x4_t)__builtin_neon_vabdv4si (__a, __b, 1); 2565 } 2566 2567 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 2568 vabdq_f32 (float32x4_t __a, float32x4_t __b) 2569 { 2570 return (float32x4_t)__builtin_neon_vabdv4sf (__a, __b, 3); 2571 } 2572 2573 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2574 vabdq_u8 (uint8x16_t __a, uint8x16_t __b) 2575 { 2576 return (uint8x16_t)__builtin_neon_vabdv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 2577 } 2578 2579 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2580 vabdq_u16 (uint16x8_t __a, uint16x8_t __b) 2581 { 2582 return (uint16x8_t)__builtin_neon_vabdv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 2583 } 2584 2585 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2586 vabdq_u32 (uint32x4_t __a, uint32x4_t __b) 2587 { 2588 return (uint32x4_t)__builtin_neon_vabdv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 2589 } 2590 2591 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 2592 vabdl_s8 (int8x8_t __a, int8x8_t __b) 2593 { 2594 return (int16x8_t)__builtin_neon_vabdlv8qi (__a, __b, 1); 2595 } 2596 2597 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 2598 vabdl_s16 (int16x4_t __a, int16x4_t __b) 2599 { 2600 return (int32x4_t)__builtin_neon_vabdlv4hi (__a, __b, 1); 2601 } 2602 2603 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 2604 vabdl_s32 (int32x2_t __a, int32x2_t __b) 2605 { 2606 return (int64x2_t)__builtin_neon_vabdlv2si (__a, __b, 1); 2607 } 2608 2609 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2610 vabdl_u8 (uint8x8_t __a, uint8x8_t __b) 2611 { 2612 return (uint16x8_t)__builtin_neon_vabdlv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 2613 } 2614 2615 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2616 vabdl_u16 (uint16x4_t __a, uint16x4_t __b) 2617 { 2618 return (uint32x4_t)__builtin_neon_vabdlv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 2619 } 2620 2621 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 2622 vabdl_u32 (uint32x2_t __a, uint32x2_t __b) 2623 { 2624 return (uint64x2_t)__builtin_neon_vabdlv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 2625 } 2626 2627 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 2628 vaba_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c) 2629 { 2630 return (int8x8_t)__builtin_neon_vabav8qi (__a, __b, __c, 1); 2631 } 2632 2633 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 2634 vaba_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c) 2635 { 2636 return (int16x4_t)__builtin_neon_vabav4hi (__a, __b, __c, 1); 2637 } 2638 2639 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 2640 vaba_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c) 2641 { 2642 return (int32x2_t)__builtin_neon_vabav2si (__a, __b, __c, 1); 2643 } 2644 2645 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 2646 vaba_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c) 2647 { 2648 return (uint8x8_t)__builtin_neon_vabav8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0); 2649 } 2650 2651 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 2652 vaba_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c) 2653 { 2654 return (uint16x4_t)__builtin_neon_vabav4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0); 2655 } 2656 2657 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2658 vaba_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c) 2659 { 2660 return (uint32x2_t)__builtin_neon_vabav2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0); 2661 } 2662 2663 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 2664 vabaq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c) 2665 { 2666 return (int8x16_t)__builtin_neon_vabav16qi (__a, __b, __c, 1); 2667 } 2668 2669 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 2670 vabaq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c) 2671 { 2672 return (int16x8_t)__builtin_neon_vabav8hi (__a, __b, __c, 1); 2673 } 2674 2675 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 2676 vabaq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c) 2677 { 2678 return (int32x4_t)__builtin_neon_vabav4si (__a, __b, __c, 1); 2679 } 2680 2681 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2682 vabaq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c) 2683 { 2684 return (uint8x16_t)__builtin_neon_vabav16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c, 0); 2685 } 2686 2687 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2688 vabaq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c) 2689 { 2690 return (uint16x8_t)__builtin_neon_vabav8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c, 0); 2691 } 2692 2693 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2694 vabaq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c) 2695 { 2696 return (uint32x4_t)__builtin_neon_vabav4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c, 0); 2697 } 2698 2699 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 2700 vabal_s8 (int16x8_t __a, int8x8_t __b, int8x8_t __c) 2701 { 2702 return (int16x8_t)__builtin_neon_vabalv8qi (__a, __b, __c, 1); 2703 } 2704 2705 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 2706 vabal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c) 2707 { 2708 return (int32x4_t)__builtin_neon_vabalv4hi (__a, __b, __c, 1); 2709 } 2710 2711 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 2712 vabal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c) 2713 { 2714 return (int64x2_t)__builtin_neon_vabalv2si (__a, __b, __c, 1); 2715 } 2716 2717 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2718 vabal_u8 (uint16x8_t __a, uint8x8_t __b, uint8x8_t __c) 2719 { 2720 return (uint16x8_t)__builtin_neon_vabalv8qi ((int16x8_t) __a, (int8x8_t) __b, (int8x8_t) __c, 0); 2721 } 2722 2723 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2724 vabal_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c) 2725 { 2726 return (uint32x4_t)__builtin_neon_vabalv4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, 0); 2727 } 2728 2729 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 2730 vabal_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c) 2731 { 2732 return (uint64x2_t)__builtin_neon_vabalv2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, 0); 2733 } 2734 2735 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 2736 vmax_s8 (int8x8_t __a, int8x8_t __b) 2737 { 2738 return (int8x8_t)__builtin_neon_vmaxv8qi (__a, __b, 1); 2739 } 2740 2741 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 2742 vmax_s16 (int16x4_t __a, int16x4_t __b) 2743 { 2744 return (int16x4_t)__builtin_neon_vmaxv4hi (__a, __b, 1); 2745 } 2746 2747 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 2748 vmax_s32 (int32x2_t __a, int32x2_t __b) 2749 { 2750 return (int32x2_t)__builtin_neon_vmaxv2si (__a, __b, 1); 2751 } 2752 2753 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 2754 vmax_f32 (float32x2_t __a, float32x2_t __b) 2755 { 2756 return (float32x2_t)__builtin_neon_vmaxv2sf (__a, __b, 3); 2757 } 2758 2759 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 2760 vmax_u8 (uint8x8_t __a, uint8x8_t __b) 2761 { 2762 return (uint8x8_t)__builtin_neon_vmaxv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 2763 } 2764 2765 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 2766 vmax_u16 (uint16x4_t __a, uint16x4_t __b) 2767 { 2768 return (uint16x4_t)__builtin_neon_vmaxv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 2769 } 2770 2771 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2772 vmax_u32 (uint32x2_t __a, uint32x2_t __b) 2773 { 2774 return (uint32x2_t)__builtin_neon_vmaxv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 2775 } 2776 2777 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 2778 vmaxq_s8 (int8x16_t __a, int8x16_t __b) 2779 { 2780 return (int8x16_t)__builtin_neon_vmaxv16qi (__a, __b, 1); 2781 } 2782 2783 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 2784 vmaxq_s16 (int16x8_t __a, int16x8_t __b) 2785 { 2786 return (int16x8_t)__builtin_neon_vmaxv8hi (__a, __b, 1); 2787 } 2788 2789 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 2790 vmaxq_s32 (int32x4_t __a, int32x4_t __b) 2791 { 2792 return (int32x4_t)__builtin_neon_vmaxv4si (__a, __b, 1); 2793 } 2794 2795 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 2796 vmaxq_f32 (float32x4_t __a, float32x4_t __b) 2797 { 2798 return (float32x4_t)__builtin_neon_vmaxv4sf (__a, __b, 3); 2799 } 2800 2801 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2802 vmaxq_u8 (uint8x16_t __a, uint8x16_t __b) 2803 { 2804 return (uint8x16_t)__builtin_neon_vmaxv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 2805 } 2806 2807 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2808 vmaxq_u16 (uint16x8_t __a, uint16x8_t __b) 2809 { 2810 return (uint16x8_t)__builtin_neon_vmaxv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 2811 } 2812 2813 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2814 vmaxq_u32 (uint32x4_t __a, uint32x4_t __b) 2815 { 2816 return (uint32x4_t)__builtin_neon_vmaxv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 2817 } 2818 2819 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 2820 vmin_s8 (int8x8_t __a, int8x8_t __b) 2821 { 2822 return (int8x8_t)__builtin_neon_vminv8qi (__a, __b, 1); 2823 } 2824 2825 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 2826 vmin_s16 (int16x4_t __a, int16x4_t __b) 2827 { 2828 return (int16x4_t)__builtin_neon_vminv4hi (__a, __b, 1); 2829 } 2830 2831 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 2832 vmin_s32 (int32x2_t __a, int32x2_t __b) 2833 { 2834 return (int32x2_t)__builtin_neon_vminv2si (__a, __b, 1); 2835 } 2836 2837 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 2838 vmin_f32 (float32x2_t __a, float32x2_t __b) 2839 { 2840 return (float32x2_t)__builtin_neon_vminv2sf (__a, __b, 3); 2841 } 2842 2843 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 2844 vmin_u8 (uint8x8_t __a, uint8x8_t __b) 2845 { 2846 return (uint8x8_t)__builtin_neon_vminv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 2847 } 2848 2849 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 2850 vmin_u16 (uint16x4_t __a, uint16x4_t __b) 2851 { 2852 return (uint16x4_t)__builtin_neon_vminv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 2853 } 2854 2855 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2856 vmin_u32 (uint32x2_t __a, uint32x2_t __b) 2857 { 2858 return (uint32x2_t)__builtin_neon_vminv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 2859 } 2860 2861 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 2862 vminq_s8 (int8x16_t __a, int8x16_t __b) 2863 { 2864 return (int8x16_t)__builtin_neon_vminv16qi (__a, __b, 1); 2865 } 2866 2867 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 2868 vminq_s16 (int16x8_t __a, int16x8_t __b) 2869 { 2870 return (int16x8_t)__builtin_neon_vminv8hi (__a, __b, 1); 2871 } 2872 2873 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 2874 vminq_s32 (int32x4_t __a, int32x4_t __b) 2875 { 2876 return (int32x4_t)__builtin_neon_vminv4si (__a, __b, 1); 2877 } 2878 2879 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 2880 vminq_f32 (float32x4_t __a, float32x4_t __b) 2881 { 2882 return (float32x4_t)__builtin_neon_vminv4sf (__a, __b, 3); 2883 } 2884 2885 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 2886 vminq_u8 (uint8x16_t __a, uint8x16_t __b) 2887 { 2888 return (uint8x16_t)__builtin_neon_vminv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 2889 } 2890 2891 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 2892 vminq_u16 (uint16x8_t __a, uint16x8_t __b) 2893 { 2894 return (uint16x8_t)__builtin_neon_vminv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 2895 } 2896 2897 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 2898 vminq_u32 (uint32x4_t __a, uint32x4_t __b) 2899 { 2900 return (uint32x4_t)__builtin_neon_vminv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 2901 } 2902 2903 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 2904 vpadd_s8 (int8x8_t __a, int8x8_t __b) 2905 { 2906 return (int8x8_t)__builtin_neon_vpaddv8qi (__a, __b, 1); 2907 } 2908 2909 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 2910 vpadd_s16 (int16x4_t __a, int16x4_t __b) 2911 { 2912 return (int16x4_t)__builtin_neon_vpaddv4hi (__a, __b, 1); 2913 } 2914 2915 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 2916 vpadd_s32 (int32x2_t __a, int32x2_t __b) 2917 { 2918 return (int32x2_t)__builtin_neon_vpaddv2si (__a, __b, 1); 2919 } 2920 2921 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 2922 vpadd_f32 (float32x2_t __a, float32x2_t __b) 2923 { 2924 return (float32x2_t)__builtin_neon_vpaddv2sf (__a, __b, 3); 2925 } 2926 2927 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 2928 vpadd_u8 (uint8x8_t __a, uint8x8_t __b) 2929 { 2930 return (uint8x8_t)__builtin_neon_vpaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 2931 } 2932 2933 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 2934 vpadd_u16 (uint16x4_t __a, uint16x4_t __b) 2935 { 2936 return (uint16x4_t)__builtin_neon_vpaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 2937 } 2938 2939 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2940 vpadd_u32 (uint32x2_t __a, uint32x2_t __b) 2941 { 2942 return (uint32x2_t)__builtin_neon_vpaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 2943 } 2944 2945 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 2946 vpaddl_s8 (int8x8_t __a) 2947 { 2948 return (int16x4_t)__builtin_neon_vpaddlv8qi (__a, 1); 2949 } 2950 2951 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 2952 vpaddl_s16 (int16x4_t __a) 2953 { 2954 return (int32x2_t)__builtin_neon_vpaddlv4hi (__a, 1); 2955 } 2956 2957 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 2958 vpaddl_s32 (int32x2_t __a) 2959 { 2960 return (int64x1_t)__builtin_neon_vpaddlv2si (__a, 1); 2961 } 2962 2963 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 2964 vpaddl_u8 (uint8x8_t __a) 2965 { 2966 return (uint16x4_t)__builtin_neon_vpaddlv8qi ((int8x8_t) __a, 0); 2967 } 2968 2969 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 2970 vpaddl_u16 (uint16x4_t __a) 2971 { 2972 return (uint32x2_t)__builtin_neon_vpaddlv4hi ((int16x4_t) __a, 0); 2973 } 2974 2975 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 2976 vpaddl_u32 (uint32x2_t __a) 2977 { 2978 return (uint64x1_t)__builtin_neon_vpaddlv2si ((int32x2_t) __a, 0); 2979 } 2980 2981 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 2982 vpaddlq_s8 (int8x16_t __a) 2983 { 2984 return (int16x8_t)__builtin_neon_vpaddlv16qi (__a, 1); 2985 } 2986 2987 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 2988 vpaddlq_s16 (int16x8_t __a) 2989 { 2990 return (int32x4_t)__builtin_neon_vpaddlv8hi (__a, 1); 2991 } 2992 2993 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 2994 vpaddlq_s32 (int32x4_t __a) 2995 { 2996 return (int64x2_t)__builtin_neon_vpaddlv4si (__a, 1); 2997 } 2998 2999 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 3000 vpaddlq_u8 (uint8x16_t __a) 3001 { 3002 return (uint16x8_t)__builtin_neon_vpaddlv16qi ((int8x16_t) __a, 0); 3003 } 3004 3005 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 3006 vpaddlq_u16 (uint16x8_t __a) 3007 { 3008 return (uint32x4_t)__builtin_neon_vpaddlv8hi ((int16x8_t) __a, 0); 3009 } 3010 3011 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 3012 vpaddlq_u32 (uint32x4_t __a) 3013 { 3014 return (uint64x2_t)__builtin_neon_vpaddlv4si ((int32x4_t) __a, 0); 3015 } 3016 3017 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 3018 vpadal_s8 (int16x4_t __a, int8x8_t __b) 3019 { 3020 return (int16x4_t)__builtin_neon_vpadalv8qi (__a, __b, 1); 3021 } 3022 3023 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 3024 vpadal_s16 (int32x2_t __a, int16x4_t __b) 3025 { 3026 return (int32x2_t)__builtin_neon_vpadalv4hi (__a, __b, 1); 3027 } 3028 3029 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 3030 vpadal_s32 (int64x1_t __a, int32x2_t __b) 3031 { 3032 return (int64x1_t)__builtin_neon_vpadalv2si (__a, __b, 1); 3033 } 3034 3035 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 3036 vpadal_u8 (uint16x4_t __a, uint8x8_t __b) 3037 { 3038 return (uint16x4_t)__builtin_neon_vpadalv8qi ((int16x4_t) __a, (int8x8_t) __b, 0); 3039 } 3040 3041 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 3042 vpadal_u16 (uint32x2_t __a, uint16x4_t __b) 3043 { 3044 return (uint32x2_t)__builtin_neon_vpadalv4hi ((int32x2_t) __a, (int16x4_t) __b, 0); 3045 } 3046 3047 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 3048 vpadal_u32 (uint64x1_t __a, uint32x2_t __b) 3049 { 3050 return (uint64x1_t)__builtin_neon_vpadalv2si ((int64x1_t) __a, (int32x2_t) __b, 0); 3051 } 3052 3053 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 3054 vpadalq_s8 (int16x8_t __a, int8x16_t __b) 3055 { 3056 return (int16x8_t)__builtin_neon_vpadalv16qi (__a, __b, 1); 3057 } 3058 3059 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 3060 vpadalq_s16 (int32x4_t __a, int16x8_t __b) 3061 { 3062 return (int32x4_t)__builtin_neon_vpadalv8hi (__a, __b, 1); 3063 } 3064 3065 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 3066 vpadalq_s32 (int64x2_t __a, int32x4_t __b) 3067 { 3068 return (int64x2_t)__builtin_neon_vpadalv4si (__a, __b, 1); 3069 } 3070 3071 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 3072 vpadalq_u8 (uint16x8_t __a, uint8x16_t __b) 3073 { 3074 return (uint16x8_t)__builtin_neon_vpadalv16qi ((int16x8_t) __a, (int8x16_t) __b, 0); 3075 } 3076 3077 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 3078 vpadalq_u16 (uint32x4_t __a, uint16x8_t __b) 3079 { 3080 return (uint32x4_t)__builtin_neon_vpadalv8hi ((int32x4_t) __a, (int16x8_t) __b, 0); 3081 } 3082 3083 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 3084 vpadalq_u32 (uint64x2_t __a, uint32x4_t __b) 3085 { 3086 return (uint64x2_t)__builtin_neon_vpadalv4si ((int64x2_t) __a, (int32x4_t) __b, 0); 3087 } 3088 3089 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 3090 vpmax_s8 (int8x8_t __a, int8x8_t __b) 3091 { 3092 return (int8x8_t)__builtin_neon_vpmaxv8qi (__a, __b, 1); 3093 } 3094 3095 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 3096 vpmax_s16 (int16x4_t __a, int16x4_t __b) 3097 { 3098 return (int16x4_t)__builtin_neon_vpmaxv4hi (__a, __b, 1); 3099 } 3100 3101 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 3102 vpmax_s32 (int32x2_t __a, int32x2_t __b) 3103 { 3104 return (int32x2_t)__builtin_neon_vpmaxv2si (__a, __b, 1); 3105 } 3106 3107 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 3108 vpmax_f32 (float32x2_t __a, float32x2_t __b) 3109 { 3110 return (float32x2_t)__builtin_neon_vpmaxv2sf (__a, __b, 3); 3111 } 3112 3113 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 3114 vpmax_u8 (uint8x8_t __a, uint8x8_t __b) 3115 { 3116 return (uint8x8_t)__builtin_neon_vpmaxv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 3117 } 3118 3119 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 3120 vpmax_u16 (uint16x4_t __a, uint16x4_t __b) 3121 { 3122 return (uint16x4_t)__builtin_neon_vpmaxv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 3123 } 3124 3125 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 3126 vpmax_u32 (uint32x2_t __a, uint32x2_t __b) 3127 { 3128 return (uint32x2_t)__builtin_neon_vpmaxv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 3129 } 3130 3131 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 3132 vpmin_s8 (int8x8_t __a, int8x8_t __b) 3133 { 3134 return (int8x8_t)__builtin_neon_vpminv8qi (__a, __b, 1); 3135 } 3136 3137 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 3138 vpmin_s16 (int16x4_t __a, int16x4_t __b) 3139 { 3140 return (int16x4_t)__builtin_neon_vpminv4hi (__a, __b, 1); 3141 } 3142 3143 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 3144 vpmin_s32 (int32x2_t __a, int32x2_t __b) 3145 { 3146 return (int32x2_t)__builtin_neon_vpminv2si (__a, __b, 1); 3147 } 3148 3149 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 3150 vpmin_f32 (float32x2_t __a, float32x2_t __b) 3151 { 3152 return (float32x2_t)__builtin_neon_vpminv2sf (__a, __b, 3); 3153 } 3154 3155 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 3156 vpmin_u8 (uint8x8_t __a, uint8x8_t __b) 3157 { 3158 return (uint8x8_t)__builtin_neon_vpminv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 3159 } 3160 3161 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 3162 vpmin_u16 (uint16x4_t __a, uint16x4_t __b) 3163 { 3164 return (uint16x4_t)__builtin_neon_vpminv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 3165 } 3166 3167 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 3168 vpmin_u32 (uint32x2_t __a, uint32x2_t __b) 3169 { 3170 return (uint32x2_t)__builtin_neon_vpminv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 3171 } 3172 3173 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 3174 vrecps_f32 (float32x2_t __a, float32x2_t __b) 3175 { 3176 return (float32x2_t)__builtin_neon_vrecpsv2sf (__a, __b, 3); 3177 } 3178 3179 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 3180 vrecpsq_f32 (float32x4_t __a, float32x4_t __b) 3181 { 3182 return (float32x4_t)__builtin_neon_vrecpsv4sf (__a, __b, 3); 3183 } 3184 3185 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 3186 vrsqrts_f32 (float32x2_t __a, float32x2_t __b) 3187 { 3188 return (float32x2_t)__builtin_neon_vrsqrtsv2sf (__a, __b, 3); 3189 } 3190 3191 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 3192 vrsqrtsq_f32 (float32x4_t __a, float32x4_t __b) 3193 { 3194 return (float32x4_t)__builtin_neon_vrsqrtsv4sf (__a, __b, 3); 3195 } 3196 3197 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 3198 vshl_s8 (int8x8_t __a, int8x8_t __b) 3199 { 3200 return (int8x8_t)__builtin_neon_vshlv8qi (__a, __b, 1); 3201 } 3202 3203 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 3204 vshl_s16 (int16x4_t __a, int16x4_t __b) 3205 { 3206 return (int16x4_t)__builtin_neon_vshlv4hi (__a, __b, 1); 3207 } 3208 3209 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 3210 vshl_s32 (int32x2_t __a, int32x2_t __b) 3211 { 3212 return (int32x2_t)__builtin_neon_vshlv2si (__a, __b, 1); 3213 } 3214 3215 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 3216 vshl_s64 (int64x1_t __a, int64x1_t __b) 3217 { 3218 return (int64x1_t)__builtin_neon_vshldi (__a, __b, 1); 3219 } 3220 3221 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 3222 vshl_u8 (uint8x8_t __a, int8x8_t __b) 3223 { 3224 return (uint8x8_t)__builtin_neon_vshlv8qi ((int8x8_t) __a, __b, 0); 3225 } 3226 3227 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 3228 vshl_u16 (uint16x4_t __a, int16x4_t __b) 3229 { 3230 return (uint16x4_t)__builtin_neon_vshlv4hi ((int16x4_t) __a, __b, 0); 3231 } 3232 3233 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 3234 vshl_u32 (uint32x2_t __a, int32x2_t __b) 3235 { 3236 return (uint32x2_t)__builtin_neon_vshlv2si ((int32x2_t) __a, __b, 0); 3237 } 3238 3239 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 3240 vshl_u64 (uint64x1_t __a, int64x1_t __b) 3241 { 3242 return (uint64x1_t)__builtin_neon_vshldi ((int64x1_t) __a, __b, 0); 3243 } 3244 3245 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 3246 vshlq_s8 (int8x16_t __a, int8x16_t __b) 3247 { 3248 return (int8x16_t)__builtin_neon_vshlv16qi (__a, __b, 1); 3249 } 3250 3251 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 3252 vshlq_s16 (int16x8_t __a, int16x8_t __b) 3253 { 3254 return (int16x8_t)__builtin_neon_vshlv8hi (__a, __b, 1); 3255 } 3256 3257 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 3258 vshlq_s32 (int32x4_t __a, int32x4_t __b) 3259 { 3260 return (int32x4_t)__builtin_neon_vshlv4si (__a, __b, 1); 3261 } 3262 3263 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 3264 vshlq_s64 (int64x2_t __a, int64x2_t __b) 3265 { 3266 return (int64x2_t)__builtin_neon_vshlv2di (__a, __b, 1); 3267 } 3268 3269 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 3270 vshlq_u8 (uint8x16_t __a, int8x16_t __b) 3271 { 3272 return (uint8x16_t)__builtin_neon_vshlv16qi ((int8x16_t) __a, __b, 0); 3273 } 3274 3275 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 3276 vshlq_u16 (uint16x8_t __a, int16x8_t __b) 3277 { 3278 return (uint16x8_t)__builtin_neon_vshlv8hi ((int16x8_t) __a, __b, 0); 3279 } 3280 3281 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 3282 vshlq_u32 (uint32x4_t __a, int32x4_t __b) 3283 { 3284 return (uint32x4_t)__builtin_neon_vshlv4si ((int32x4_t) __a, __b, 0); 3285 } 3286 3287 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 3288 vshlq_u64 (uint64x2_t __a, int64x2_t __b) 3289 { 3290 return (uint64x2_t)__builtin_neon_vshlv2di ((int64x2_t) __a, __b, 0); 3291 } 3292 3293 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 3294 vrshl_s8 (int8x8_t __a, int8x8_t __b) 3295 { 3296 return (int8x8_t)__builtin_neon_vshlv8qi (__a, __b, 5); 3297 } 3298 3299 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 3300 vrshl_s16 (int16x4_t __a, int16x4_t __b) 3301 { 3302 return (int16x4_t)__builtin_neon_vshlv4hi (__a, __b, 5); 3303 } 3304 3305 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 3306 vrshl_s32 (int32x2_t __a, int32x2_t __b) 3307 { 3308 return (int32x2_t)__builtin_neon_vshlv2si (__a, __b, 5); 3309 } 3310 3311 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 3312 vrshl_s64 (int64x1_t __a, int64x1_t __b) 3313 { 3314 return (int64x1_t)__builtin_neon_vshldi (__a, __b, 5); 3315 } 3316 3317 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 3318 vrshl_u8 (uint8x8_t __a, int8x8_t __b) 3319 { 3320 return (uint8x8_t)__builtin_neon_vshlv8qi ((int8x8_t) __a, __b, 4); 3321 } 3322 3323 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 3324 vrshl_u16 (uint16x4_t __a, int16x4_t __b) 3325 { 3326 return (uint16x4_t)__builtin_neon_vshlv4hi ((int16x4_t) __a, __b, 4); 3327 } 3328 3329 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 3330 vrshl_u32 (uint32x2_t __a, int32x2_t __b) 3331 { 3332 return (uint32x2_t)__builtin_neon_vshlv2si ((int32x2_t) __a, __b, 4); 3333 } 3334 3335 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 3336 vrshl_u64 (uint64x1_t __a, int64x1_t __b) 3337 { 3338 return (uint64x1_t)__builtin_neon_vshldi ((int64x1_t) __a, __b, 4); 3339 } 3340 3341 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 3342 vrshlq_s8 (int8x16_t __a, int8x16_t __b) 3343 { 3344 return (int8x16_t)__builtin_neon_vshlv16qi (__a, __b, 5); 3345 } 3346 3347 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 3348 vrshlq_s16 (int16x8_t __a, int16x8_t __b) 3349 { 3350 return (int16x8_t)__builtin_neon_vshlv8hi (__a, __b, 5); 3351 } 3352 3353 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 3354 vrshlq_s32 (int32x4_t __a, int32x4_t __b) 3355 { 3356 return (int32x4_t)__builtin_neon_vshlv4si (__a, __b, 5); 3357 } 3358 3359 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 3360 vrshlq_s64 (int64x2_t __a, int64x2_t __b) 3361 { 3362 return (int64x2_t)__builtin_neon_vshlv2di (__a, __b, 5); 3363 } 3364 3365 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 3366 vrshlq_u8 (uint8x16_t __a, int8x16_t __b) 3367 { 3368 return (uint8x16_t)__builtin_neon_vshlv16qi ((int8x16_t) __a, __b, 4); 3369 } 3370 3371 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 3372 vrshlq_u16 (uint16x8_t __a, int16x8_t __b) 3373 { 3374 return (uint16x8_t)__builtin_neon_vshlv8hi ((int16x8_t) __a, __b, 4); 3375 } 3376 3377 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 3378 vrshlq_u32 (uint32x4_t __a, int32x4_t __b) 3379 { 3380 return (uint32x4_t)__builtin_neon_vshlv4si ((int32x4_t) __a, __b, 4); 3381 } 3382 3383 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 3384 vrshlq_u64 (uint64x2_t __a, int64x2_t __b) 3385 { 3386 return (uint64x2_t)__builtin_neon_vshlv2di ((int64x2_t) __a, __b, 4); 3387 } 3388 3389 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 3390 vqshl_s8 (int8x8_t __a, int8x8_t __b) 3391 { 3392 return (int8x8_t)__builtin_neon_vqshlv8qi (__a, __b, 1); 3393 } 3394 3395 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 3396 vqshl_s16 (int16x4_t __a, int16x4_t __b) 3397 { 3398 return (int16x4_t)__builtin_neon_vqshlv4hi (__a, __b, 1); 3399 } 3400 3401 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 3402 vqshl_s32 (int32x2_t __a, int32x2_t __b) 3403 { 3404 return (int32x2_t)__builtin_neon_vqshlv2si (__a, __b, 1); 3405 } 3406 3407 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 3408 vqshl_s64 (int64x1_t __a, int64x1_t __b) 3409 { 3410 return (int64x1_t)__builtin_neon_vqshldi (__a, __b, 1); 3411 } 3412 3413 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 3414 vqshl_u8 (uint8x8_t __a, int8x8_t __b) 3415 { 3416 return (uint8x8_t)__builtin_neon_vqshlv8qi ((int8x8_t) __a, __b, 0); 3417 } 3418 3419 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 3420 vqshl_u16 (uint16x4_t __a, int16x4_t __b) 3421 { 3422 return (uint16x4_t)__builtin_neon_vqshlv4hi ((int16x4_t) __a, __b, 0); 3423 } 3424 3425 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 3426 vqshl_u32 (uint32x2_t __a, int32x2_t __b) 3427 { 3428 return (uint32x2_t)__builtin_neon_vqshlv2si ((int32x2_t) __a, __b, 0); 3429 } 3430 3431 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 3432 vqshl_u64 (uint64x1_t __a, int64x1_t __b) 3433 { 3434 return (uint64x1_t)__builtin_neon_vqshldi ((int64x1_t) __a, __b, 0); 3435 } 3436 3437 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 3438 vqshlq_s8 (int8x16_t __a, int8x16_t __b) 3439 { 3440 return (int8x16_t)__builtin_neon_vqshlv16qi (__a, __b, 1); 3441 } 3442 3443 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 3444 vqshlq_s16 (int16x8_t __a, int16x8_t __b) 3445 { 3446 return (int16x8_t)__builtin_neon_vqshlv8hi (__a, __b, 1); 3447 } 3448 3449 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 3450 vqshlq_s32 (int32x4_t __a, int32x4_t __b) 3451 { 3452 return (int32x4_t)__builtin_neon_vqshlv4si (__a, __b, 1); 3453 } 3454 3455 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 3456 vqshlq_s64 (int64x2_t __a, int64x2_t __b) 3457 { 3458 return (int64x2_t)__builtin_neon_vqshlv2di (__a, __b, 1); 3459 } 3460 3461 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 3462 vqshlq_u8 (uint8x16_t __a, int8x16_t __b) 3463 { 3464 return (uint8x16_t)__builtin_neon_vqshlv16qi ((int8x16_t) __a, __b, 0); 3465 } 3466 3467 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 3468 vqshlq_u16 (uint16x8_t __a, int16x8_t __b) 3469 { 3470 return (uint16x8_t)__builtin_neon_vqshlv8hi ((int16x8_t) __a, __b, 0); 3471 } 3472 3473 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 3474 vqshlq_u32 (uint32x4_t __a, int32x4_t __b) 3475 { 3476 return (uint32x4_t)__builtin_neon_vqshlv4si ((int32x4_t) __a, __b, 0); 3477 } 3478 3479 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 3480 vqshlq_u64 (uint64x2_t __a, int64x2_t __b) 3481 { 3482 return (uint64x2_t)__builtin_neon_vqshlv2di ((int64x2_t) __a, __b, 0); 3483 } 3484 3485 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 3486 vqrshl_s8 (int8x8_t __a, int8x8_t __b) 3487 { 3488 return (int8x8_t)__builtin_neon_vqshlv8qi (__a, __b, 5); 3489 } 3490 3491 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 3492 vqrshl_s16 (int16x4_t __a, int16x4_t __b) 3493 { 3494 return (int16x4_t)__builtin_neon_vqshlv4hi (__a, __b, 5); 3495 } 3496 3497 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 3498 vqrshl_s32 (int32x2_t __a, int32x2_t __b) 3499 { 3500 return (int32x2_t)__builtin_neon_vqshlv2si (__a, __b, 5); 3501 } 3502 3503 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 3504 vqrshl_s64 (int64x1_t __a, int64x1_t __b) 3505 { 3506 return (int64x1_t)__builtin_neon_vqshldi (__a, __b, 5); 3507 } 3508 3509 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 3510 vqrshl_u8 (uint8x8_t __a, int8x8_t __b) 3511 { 3512 return (uint8x8_t)__builtin_neon_vqshlv8qi ((int8x8_t) __a, __b, 4); 3513 } 3514 3515 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 3516 vqrshl_u16 (uint16x4_t __a, int16x4_t __b) 3517 { 3518 return (uint16x4_t)__builtin_neon_vqshlv4hi ((int16x4_t) __a, __b, 4); 3519 } 3520 3521 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 3522 vqrshl_u32 (uint32x2_t __a, int32x2_t __b) 3523 { 3524 return (uint32x2_t)__builtin_neon_vqshlv2si ((int32x2_t) __a, __b, 4); 3525 } 3526 3527 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 3528 vqrshl_u64 (uint64x1_t __a, int64x1_t __b) 3529 { 3530 return (uint64x1_t)__builtin_neon_vqshldi ((int64x1_t) __a, __b, 4); 3531 } 3532 3533 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 3534 vqrshlq_s8 (int8x16_t __a, int8x16_t __b) 3535 { 3536 return (int8x16_t)__builtin_neon_vqshlv16qi (__a, __b, 5); 3537 } 3538 3539 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 3540 vqrshlq_s16 (int16x8_t __a, int16x8_t __b) 3541 { 3542 return (int16x8_t)__builtin_neon_vqshlv8hi (__a, __b, 5); 3543 } 3544 3545 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 3546 vqrshlq_s32 (int32x4_t __a, int32x4_t __b) 3547 { 3548 return (int32x4_t)__builtin_neon_vqshlv4si (__a, __b, 5); 3549 } 3550 3551 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 3552 vqrshlq_s64 (int64x2_t __a, int64x2_t __b) 3553 { 3554 return (int64x2_t)__builtin_neon_vqshlv2di (__a, __b, 5); 3555 } 3556 3557 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 3558 vqrshlq_u8 (uint8x16_t __a, int8x16_t __b) 3559 { 3560 return (uint8x16_t)__builtin_neon_vqshlv16qi ((int8x16_t) __a, __b, 4); 3561 } 3562 3563 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 3564 vqrshlq_u16 (uint16x8_t __a, int16x8_t __b) 3565 { 3566 return (uint16x8_t)__builtin_neon_vqshlv8hi ((int16x8_t) __a, __b, 4); 3567 } 3568 3569 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 3570 vqrshlq_u32 (uint32x4_t __a, int32x4_t __b) 3571 { 3572 return (uint32x4_t)__builtin_neon_vqshlv4si ((int32x4_t) __a, __b, 4); 3573 } 3574 3575 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 3576 vqrshlq_u64 (uint64x2_t __a, int64x2_t __b) 3577 { 3578 return (uint64x2_t)__builtin_neon_vqshlv2di ((int64x2_t) __a, __b, 4); 3579 } 3580 3581 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 3582 vshr_n_s8 (int8x8_t __a, const int __b) 3583 { 3584 return (int8x8_t)__builtin_neon_vshr_nv8qi (__a, __b, 1); 3585 } 3586 3587 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 3588 vshr_n_s16 (int16x4_t __a, const int __b) 3589 { 3590 return (int16x4_t)__builtin_neon_vshr_nv4hi (__a, __b, 1); 3591 } 3592 3593 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 3594 vshr_n_s32 (int32x2_t __a, const int __b) 3595 { 3596 return (int32x2_t)__builtin_neon_vshr_nv2si (__a, __b, 1); 3597 } 3598 3599 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 3600 vshr_n_s64 (int64x1_t __a, const int __b) 3601 { 3602 return (int64x1_t)__builtin_neon_vshr_ndi (__a, __b, 1); 3603 } 3604 3605 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 3606 vshr_n_u8 (uint8x8_t __a, const int __b) 3607 { 3608 return (uint8x8_t)__builtin_neon_vshr_nv8qi ((int8x8_t) __a, __b, 0); 3609 } 3610 3611 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 3612 vshr_n_u16 (uint16x4_t __a, const int __b) 3613 { 3614 return (uint16x4_t)__builtin_neon_vshr_nv4hi ((int16x4_t) __a, __b, 0); 3615 } 3616 3617 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 3618 vshr_n_u32 (uint32x2_t __a, const int __b) 3619 { 3620 return (uint32x2_t)__builtin_neon_vshr_nv2si ((int32x2_t) __a, __b, 0); 3621 } 3622 3623 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 3624 vshr_n_u64 (uint64x1_t __a, const int __b) 3625 { 3626 return (uint64x1_t)__builtin_neon_vshr_ndi ((int64x1_t) __a, __b, 0); 3627 } 3628 3629 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 3630 vshrq_n_s8 (int8x16_t __a, const int __b) 3631 { 3632 return (int8x16_t)__builtin_neon_vshr_nv16qi (__a, __b, 1); 3633 } 3634 3635 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 3636 vshrq_n_s16 (int16x8_t __a, const int __b) 3637 { 3638 return (int16x8_t)__builtin_neon_vshr_nv8hi (__a, __b, 1); 3639 } 3640 3641 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 3642 vshrq_n_s32 (int32x4_t __a, const int __b) 3643 { 3644 return (int32x4_t)__builtin_neon_vshr_nv4si (__a, __b, 1); 3645 } 3646 3647 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 3648 vshrq_n_s64 (int64x2_t __a, const int __b) 3649 { 3650 return (int64x2_t)__builtin_neon_vshr_nv2di (__a, __b, 1); 3651 } 3652 3653 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 3654 vshrq_n_u8 (uint8x16_t __a, const int __b) 3655 { 3656 return (uint8x16_t)__builtin_neon_vshr_nv16qi ((int8x16_t) __a, __b, 0); 3657 } 3658 3659 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 3660 vshrq_n_u16 (uint16x8_t __a, const int __b) 3661 { 3662 return (uint16x8_t)__builtin_neon_vshr_nv8hi ((int16x8_t) __a, __b, 0); 3663 } 3664 3665 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 3666 vshrq_n_u32 (uint32x4_t __a, const int __b) 3667 { 3668 return (uint32x4_t)__builtin_neon_vshr_nv4si ((int32x4_t) __a, __b, 0); 3669 } 3670 3671 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 3672 vshrq_n_u64 (uint64x2_t __a, const int __b) 3673 { 3674 return (uint64x2_t)__builtin_neon_vshr_nv2di ((int64x2_t) __a, __b, 0); 3675 } 3676 3677 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 3678 vrshr_n_s8 (int8x8_t __a, const int __b) 3679 { 3680 return (int8x8_t)__builtin_neon_vshr_nv8qi (__a, __b, 5); 3681 } 3682 3683 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 3684 vrshr_n_s16 (int16x4_t __a, const int __b) 3685 { 3686 return (int16x4_t)__builtin_neon_vshr_nv4hi (__a, __b, 5); 3687 } 3688 3689 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 3690 vrshr_n_s32 (int32x2_t __a, const int __b) 3691 { 3692 return (int32x2_t)__builtin_neon_vshr_nv2si (__a, __b, 5); 3693 } 3694 3695 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 3696 vrshr_n_s64 (int64x1_t __a, const int __b) 3697 { 3698 return (int64x1_t)__builtin_neon_vshr_ndi (__a, __b, 5); 3699 } 3700 3701 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 3702 vrshr_n_u8 (uint8x8_t __a, const int __b) 3703 { 3704 return (uint8x8_t)__builtin_neon_vshr_nv8qi ((int8x8_t) __a, __b, 4); 3705 } 3706 3707 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 3708 vrshr_n_u16 (uint16x4_t __a, const int __b) 3709 { 3710 return (uint16x4_t)__builtin_neon_vshr_nv4hi ((int16x4_t) __a, __b, 4); 3711 } 3712 3713 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 3714 vrshr_n_u32 (uint32x2_t __a, const int __b) 3715 { 3716 return (uint32x2_t)__builtin_neon_vshr_nv2si ((int32x2_t) __a, __b, 4); 3717 } 3718 3719 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 3720 vrshr_n_u64 (uint64x1_t __a, const int __b) 3721 { 3722 return (uint64x1_t)__builtin_neon_vshr_ndi ((int64x1_t) __a, __b, 4); 3723 } 3724 3725 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 3726 vrshrq_n_s8 (int8x16_t __a, const int __b) 3727 { 3728 return (int8x16_t)__builtin_neon_vshr_nv16qi (__a, __b, 5); 3729 } 3730 3731 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 3732 vrshrq_n_s16 (int16x8_t __a, const int __b) 3733 { 3734 return (int16x8_t)__builtin_neon_vshr_nv8hi (__a, __b, 5); 3735 } 3736 3737 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 3738 vrshrq_n_s32 (int32x4_t __a, const int __b) 3739 { 3740 return (int32x4_t)__builtin_neon_vshr_nv4si (__a, __b, 5); 3741 } 3742 3743 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 3744 vrshrq_n_s64 (int64x2_t __a, const int __b) 3745 { 3746 return (int64x2_t)__builtin_neon_vshr_nv2di (__a, __b, 5); 3747 } 3748 3749 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 3750 vrshrq_n_u8 (uint8x16_t __a, const int __b) 3751 { 3752 return (uint8x16_t)__builtin_neon_vshr_nv16qi ((int8x16_t) __a, __b, 4); 3753 } 3754 3755 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 3756 vrshrq_n_u16 (uint16x8_t __a, const int __b) 3757 { 3758 return (uint16x8_t)__builtin_neon_vshr_nv8hi ((int16x8_t) __a, __b, 4); 3759 } 3760 3761 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 3762 vrshrq_n_u32 (uint32x4_t __a, const int __b) 3763 { 3764 return (uint32x4_t)__builtin_neon_vshr_nv4si ((int32x4_t) __a, __b, 4); 3765 } 3766 3767 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 3768 vrshrq_n_u64 (uint64x2_t __a, const int __b) 3769 { 3770 return (uint64x2_t)__builtin_neon_vshr_nv2di ((int64x2_t) __a, __b, 4); 3771 } 3772 3773 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 3774 vshrn_n_s16 (int16x8_t __a, const int __b) 3775 { 3776 return (int8x8_t)__builtin_neon_vshrn_nv8hi (__a, __b, 1); 3777 } 3778 3779 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 3780 vshrn_n_s32 (int32x4_t __a, const int __b) 3781 { 3782 return (int16x4_t)__builtin_neon_vshrn_nv4si (__a, __b, 1); 3783 } 3784 3785 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 3786 vshrn_n_s64 (int64x2_t __a, const int __b) 3787 { 3788 return (int32x2_t)__builtin_neon_vshrn_nv2di (__a, __b, 1); 3789 } 3790 3791 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 3792 vshrn_n_u16 (uint16x8_t __a, const int __b) 3793 { 3794 return (uint8x8_t)__builtin_neon_vshrn_nv8hi ((int16x8_t) __a, __b, 0); 3795 } 3796 3797 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 3798 vshrn_n_u32 (uint32x4_t __a, const int __b) 3799 { 3800 return (uint16x4_t)__builtin_neon_vshrn_nv4si ((int32x4_t) __a, __b, 0); 3801 } 3802 3803 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 3804 vshrn_n_u64 (uint64x2_t __a, const int __b) 3805 { 3806 return (uint32x2_t)__builtin_neon_vshrn_nv2di ((int64x2_t) __a, __b, 0); 3807 } 3808 3809 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 3810 vrshrn_n_s16 (int16x8_t __a, const int __b) 3811 { 3812 return (int8x8_t)__builtin_neon_vshrn_nv8hi (__a, __b, 5); 3813 } 3814 3815 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 3816 vrshrn_n_s32 (int32x4_t __a, const int __b) 3817 { 3818 return (int16x4_t)__builtin_neon_vshrn_nv4si (__a, __b, 5); 3819 } 3820 3821 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 3822 vrshrn_n_s64 (int64x2_t __a, const int __b) 3823 { 3824 return (int32x2_t)__builtin_neon_vshrn_nv2di (__a, __b, 5); 3825 } 3826 3827 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 3828 vrshrn_n_u16 (uint16x8_t __a, const int __b) 3829 { 3830 return (uint8x8_t)__builtin_neon_vshrn_nv8hi ((int16x8_t) __a, __b, 4); 3831 } 3832 3833 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 3834 vrshrn_n_u32 (uint32x4_t __a, const int __b) 3835 { 3836 return (uint16x4_t)__builtin_neon_vshrn_nv4si ((int32x4_t) __a, __b, 4); 3837 } 3838 3839 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 3840 vrshrn_n_u64 (uint64x2_t __a, const int __b) 3841 { 3842 return (uint32x2_t)__builtin_neon_vshrn_nv2di ((int64x2_t) __a, __b, 4); 3843 } 3844 3845 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 3846 vqshrn_n_s16 (int16x8_t __a, const int __b) 3847 { 3848 return (int8x8_t)__builtin_neon_vqshrn_nv8hi (__a, __b, 1); 3849 } 3850 3851 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 3852 vqshrn_n_s32 (int32x4_t __a, const int __b) 3853 { 3854 return (int16x4_t)__builtin_neon_vqshrn_nv4si (__a, __b, 1); 3855 } 3856 3857 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 3858 vqshrn_n_s64 (int64x2_t __a, const int __b) 3859 { 3860 return (int32x2_t)__builtin_neon_vqshrn_nv2di (__a, __b, 1); 3861 } 3862 3863 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 3864 vqshrn_n_u16 (uint16x8_t __a, const int __b) 3865 { 3866 return (uint8x8_t)__builtin_neon_vqshrn_nv8hi ((int16x8_t) __a, __b, 0); 3867 } 3868 3869 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 3870 vqshrn_n_u32 (uint32x4_t __a, const int __b) 3871 { 3872 return (uint16x4_t)__builtin_neon_vqshrn_nv4si ((int32x4_t) __a, __b, 0); 3873 } 3874 3875 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 3876 vqshrn_n_u64 (uint64x2_t __a, const int __b) 3877 { 3878 return (uint32x2_t)__builtin_neon_vqshrn_nv2di ((int64x2_t) __a, __b, 0); 3879 } 3880 3881 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 3882 vqrshrn_n_s16 (int16x8_t __a, const int __b) 3883 { 3884 return (int8x8_t)__builtin_neon_vqshrn_nv8hi (__a, __b, 5); 3885 } 3886 3887 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 3888 vqrshrn_n_s32 (int32x4_t __a, const int __b) 3889 { 3890 return (int16x4_t)__builtin_neon_vqshrn_nv4si (__a, __b, 5); 3891 } 3892 3893 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 3894 vqrshrn_n_s64 (int64x2_t __a, const int __b) 3895 { 3896 return (int32x2_t)__builtin_neon_vqshrn_nv2di (__a, __b, 5); 3897 } 3898 3899 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 3900 vqrshrn_n_u16 (uint16x8_t __a, const int __b) 3901 { 3902 return (uint8x8_t)__builtin_neon_vqshrn_nv8hi ((int16x8_t) __a, __b, 4); 3903 } 3904 3905 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 3906 vqrshrn_n_u32 (uint32x4_t __a, const int __b) 3907 { 3908 return (uint16x4_t)__builtin_neon_vqshrn_nv4si ((int32x4_t) __a, __b, 4); 3909 } 3910 3911 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 3912 vqrshrn_n_u64 (uint64x2_t __a, const int __b) 3913 { 3914 return (uint32x2_t)__builtin_neon_vqshrn_nv2di ((int64x2_t) __a, __b, 4); 3915 } 3916 3917 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 3918 vqshrun_n_s16 (int16x8_t __a, const int __b) 3919 { 3920 return (uint8x8_t)__builtin_neon_vqshrun_nv8hi (__a, __b, 1); 3921 } 3922 3923 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 3924 vqshrun_n_s32 (int32x4_t __a, const int __b) 3925 { 3926 return (uint16x4_t)__builtin_neon_vqshrun_nv4si (__a, __b, 1); 3927 } 3928 3929 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 3930 vqshrun_n_s64 (int64x2_t __a, const int __b) 3931 { 3932 return (uint32x2_t)__builtin_neon_vqshrun_nv2di (__a, __b, 1); 3933 } 3934 3935 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 3936 vqrshrun_n_s16 (int16x8_t __a, const int __b) 3937 { 3938 return (uint8x8_t)__builtin_neon_vqshrun_nv8hi (__a, __b, 5); 3939 } 3940 3941 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 3942 vqrshrun_n_s32 (int32x4_t __a, const int __b) 3943 { 3944 return (uint16x4_t)__builtin_neon_vqshrun_nv4si (__a, __b, 5); 3945 } 3946 3947 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 3948 vqrshrun_n_s64 (int64x2_t __a, const int __b) 3949 { 3950 return (uint32x2_t)__builtin_neon_vqshrun_nv2di (__a, __b, 5); 3951 } 3952 3953 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 3954 vshl_n_s8 (int8x8_t __a, const int __b) 3955 { 3956 return (int8x8_t)__builtin_neon_vshl_nv8qi (__a, __b, 1); 3957 } 3958 3959 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 3960 vshl_n_s16 (int16x4_t __a, const int __b) 3961 { 3962 return (int16x4_t)__builtin_neon_vshl_nv4hi (__a, __b, 1); 3963 } 3964 3965 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 3966 vshl_n_s32 (int32x2_t __a, const int __b) 3967 { 3968 return (int32x2_t)__builtin_neon_vshl_nv2si (__a, __b, 1); 3969 } 3970 3971 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 3972 vshl_n_s64 (int64x1_t __a, const int __b) 3973 { 3974 return (int64x1_t)__builtin_neon_vshl_ndi (__a, __b, 1); 3975 } 3976 3977 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 3978 vshl_n_u8 (uint8x8_t __a, const int __b) 3979 { 3980 return (uint8x8_t)__builtin_neon_vshl_nv8qi ((int8x8_t) __a, __b, 0); 3981 } 3982 3983 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 3984 vshl_n_u16 (uint16x4_t __a, const int __b) 3985 { 3986 return (uint16x4_t)__builtin_neon_vshl_nv4hi ((int16x4_t) __a, __b, 0); 3987 } 3988 3989 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 3990 vshl_n_u32 (uint32x2_t __a, const int __b) 3991 { 3992 return (uint32x2_t)__builtin_neon_vshl_nv2si ((int32x2_t) __a, __b, 0); 3993 } 3994 3995 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 3996 vshl_n_u64 (uint64x1_t __a, const int __b) 3997 { 3998 return (uint64x1_t)__builtin_neon_vshl_ndi ((int64x1_t) __a, __b, 0); 3999 } 4000 4001 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 4002 vshlq_n_s8 (int8x16_t __a, const int __b) 4003 { 4004 return (int8x16_t)__builtin_neon_vshl_nv16qi (__a, __b, 1); 4005 } 4006 4007 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 4008 vshlq_n_s16 (int16x8_t __a, const int __b) 4009 { 4010 return (int16x8_t)__builtin_neon_vshl_nv8hi (__a, __b, 1); 4011 } 4012 4013 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 4014 vshlq_n_s32 (int32x4_t __a, const int __b) 4015 { 4016 return (int32x4_t)__builtin_neon_vshl_nv4si (__a, __b, 1); 4017 } 4018 4019 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 4020 vshlq_n_s64 (int64x2_t __a, const int __b) 4021 { 4022 return (int64x2_t)__builtin_neon_vshl_nv2di (__a, __b, 1); 4023 } 4024 4025 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 4026 vshlq_n_u8 (uint8x16_t __a, const int __b) 4027 { 4028 return (uint8x16_t)__builtin_neon_vshl_nv16qi ((int8x16_t) __a, __b, 0); 4029 } 4030 4031 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 4032 vshlq_n_u16 (uint16x8_t __a, const int __b) 4033 { 4034 return (uint16x8_t)__builtin_neon_vshl_nv8hi ((int16x8_t) __a, __b, 0); 4035 } 4036 4037 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 4038 vshlq_n_u32 (uint32x4_t __a, const int __b) 4039 { 4040 return (uint32x4_t)__builtin_neon_vshl_nv4si ((int32x4_t) __a, __b, 0); 4041 } 4042 4043 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 4044 vshlq_n_u64 (uint64x2_t __a, const int __b) 4045 { 4046 return (uint64x2_t)__builtin_neon_vshl_nv2di ((int64x2_t) __a, __b, 0); 4047 } 4048 4049 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 4050 vqshl_n_s8 (int8x8_t __a, const int __b) 4051 { 4052 return (int8x8_t)__builtin_neon_vqshl_nv8qi (__a, __b, 1); 4053 } 4054 4055 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 4056 vqshl_n_s16 (int16x4_t __a, const int __b) 4057 { 4058 return (int16x4_t)__builtin_neon_vqshl_nv4hi (__a, __b, 1); 4059 } 4060 4061 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 4062 vqshl_n_s32 (int32x2_t __a, const int __b) 4063 { 4064 return (int32x2_t)__builtin_neon_vqshl_nv2si (__a, __b, 1); 4065 } 4066 4067 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 4068 vqshl_n_s64 (int64x1_t __a, const int __b) 4069 { 4070 return (int64x1_t)__builtin_neon_vqshl_ndi (__a, __b, 1); 4071 } 4072 4073 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 4074 vqshl_n_u8 (uint8x8_t __a, const int __b) 4075 { 4076 return (uint8x8_t)__builtin_neon_vqshl_nv8qi ((int8x8_t) __a, __b, 0); 4077 } 4078 4079 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 4080 vqshl_n_u16 (uint16x4_t __a, const int __b) 4081 { 4082 return (uint16x4_t)__builtin_neon_vqshl_nv4hi ((int16x4_t) __a, __b, 0); 4083 } 4084 4085 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 4086 vqshl_n_u32 (uint32x2_t __a, const int __b) 4087 { 4088 return (uint32x2_t)__builtin_neon_vqshl_nv2si ((int32x2_t) __a, __b, 0); 4089 } 4090 4091 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 4092 vqshl_n_u64 (uint64x1_t __a, const int __b) 4093 { 4094 return (uint64x1_t)__builtin_neon_vqshl_ndi ((int64x1_t) __a, __b, 0); 4095 } 4096 4097 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 4098 vqshlq_n_s8 (int8x16_t __a, const int __b) 4099 { 4100 return (int8x16_t)__builtin_neon_vqshl_nv16qi (__a, __b, 1); 4101 } 4102 4103 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 4104 vqshlq_n_s16 (int16x8_t __a, const int __b) 4105 { 4106 return (int16x8_t)__builtin_neon_vqshl_nv8hi (__a, __b, 1); 4107 } 4108 4109 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 4110 vqshlq_n_s32 (int32x4_t __a, const int __b) 4111 { 4112 return (int32x4_t)__builtin_neon_vqshl_nv4si (__a, __b, 1); 4113 } 4114 4115 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 4116 vqshlq_n_s64 (int64x2_t __a, const int __b) 4117 { 4118 return (int64x2_t)__builtin_neon_vqshl_nv2di (__a, __b, 1); 4119 } 4120 4121 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 4122 vqshlq_n_u8 (uint8x16_t __a, const int __b) 4123 { 4124 return (uint8x16_t)__builtin_neon_vqshl_nv16qi ((int8x16_t) __a, __b, 0); 4125 } 4126 4127 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 4128 vqshlq_n_u16 (uint16x8_t __a, const int __b) 4129 { 4130 return (uint16x8_t)__builtin_neon_vqshl_nv8hi ((int16x8_t) __a, __b, 0); 4131 } 4132 4133 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 4134 vqshlq_n_u32 (uint32x4_t __a, const int __b) 4135 { 4136 return (uint32x4_t)__builtin_neon_vqshl_nv4si ((int32x4_t) __a, __b, 0); 4137 } 4138 4139 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 4140 vqshlq_n_u64 (uint64x2_t __a, const int __b) 4141 { 4142 return (uint64x2_t)__builtin_neon_vqshl_nv2di ((int64x2_t) __a, __b, 0); 4143 } 4144 4145 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 4146 vqshlu_n_s8 (int8x8_t __a, const int __b) 4147 { 4148 return (uint8x8_t)__builtin_neon_vqshlu_nv8qi (__a, __b, 1); 4149 } 4150 4151 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 4152 vqshlu_n_s16 (int16x4_t __a, const int __b) 4153 { 4154 return (uint16x4_t)__builtin_neon_vqshlu_nv4hi (__a, __b, 1); 4155 } 4156 4157 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 4158 vqshlu_n_s32 (int32x2_t __a, const int __b) 4159 { 4160 return (uint32x2_t)__builtin_neon_vqshlu_nv2si (__a, __b, 1); 4161 } 4162 4163 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 4164 vqshlu_n_s64 (int64x1_t __a, const int __b) 4165 { 4166 return (uint64x1_t)__builtin_neon_vqshlu_ndi (__a, __b, 1); 4167 } 4168 4169 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 4170 vqshluq_n_s8 (int8x16_t __a, const int __b) 4171 { 4172 return (uint8x16_t)__builtin_neon_vqshlu_nv16qi (__a, __b, 1); 4173 } 4174 4175 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 4176 vqshluq_n_s16 (int16x8_t __a, const int __b) 4177 { 4178 return (uint16x8_t)__builtin_neon_vqshlu_nv8hi (__a, __b, 1); 4179 } 4180 4181 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 4182 vqshluq_n_s32 (int32x4_t __a, const int __b) 4183 { 4184 return (uint32x4_t)__builtin_neon_vqshlu_nv4si (__a, __b, 1); 4185 } 4186 4187 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 4188 vqshluq_n_s64 (int64x2_t __a, const int __b) 4189 { 4190 return (uint64x2_t)__builtin_neon_vqshlu_nv2di (__a, __b, 1); 4191 } 4192 4193 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 4194 vshll_n_s8 (int8x8_t __a, const int __b) 4195 { 4196 return (int16x8_t)__builtin_neon_vshll_nv8qi (__a, __b, 1); 4197 } 4198 4199 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 4200 vshll_n_s16 (int16x4_t __a, const int __b) 4201 { 4202 return (int32x4_t)__builtin_neon_vshll_nv4hi (__a, __b, 1); 4203 } 4204 4205 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 4206 vshll_n_s32 (int32x2_t __a, const int __b) 4207 { 4208 return (int64x2_t)__builtin_neon_vshll_nv2si (__a, __b, 1); 4209 } 4210 4211 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 4212 vshll_n_u8 (uint8x8_t __a, const int __b) 4213 { 4214 return (uint16x8_t)__builtin_neon_vshll_nv8qi ((int8x8_t) __a, __b, 0); 4215 } 4216 4217 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 4218 vshll_n_u16 (uint16x4_t __a, const int __b) 4219 { 4220 return (uint32x4_t)__builtin_neon_vshll_nv4hi ((int16x4_t) __a, __b, 0); 4221 } 4222 4223 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 4224 vshll_n_u32 (uint32x2_t __a, const int __b) 4225 { 4226 return (uint64x2_t)__builtin_neon_vshll_nv2si ((int32x2_t) __a, __b, 0); 4227 } 4228 4229 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 4230 vsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c) 4231 { 4232 return (int8x8_t)__builtin_neon_vsra_nv8qi (__a, __b, __c, 1); 4233 } 4234 4235 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 4236 vsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c) 4237 { 4238 return (int16x4_t)__builtin_neon_vsra_nv4hi (__a, __b, __c, 1); 4239 } 4240 4241 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 4242 vsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c) 4243 { 4244 return (int32x2_t)__builtin_neon_vsra_nv2si (__a, __b, __c, 1); 4245 } 4246 4247 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 4248 vsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c) 4249 { 4250 return (int64x1_t)__builtin_neon_vsra_ndi (__a, __b, __c, 1); 4251 } 4252 4253 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 4254 vsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c) 4255 { 4256 return (uint8x8_t)__builtin_neon_vsra_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c, 0); 4257 } 4258 4259 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 4260 vsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c) 4261 { 4262 return (uint16x4_t)__builtin_neon_vsra_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c, 0); 4263 } 4264 4265 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 4266 vsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c) 4267 { 4268 return (uint32x2_t)__builtin_neon_vsra_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c, 0); 4269 } 4270 4271 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 4272 vsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c) 4273 { 4274 return (uint64x1_t)__builtin_neon_vsra_ndi ((int64x1_t) __a, (int64x1_t) __b, __c, 0); 4275 } 4276 4277 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 4278 vsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c) 4279 { 4280 return (int8x16_t)__builtin_neon_vsra_nv16qi (__a, __b, __c, 1); 4281 } 4282 4283 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 4284 vsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c) 4285 { 4286 return (int16x8_t)__builtin_neon_vsra_nv8hi (__a, __b, __c, 1); 4287 } 4288 4289 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 4290 vsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c) 4291 { 4292 return (int32x4_t)__builtin_neon_vsra_nv4si (__a, __b, __c, 1); 4293 } 4294 4295 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 4296 vsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c) 4297 { 4298 return (int64x2_t)__builtin_neon_vsra_nv2di (__a, __b, __c, 1); 4299 } 4300 4301 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 4302 vsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c) 4303 { 4304 return (uint8x16_t)__builtin_neon_vsra_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c, 0); 4305 } 4306 4307 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 4308 vsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c) 4309 { 4310 return (uint16x8_t)__builtin_neon_vsra_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c, 0); 4311 } 4312 4313 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 4314 vsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c) 4315 { 4316 return (uint32x4_t)__builtin_neon_vsra_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c, 0); 4317 } 4318 4319 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 4320 vsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c) 4321 { 4322 return (uint64x2_t)__builtin_neon_vsra_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c, 0); 4323 } 4324 4325 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 4326 vrsra_n_s8 (int8x8_t __a, int8x8_t __b, const int __c) 4327 { 4328 return (int8x8_t)__builtin_neon_vsra_nv8qi (__a, __b, __c, 5); 4329 } 4330 4331 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 4332 vrsra_n_s16 (int16x4_t __a, int16x4_t __b, const int __c) 4333 { 4334 return (int16x4_t)__builtin_neon_vsra_nv4hi (__a, __b, __c, 5); 4335 } 4336 4337 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 4338 vrsra_n_s32 (int32x2_t __a, int32x2_t __b, const int __c) 4339 { 4340 return (int32x2_t)__builtin_neon_vsra_nv2si (__a, __b, __c, 5); 4341 } 4342 4343 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 4344 vrsra_n_s64 (int64x1_t __a, int64x1_t __b, const int __c) 4345 { 4346 return (int64x1_t)__builtin_neon_vsra_ndi (__a, __b, __c, 5); 4347 } 4348 4349 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 4350 vrsra_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c) 4351 { 4352 return (uint8x8_t)__builtin_neon_vsra_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c, 4); 4353 } 4354 4355 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 4356 vrsra_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c) 4357 { 4358 return (uint16x4_t)__builtin_neon_vsra_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c, 4); 4359 } 4360 4361 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 4362 vrsra_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c) 4363 { 4364 return (uint32x2_t)__builtin_neon_vsra_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c, 4); 4365 } 4366 4367 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 4368 vrsra_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c) 4369 { 4370 return (uint64x1_t)__builtin_neon_vsra_ndi ((int64x1_t) __a, (int64x1_t) __b, __c, 4); 4371 } 4372 4373 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 4374 vrsraq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c) 4375 { 4376 return (int8x16_t)__builtin_neon_vsra_nv16qi (__a, __b, __c, 5); 4377 } 4378 4379 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 4380 vrsraq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c) 4381 { 4382 return (int16x8_t)__builtin_neon_vsra_nv8hi (__a, __b, __c, 5); 4383 } 4384 4385 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 4386 vrsraq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c) 4387 { 4388 return (int32x4_t)__builtin_neon_vsra_nv4si (__a, __b, __c, 5); 4389 } 4390 4391 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 4392 vrsraq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c) 4393 { 4394 return (int64x2_t)__builtin_neon_vsra_nv2di (__a, __b, __c, 5); 4395 } 4396 4397 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 4398 vrsraq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c) 4399 { 4400 return (uint8x16_t)__builtin_neon_vsra_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c, 4); 4401 } 4402 4403 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 4404 vrsraq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c) 4405 { 4406 return (uint16x8_t)__builtin_neon_vsra_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c, 4); 4407 } 4408 4409 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 4410 vrsraq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c) 4411 { 4412 return (uint32x4_t)__builtin_neon_vsra_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c, 4); 4413 } 4414 4415 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 4416 vrsraq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c) 4417 { 4418 return (uint64x2_t)__builtin_neon_vsra_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c, 4); 4419 } 4420 4421 #ifdef __ARM_FEATURE_CRYPTO 4422 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 4423 vsri_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c) 4424 { 4425 return (poly64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c); 4426 } 4427 4428 #endif 4429 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 4430 vsri_n_s8 (int8x8_t __a, int8x8_t __b, const int __c) 4431 { 4432 return (int8x8_t)__builtin_neon_vsri_nv8qi (__a, __b, __c); 4433 } 4434 4435 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 4436 vsri_n_s16 (int16x4_t __a, int16x4_t __b, const int __c) 4437 { 4438 return (int16x4_t)__builtin_neon_vsri_nv4hi (__a, __b, __c); 4439 } 4440 4441 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 4442 vsri_n_s32 (int32x2_t __a, int32x2_t __b, const int __c) 4443 { 4444 return (int32x2_t)__builtin_neon_vsri_nv2si (__a, __b, __c); 4445 } 4446 4447 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 4448 vsri_n_s64 (int64x1_t __a, int64x1_t __b, const int __c) 4449 { 4450 return (int64x1_t)__builtin_neon_vsri_ndi (__a, __b, __c); 4451 } 4452 4453 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 4454 vsri_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c) 4455 { 4456 return (uint8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c); 4457 } 4458 4459 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 4460 vsri_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c) 4461 { 4462 return (uint16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c); 4463 } 4464 4465 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 4466 vsri_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c) 4467 { 4468 return (uint32x2_t)__builtin_neon_vsri_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c); 4469 } 4470 4471 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 4472 vsri_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c) 4473 { 4474 return (uint64x1_t)__builtin_neon_vsri_ndi ((int64x1_t) __a, (int64x1_t) __b, __c); 4475 } 4476 4477 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 4478 vsri_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c) 4479 { 4480 return (poly8x8_t)__builtin_neon_vsri_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c); 4481 } 4482 4483 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 4484 vsri_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c) 4485 { 4486 return (poly16x4_t)__builtin_neon_vsri_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c); 4487 } 4488 4489 #ifdef __ARM_FEATURE_CRYPTO 4490 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 4491 vsriq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c) 4492 { 4493 return (poly64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c); 4494 } 4495 4496 #endif 4497 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 4498 vsriq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c) 4499 { 4500 return (int8x16_t)__builtin_neon_vsri_nv16qi (__a, __b, __c); 4501 } 4502 4503 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 4504 vsriq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c) 4505 { 4506 return (int16x8_t)__builtin_neon_vsri_nv8hi (__a, __b, __c); 4507 } 4508 4509 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 4510 vsriq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c) 4511 { 4512 return (int32x4_t)__builtin_neon_vsri_nv4si (__a, __b, __c); 4513 } 4514 4515 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 4516 vsriq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c) 4517 { 4518 return (int64x2_t)__builtin_neon_vsri_nv2di (__a, __b, __c); 4519 } 4520 4521 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 4522 vsriq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c) 4523 { 4524 return (uint8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c); 4525 } 4526 4527 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 4528 vsriq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c) 4529 { 4530 return (uint16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c); 4531 } 4532 4533 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 4534 vsriq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c) 4535 { 4536 return (uint32x4_t)__builtin_neon_vsri_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c); 4537 } 4538 4539 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 4540 vsriq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c) 4541 { 4542 return (uint64x2_t)__builtin_neon_vsri_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c); 4543 } 4544 4545 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 4546 vsriq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c) 4547 { 4548 return (poly8x16_t)__builtin_neon_vsri_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c); 4549 } 4550 4551 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 4552 vsriq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c) 4553 { 4554 return (poly16x8_t)__builtin_neon_vsri_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c); 4555 } 4556 4557 #ifdef __ARM_FEATURE_CRYPTO 4558 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 4559 vsli_n_p64 (poly64x1_t __a, poly64x1_t __b, const int __c) 4560 { 4561 return (poly64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c); 4562 } 4563 4564 #endif 4565 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 4566 vsli_n_s8 (int8x8_t __a, int8x8_t __b, const int __c) 4567 { 4568 return (int8x8_t)__builtin_neon_vsli_nv8qi (__a, __b, __c); 4569 } 4570 4571 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 4572 vsli_n_s16 (int16x4_t __a, int16x4_t __b, const int __c) 4573 { 4574 return (int16x4_t)__builtin_neon_vsli_nv4hi (__a, __b, __c); 4575 } 4576 4577 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 4578 vsli_n_s32 (int32x2_t __a, int32x2_t __b, const int __c) 4579 { 4580 return (int32x2_t)__builtin_neon_vsli_nv2si (__a, __b, __c); 4581 } 4582 4583 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 4584 vsli_n_s64 (int64x1_t __a, int64x1_t __b, const int __c) 4585 { 4586 return (int64x1_t)__builtin_neon_vsli_ndi (__a, __b, __c); 4587 } 4588 4589 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 4590 vsli_n_u8 (uint8x8_t __a, uint8x8_t __b, const int __c) 4591 { 4592 return (uint8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c); 4593 } 4594 4595 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 4596 vsli_n_u16 (uint16x4_t __a, uint16x4_t __b, const int __c) 4597 { 4598 return (uint16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c); 4599 } 4600 4601 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 4602 vsli_n_u32 (uint32x2_t __a, uint32x2_t __b, const int __c) 4603 { 4604 return (uint32x2_t)__builtin_neon_vsli_nv2si ((int32x2_t) __a, (int32x2_t) __b, __c); 4605 } 4606 4607 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 4608 vsli_n_u64 (uint64x1_t __a, uint64x1_t __b, const int __c) 4609 { 4610 return (uint64x1_t)__builtin_neon_vsli_ndi ((int64x1_t) __a, (int64x1_t) __b, __c); 4611 } 4612 4613 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 4614 vsli_n_p8 (poly8x8_t __a, poly8x8_t __b, const int __c) 4615 { 4616 return (poly8x8_t)__builtin_neon_vsli_nv8qi ((int8x8_t) __a, (int8x8_t) __b, __c); 4617 } 4618 4619 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 4620 vsli_n_p16 (poly16x4_t __a, poly16x4_t __b, const int __c) 4621 { 4622 return (poly16x4_t)__builtin_neon_vsli_nv4hi ((int16x4_t) __a, (int16x4_t) __b, __c); 4623 } 4624 4625 #ifdef __ARM_FEATURE_CRYPTO 4626 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 4627 vsliq_n_p64 (poly64x2_t __a, poly64x2_t __b, const int __c) 4628 { 4629 return (poly64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c); 4630 } 4631 4632 #endif 4633 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 4634 vsliq_n_s8 (int8x16_t __a, int8x16_t __b, const int __c) 4635 { 4636 return (int8x16_t)__builtin_neon_vsli_nv16qi (__a, __b, __c); 4637 } 4638 4639 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 4640 vsliq_n_s16 (int16x8_t __a, int16x8_t __b, const int __c) 4641 { 4642 return (int16x8_t)__builtin_neon_vsli_nv8hi (__a, __b, __c); 4643 } 4644 4645 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 4646 vsliq_n_s32 (int32x4_t __a, int32x4_t __b, const int __c) 4647 { 4648 return (int32x4_t)__builtin_neon_vsli_nv4si (__a, __b, __c); 4649 } 4650 4651 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 4652 vsliq_n_s64 (int64x2_t __a, int64x2_t __b, const int __c) 4653 { 4654 return (int64x2_t)__builtin_neon_vsli_nv2di (__a, __b, __c); 4655 } 4656 4657 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 4658 vsliq_n_u8 (uint8x16_t __a, uint8x16_t __b, const int __c) 4659 { 4660 return (uint8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c); 4661 } 4662 4663 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 4664 vsliq_n_u16 (uint16x8_t __a, uint16x8_t __b, const int __c) 4665 { 4666 return (uint16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c); 4667 } 4668 4669 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 4670 vsliq_n_u32 (uint32x4_t __a, uint32x4_t __b, const int __c) 4671 { 4672 return (uint32x4_t)__builtin_neon_vsli_nv4si ((int32x4_t) __a, (int32x4_t) __b, __c); 4673 } 4674 4675 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 4676 vsliq_n_u64 (uint64x2_t __a, uint64x2_t __b, const int __c) 4677 { 4678 return (uint64x2_t)__builtin_neon_vsli_nv2di ((int64x2_t) __a, (int64x2_t) __b, __c); 4679 } 4680 4681 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 4682 vsliq_n_p8 (poly8x16_t __a, poly8x16_t __b, const int __c) 4683 { 4684 return (poly8x16_t)__builtin_neon_vsli_nv16qi ((int8x16_t) __a, (int8x16_t) __b, __c); 4685 } 4686 4687 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 4688 vsliq_n_p16 (poly16x8_t __a, poly16x8_t __b, const int __c) 4689 { 4690 return (poly16x8_t)__builtin_neon_vsli_nv8hi ((int16x8_t) __a, (int16x8_t) __b, __c); 4691 } 4692 4693 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 4694 vabs_s8 (int8x8_t __a) 4695 { 4696 return (int8x8_t)__builtin_neon_vabsv8qi (__a, 1); 4697 } 4698 4699 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 4700 vabs_s16 (int16x4_t __a) 4701 { 4702 return (int16x4_t)__builtin_neon_vabsv4hi (__a, 1); 4703 } 4704 4705 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 4706 vabs_s32 (int32x2_t __a) 4707 { 4708 return (int32x2_t)__builtin_neon_vabsv2si (__a, 1); 4709 } 4710 4711 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 4712 vabs_f32 (float32x2_t __a) 4713 { 4714 return (float32x2_t)__builtin_neon_vabsv2sf (__a, 3); 4715 } 4716 4717 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 4718 vabsq_s8 (int8x16_t __a) 4719 { 4720 return (int8x16_t)__builtin_neon_vabsv16qi (__a, 1); 4721 } 4722 4723 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 4724 vabsq_s16 (int16x8_t __a) 4725 { 4726 return (int16x8_t)__builtin_neon_vabsv8hi (__a, 1); 4727 } 4728 4729 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 4730 vabsq_s32 (int32x4_t __a) 4731 { 4732 return (int32x4_t)__builtin_neon_vabsv4si (__a, 1); 4733 } 4734 4735 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 4736 vabsq_f32 (float32x4_t __a) 4737 { 4738 return (float32x4_t)__builtin_neon_vabsv4sf (__a, 3); 4739 } 4740 4741 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 4742 vqabs_s8 (int8x8_t __a) 4743 { 4744 return (int8x8_t)__builtin_neon_vqabsv8qi (__a, 1); 4745 } 4746 4747 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 4748 vqabs_s16 (int16x4_t __a) 4749 { 4750 return (int16x4_t)__builtin_neon_vqabsv4hi (__a, 1); 4751 } 4752 4753 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 4754 vqabs_s32 (int32x2_t __a) 4755 { 4756 return (int32x2_t)__builtin_neon_vqabsv2si (__a, 1); 4757 } 4758 4759 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 4760 vqabsq_s8 (int8x16_t __a) 4761 { 4762 return (int8x16_t)__builtin_neon_vqabsv16qi (__a, 1); 4763 } 4764 4765 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 4766 vqabsq_s16 (int16x8_t __a) 4767 { 4768 return (int16x8_t)__builtin_neon_vqabsv8hi (__a, 1); 4769 } 4770 4771 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 4772 vqabsq_s32 (int32x4_t __a) 4773 { 4774 return (int32x4_t)__builtin_neon_vqabsv4si (__a, 1); 4775 } 4776 4777 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 4778 vneg_s8 (int8x8_t __a) 4779 { 4780 return (int8x8_t)__builtin_neon_vnegv8qi (__a, 1); 4781 } 4782 4783 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 4784 vneg_s16 (int16x4_t __a) 4785 { 4786 return (int16x4_t)__builtin_neon_vnegv4hi (__a, 1); 4787 } 4788 4789 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 4790 vneg_s32 (int32x2_t __a) 4791 { 4792 return (int32x2_t)__builtin_neon_vnegv2si (__a, 1); 4793 } 4794 4795 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 4796 vneg_f32 (float32x2_t __a) 4797 { 4798 return (float32x2_t)__builtin_neon_vnegv2sf (__a, 3); 4799 } 4800 4801 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 4802 vnegq_s8 (int8x16_t __a) 4803 { 4804 return (int8x16_t)__builtin_neon_vnegv16qi (__a, 1); 4805 } 4806 4807 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 4808 vnegq_s16 (int16x8_t __a) 4809 { 4810 return (int16x8_t)__builtin_neon_vnegv8hi (__a, 1); 4811 } 4812 4813 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 4814 vnegq_s32 (int32x4_t __a) 4815 { 4816 return (int32x4_t)__builtin_neon_vnegv4si (__a, 1); 4817 } 4818 4819 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 4820 vnegq_f32 (float32x4_t __a) 4821 { 4822 return (float32x4_t)__builtin_neon_vnegv4sf (__a, 3); 4823 } 4824 4825 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 4826 vqneg_s8 (int8x8_t __a) 4827 { 4828 return (int8x8_t)__builtin_neon_vqnegv8qi (__a, 1); 4829 } 4830 4831 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 4832 vqneg_s16 (int16x4_t __a) 4833 { 4834 return (int16x4_t)__builtin_neon_vqnegv4hi (__a, 1); 4835 } 4836 4837 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 4838 vqneg_s32 (int32x2_t __a) 4839 { 4840 return (int32x2_t)__builtin_neon_vqnegv2si (__a, 1); 4841 } 4842 4843 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 4844 vqnegq_s8 (int8x16_t __a) 4845 { 4846 return (int8x16_t)__builtin_neon_vqnegv16qi (__a, 1); 4847 } 4848 4849 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 4850 vqnegq_s16 (int16x8_t __a) 4851 { 4852 return (int16x8_t)__builtin_neon_vqnegv8hi (__a, 1); 4853 } 4854 4855 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 4856 vqnegq_s32 (int32x4_t __a) 4857 { 4858 return (int32x4_t)__builtin_neon_vqnegv4si (__a, 1); 4859 } 4860 4861 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 4862 vmvn_s8 (int8x8_t __a) 4863 { 4864 return (int8x8_t)__builtin_neon_vmvnv8qi (__a, 1); 4865 } 4866 4867 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 4868 vmvn_s16 (int16x4_t __a) 4869 { 4870 return (int16x4_t)__builtin_neon_vmvnv4hi (__a, 1); 4871 } 4872 4873 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 4874 vmvn_s32 (int32x2_t __a) 4875 { 4876 return (int32x2_t)__builtin_neon_vmvnv2si (__a, 1); 4877 } 4878 4879 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 4880 vmvn_u8 (uint8x8_t __a) 4881 { 4882 return (uint8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a, 0); 4883 } 4884 4885 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 4886 vmvn_u16 (uint16x4_t __a) 4887 { 4888 return (uint16x4_t)__builtin_neon_vmvnv4hi ((int16x4_t) __a, 0); 4889 } 4890 4891 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 4892 vmvn_u32 (uint32x2_t __a) 4893 { 4894 return (uint32x2_t)__builtin_neon_vmvnv2si ((int32x2_t) __a, 0); 4895 } 4896 4897 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 4898 vmvn_p8 (poly8x8_t __a) 4899 { 4900 return (poly8x8_t)__builtin_neon_vmvnv8qi ((int8x8_t) __a, 2); 4901 } 4902 4903 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 4904 vmvnq_s8 (int8x16_t __a) 4905 { 4906 return (int8x16_t)__builtin_neon_vmvnv16qi (__a, 1); 4907 } 4908 4909 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 4910 vmvnq_s16 (int16x8_t __a) 4911 { 4912 return (int16x8_t)__builtin_neon_vmvnv8hi (__a, 1); 4913 } 4914 4915 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 4916 vmvnq_s32 (int32x4_t __a) 4917 { 4918 return (int32x4_t)__builtin_neon_vmvnv4si (__a, 1); 4919 } 4920 4921 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 4922 vmvnq_u8 (uint8x16_t __a) 4923 { 4924 return (uint8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a, 0); 4925 } 4926 4927 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 4928 vmvnq_u16 (uint16x8_t __a) 4929 { 4930 return (uint16x8_t)__builtin_neon_vmvnv8hi ((int16x8_t) __a, 0); 4931 } 4932 4933 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 4934 vmvnq_u32 (uint32x4_t __a) 4935 { 4936 return (uint32x4_t)__builtin_neon_vmvnv4si ((int32x4_t) __a, 0); 4937 } 4938 4939 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 4940 vmvnq_p8 (poly8x16_t __a) 4941 { 4942 return (poly8x16_t)__builtin_neon_vmvnv16qi ((int8x16_t) __a, 2); 4943 } 4944 4945 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 4946 vcls_s8 (int8x8_t __a) 4947 { 4948 return (int8x8_t)__builtin_neon_vclsv8qi (__a, 1); 4949 } 4950 4951 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 4952 vcls_s16 (int16x4_t __a) 4953 { 4954 return (int16x4_t)__builtin_neon_vclsv4hi (__a, 1); 4955 } 4956 4957 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 4958 vcls_s32 (int32x2_t __a) 4959 { 4960 return (int32x2_t)__builtin_neon_vclsv2si (__a, 1); 4961 } 4962 4963 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 4964 vclsq_s8 (int8x16_t __a) 4965 { 4966 return (int8x16_t)__builtin_neon_vclsv16qi (__a, 1); 4967 } 4968 4969 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 4970 vclsq_s16 (int16x8_t __a) 4971 { 4972 return (int16x8_t)__builtin_neon_vclsv8hi (__a, 1); 4973 } 4974 4975 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 4976 vclsq_s32 (int32x4_t __a) 4977 { 4978 return (int32x4_t)__builtin_neon_vclsv4si (__a, 1); 4979 } 4980 4981 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 4982 vclz_s8 (int8x8_t __a) 4983 { 4984 return (int8x8_t)__builtin_neon_vclzv8qi (__a, 1); 4985 } 4986 4987 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 4988 vclz_s16 (int16x4_t __a) 4989 { 4990 return (int16x4_t)__builtin_neon_vclzv4hi (__a, 1); 4991 } 4992 4993 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 4994 vclz_s32 (int32x2_t __a) 4995 { 4996 return (int32x2_t)__builtin_neon_vclzv2si (__a, 1); 4997 } 4998 4999 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 5000 vclz_u8 (uint8x8_t __a) 5001 { 5002 return (uint8x8_t)__builtin_neon_vclzv8qi ((int8x8_t) __a, 0); 5003 } 5004 5005 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 5006 vclz_u16 (uint16x4_t __a) 5007 { 5008 return (uint16x4_t)__builtin_neon_vclzv4hi ((int16x4_t) __a, 0); 5009 } 5010 5011 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 5012 vclz_u32 (uint32x2_t __a) 5013 { 5014 return (uint32x2_t)__builtin_neon_vclzv2si ((int32x2_t) __a, 0); 5015 } 5016 5017 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 5018 vclzq_s8 (int8x16_t __a) 5019 { 5020 return (int8x16_t)__builtin_neon_vclzv16qi (__a, 1); 5021 } 5022 5023 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 5024 vclzq_s16 (int16x8_t __a) 5025 { 5026 return (int16x8_t)__builtin_neon_vclzv8hi (__a, 1); 5027 } 5028 5029 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 5030 vclzq_s32 (int32x4_t __a) 5031 { 5032 return (int32x4_t)__builtin_neon_vclzv4si (__a, 1); 5033 } 5034 5035 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 5036 vclzq_u8 (uint8x16_t __a) 5037 { 5038 return (uint8x16_t)__builtin_neon_vclzv16qi ((int8x16_t) __a, 0); 5039 } 5040 5041 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 5042 vclzq_u16 (uint16x8_t __a) 5043 { 5044 return (uint16x8_t)__builtin_neon_vclzv8hi ((int16x8_t) __a, 0); 5045 } 5046 5047 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 5048 vclzq_u32 (uint32x4_t __a) 5049 { 5050 return (uint32x4_t)__builtin_neon_vclzv4si ((int32x4_t) __a, 0); 5051 } 5052 5053 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 5054 vcnt_s8 (int8x8_t __a) 5055 { 5056 return (int8x8_t)__builtin_neon_vcntv8qi (__a, 1); 5057 } 5058 5059 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 5060 vcnt_u8 (uint8x8_t __a) 5061 { 5062 return (uint8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a, 0); 5063 } 5064 5065 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 5066 vcnt_p8 (poly8x8_t __a) 5067 { 5068 return (poly8x8_t)__builtin_neon_vcntv8qi ((int8x8_t) __a, 2); 5069 } 5070 5071 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 5072 vcntq_s8 (int8x16_t __a) 5073 { 5074 return (int8x16_t)__builtin_neon_vcntv16qi (__a, 1); 5075 } 5076 5077 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 5078 vcntq_u8 (uint8x16_t __a) 5079 { 5080 return (uint8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a, 0); 5081 } 5082 5083 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 5084 vcntq_p8 (poly8x16_t __a) 5085 { 5086 return (poly8x16_t)__builtin_neon_vcntv16qi ((int8x16_t) __a, 2); 5087 } 5088 5089 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 5090 vrecpe_f32 (float32x2_t __a) 5091 { 5092 return (float32x2_t)__builtin_neon_vrecpev2sf (__a, 3); 5093 } 5094 5095 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 5096 vrecpe_u32 (uint32x2_t __a) 5097 { 5098 return (uint32x2_t)__builtin_neon_vrecpev2si ((int32x2_t) __a, 0); 5099 } 5100 5101 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 5102 vrecpeq_f32 (float32x4_t __a) 5103 { 5104 return (float32x4_t)__builtin_neon_vrecpev4sf (__a, 3); 5105 } 5106 5107 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 5108 vrecpeq_u32 (uint32x4_t __a) 5109 { 5110 return (uint32x4_t)__builtin_neon_vrecpev4si ((int32x4_t) __a, 0); 5111 } 5112 5113 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 5114 vrsqrte_f32 (float32x2_t __a) 5115 { 5116 return (float32x2_t)__builtin_neon_vrsqrtev2sf (__a, 3); 5117 } 5118 5119 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 5120 vrsqrte_u32 (uint32x2_t __a) 5121 { 5122 return (uint32x2_t)__builtin_neon_vrsqrtev2si ((int32x2_t) __a, 0); 5123 } 5124 5125 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 5126 vrsqrteq_f32 (float32x4_t __a) 5127 { 5128 return (float32x4_t)__builtin_neon_vrsqrtev4sf (__a, 3); 5129 } 5130 5131 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 5132 vrsqrteq_u32 (uint32x4_t __a) 5133 { 5134 return (uint32x4_t)__builtin_neon_vrsqrtev4si ((int32x4_t) __a, 0); 5135 } 5136 5137 __extension__ static __inline int8_t __attribute__ ((__always_inline__)) 5138 vget_lane_s8 (int8x8_t __a, const int __b) 5139 { 5140 return (int8_t)__builtin_neon_vget_lanev8qi (__a, __b, 1); 5141 } 5142 5143 __extension__ static __inline int16_t __attribute__ ((__always_inline__)) 5144 vget_lane_s16 (int16x4_t __a, const int __b) 5145 { 5146 return (int16_t)__builtin_neon_vget_lanev4hi (__a, __b, 1); 5147 } 5148 5149 __extension__ static __inline int32_t __attribute__ ((__always_inline__)) 5150 vget_lane_s32 (int32x2_t __a, const int __b) 5151 { 5152 return (int32_t)__builtin_neon_vget_lanev2si (__a, __b, 1); 5153 } 5154 5155 __extension__ static __inline float32_t __attribute__ ((__always_inline__)) 5156 vget_lane_f32 (float32x2_t __a, const int __b) 5157 { 5158 return (float32_t)__builtin_neon_vget_lanev2sf (__a, __b, 3); 5159 } 5160 5161 __extension__ static __inline uint8_t __attribute__ ((__always_inline__)) 5162 vget_lane_u8 (uint8x8_t __a, const int __b) 5163 { 5164 return (uint8_t)__builtin_neon_vget_lanev8qi ((int8x8_t) __a, __b, 0); 5165 } 5166 5167 __extension__ static __inline uint16_t __attribute__ ((__always_inline__)) 5168 vget_lane_u16 (uint16x4_t __a, const int __b) 5169 { 5170 return (uint16_t)__builtin_neon_vget_lanev4hi ((int16x4_t) __a, __b, 0); 5171 } 5172 5173 __extension__ static __inline uint32_t __attribute__ ((__always_inline__)) 5174 vget_lane_u32 (uint32x2_t __a, const int __b) 5175 { 5176 return (uint32_t)__builtin_neon_vget_lanev2si ((int32x2_t) __a, __b, 0); 5177 } 5178 5179 __extension__ static __inline poly8_t __attribute__ ((__always_inline__)) 5180 vget_lane_p8 (poly8x8_t __a, const int __b) 5181 { 5182 return (poly8_t)__builtin_neon_vget_lanev8qi ((int8x8_t) __a, __b, 2); 5183 } 5184 5185 __extension__ static __inline poly16_t __attribute__ ((__always_inline__)) 5186 vget_lane_p16 (poly16x4_t __a, const int __b) 5187 { 5188 return (poly16_t)__builtin_neon_vget_lanev4hi ((int16x4_t) __a, __b, 2); 5189 } 5190 5191 __extension__ static __inline int64_t __attribute__ ((__always_inline__)) 5192 vget_lane_s64 (int64x1_t __a, const int __b) 5193 { 5194 return (int64_t)__builtin_neon_vget_lanedi (__a, __b, 1); 5195 } 5196 5197 __extension__ static __inline uint64_t __attribute__ ((__always_inline__)) 5198 vget_lane_u64 (uint64x1_t __a, const int __b) 5199 { 5200 return (uint64_t)__builtin_neon_vget_lanedi ((int64x1_t) __a, __b, 0); 5201 } 5202 5203 __extension__ static __inline int8_t __attribute__ ((__always_inline__)) 5204 vgetq_lane_s8 (int8x16_t __a, const int __b) 5205 { 5206 return (int8_t)__builtin_neon_vget_lanev16qi (__a, __b, 1); 5207 } 5208 5209 __extension__ static __inline int16_t __attribute__ ((__always_inline__)) 5210 vgetq_lane_s16 (int16x8_t __a, const int __b) 5211 { 5212 return (int16_t)__builtin_neon_vget_lanev8hi (__a, __b, 1); 5213 } 5214 5215 __extension__ static __inline int32_t __attribute__ ((__always_inline__)) 5216 vgetq_lane_s32 (int32x4_t __a, const int __b) 5217 { 5218 return (int32_t)__builtin_neon_vget_lanev4si (__a, __b, 1); 5219 } 5220 5221 __extension__ static __inline float32_t __attribute__ ((__always_inline__)) 5222 vgetq_lane_f32 (float32x4_t __a, const int __b) 5223 { 5224 return (float32_t)__builtin_neon_vget_lanev4sf (__a, __b, 3); 5225 } 5226 5227 __extension__ static __inline uint8_t __attribute__ ((__always_inline__)) 5228 vgetq_lane_u8 (uint8x16_t __a, const int __b) 5229 { 5230 return (uint8_t)__builtin_neon_vget_lanev16qi ((int8x16_t) __a, __b, 0); 5231 } 5232 5233 __extension__ static __inline uint16_t __attribute__ ((__always_inline__)) 5234 vgetq_lane_u16 (uint16x8_t __a, const int __b) 5235 { 5236 return (uint16_t)__builtin_neon_vget_lanev8hi ((int16x8_t) __a, __b, 0); 5237 } 5238 5239 __extension__ static __inline uint32_t __attribute__ ((__always_inline__)) 5240 vgetq_lane_u32 (uint32x4_t __a, const int __b) 5241 { 5242 return (uint32_t)__builtin_neon_vget_lanev4si ((int32x4_t) __a, __b, 0); 5243 } 5244 5245 __extension__ static __inline poly8_t __attribute__ ((__always_inline__)) 5246 vgetq_lane_p8 (poly8x16_t __a, const int __b) 5247 { 5248 return (poly8_t)__builtin_neon_vget_lanev16qi ((int8x16_t) __a, __b, 2); 5249 } 5250 5251 __extension__ static __inline poly16_t __attribute__ ((__always_inline__)) 5252 vgetq_lane_p16 (poly16x8_t __a, const int __b) 5253 { 5254 return (poly16_t)__builtin_neon_vget_lanev8hi ((int16x8_t) __a, __b, 2); 5255 } 5256 5257 __extension__ static __inline int64_t __attribute__ ((__always_inline__)) 5258 vgetq_lane_s64 (int64x2_t __a, const int __b) 5259 { 5260 return (int64_t)__builtin_neon_vget_lanev2di (__a, __b, 1); 5261 } 5262 5263 __extension__ static __inline uint64_t __attribute__ ((__always_inline__)) 5264 vgetq_lane_u64 (uint64x2_t __a, const int __b) 5265 { 5266 return (uint64_t)__builtin_neon_vget_lanev2di ((int64x2_t) __a, __b, 0); 5267 } 5268 5269 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 5270 vset_lane_s8 (int8_t __a, int8x8_t __b, const int __c) 5271 { 5272 return (int8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, __b, __c); 5273 } 5274 5275 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 5276 vset_lane_s16 (int16_t __a, int16x4_t __b, const int __c) 5277 { 5278 return (int16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, __b, __c); 5279 } 5280 5281 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 5282 vset_lane_s32 (int32_t __a, int32x2_t __b, const int __c) 5283 { 5284 return (int32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, __b, __c); 5285 } 5286 5287 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 5288 vset_lane_f32 (float32_t __a, float32x2_t __b, const int __c) 5289 { 5290 return (float32x2_t)__builtin_neon_vset_lanev2sf ((__builtin_neon_sf) __a, __b, __c); 5291 } 5292 5293 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 5294 vset_lane_u8 (uint8_t __a, uint8x8_t __b, const int __c) 5295 { 5296 return (uint8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c); 5297 } 5298 5299 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 5300 vset_lane_u16 (uint16_t __a, uint16x4_t __b, const int __c) 5301 { 5302 return (uint16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c); 5303 } 5304 5305 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 5306 vset_lane_u32 (uint32_t __a, uint32x2_t __b, const int __c) 5307 { 5308 return (uint32x2_t)__builtin_neon_vset_lanev2si ((__builtin_neon_si) __a, (int32x2_t) __b, __c); 5309 } 5310 5311 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 5312 vset_lane_p8 (poly8_t __a, poly8x8_t __b, const int __c) 5313 { 5314 return (poly8x8_t)__builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __a, (int8x8_t) __b, __c); 5315 } 5316 5317 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 5318 vset_lane_p16 (poly16_t __a, poly16x4_t __b, const int __c) 5319 { 5320 return (poly16x4_t)__builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __a, (int16x4_t) __b, __c); 5321 } 5322 5323 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 5324 vset_lane_s64 (int64_t __a, int64x1_t __b, const int __c) 5325 { 5326 return (int64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, __b, __c); 5327 } 5328 5329 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 5330 vset_lane_u64 (uint64_t __a, uint64x1_t __b, const int __c) 5331 { 5332 return (uint64x1_t)__builtin_neon_vset_lanedi ((__builtin_neon_di) __a, (int64x1_t) __b, __c); 5333 } 5334 5335 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 5336 vsetq_lane_s8 (int8_t __a, int8x16_t __b, const int __c) 5337 { 5338 return (int8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, __b, __c); 5339 } 5340 5341 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 5342 vsetq_lane_s16 (int16_t __a, int16x8_t __b, const int __c) 5343 { 5344 return (int16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, __b, __c); 5345 } 5346 5347 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 5348 vsetq_lane_s32 (int32_t __a, int32x4_t __b, const int __c) 5349 { 5350 return (int32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, __b, __c); 5351 } 5352 5353 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 5354 vsetq_lane_f32 (float32_t __a, float32x4_t __b, const int __c) 5355 { 5356 return (float32x4_t)__builtin_neon_vset_lanev4sf ((__builtin_neon_sf) __a, __b, __c); 5357 } 5358 5359 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 5360 vsetq_lane_u8 (uint8_t __a, uint8x16_t __b, const int __c) 5361 { 5362 return (uint8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c); 5363 } 5364 5365 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 5366 vsetq_lane_u16 (uint16_t __a, uint16x8_t __b, const int __c) 5367 { 5368 return (uint16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c); 5369 } 5370 5371 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 5372 vsetq_lane_u32 (uint32_t __a, uint32x4_t __b, const int __c) 5373 { 5374 return (uint32x4_t)__builtin_neon_vset_lanev4si ((__builtin_neon_si) __a, (int32x4_t) __b, __c); 5375 } 5376 5377 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 5378 vsetq_lane_p8 (poly8_t __a, poly8x16_t __b, const int __c) 5379 { 5380 return (poly8x16_t)__builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __a, (int8x16_t) __b, __c); 5381 } 5382 5383 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 5384 vsetq_lane_p16 (poly16_t __a, poly16x8_t __b, const int __c) 5385 { 5386 return (poly16x8_t)__builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __a, (int16x8_t) __b, __c); 5387 } 5388 5389 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 5390 vsetq_lane_s64 (int64_t __a, int64x2_t __b, const int __c) 5391 { 5392 return (int64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, __b, __c); 5393 } 5394 5395 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 5396 vsetq_lane_u64 (uint64_t __a, uint64x2_t __b, const int __c) 5397 { 5398 return (uint64x2_t)__builtin_neon_vset_lanev2di ((__builtin_neon_di) __a, (int64x2_t) __b, __c); 5399 } 5400 5401 #ifdef __ARM_FEATURE_CRYPTO 5402 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 5403 vcreate_p64 (uint64_t __a) 5404 { 5405 return (poly64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a); 5406 } 5407 5408 #endif 5409 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 5410 vcreate_s8 (uint64_t __a) 5411 { 5412 return (int8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a); 5413 } 5414 5415 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 5416 vcreate_s16 (uint64_t __a) 5417 { 5418 return (int16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a); 5419 } 5420 5421 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 5422 vcreate_s32 (uint64_t __a) 5423 { 5424 return (int32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a); 5425 } 5426 5427 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 5428 vcreate_s64 (uint64_t __a) 5429 { 5430 return (int64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a); 5431 } 5432 5433 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 5434 vcreate_f32 (uint64_t __a) 5435 { 5436 return (float32x2_t)__builtin_neon_vcreatev2sf ((__builtin_neon_di) __a); 5437 } 5438 5439 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 5440 vcreate_u8 (uint64_t __a) 5441 { 5442 return (uint8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a); 5443 } 5444 5445 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 5446 vcreate_u16 (uint64_t __a) 5447 { 5448 return (uint16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a); 5449 } 5450 5451 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 5452 vcreate_u32 (uint64_t __a) 5453 { 5454 return (uint32x2_t)__builtin_neon_vcreatev2si ((__builtin_neon_di) __a); 5455 } 5456 5457 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 5458 vcreate_u64 (uint64_t __a) 5459 { 5460 return (uint64x1_t)__builtin_neon_vcreatedi ((__builtin_neon_di) __a); 5461 } 5462 5463 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 5464 vcreate_p8 (uint64_t __a) 5465 { 5466 return (poly8x8_t)__builtin_neon_vcreatev8qi ((__builtin_neon_di) __a); 5467 } 5468 5469 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 5470 vcreate_p16 (uint64_t __a) 5471 { 5472 return (poly16x4_t)__builtin_neon_vcreatev4hi ((__builtin_neon_di) __a); 5473 } 5474 5475 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 5476 vdup_n_s8 (int8_t __a) 5477 { 5478 return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a); 5479 } 5480 5481 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 5482 vdup_n_s16 (int16_t __a) 5483 { 5484 return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a); 5485 } 5486 5487 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 5488 vdup_n_s32 (int32_t __a) 5489 { 5490 return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a); 5491 } 5492 5493 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 5494 vdup_n_f32 (float32_t __a) 5495 { 5496 return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a); 5497 } 5498 5499 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 5500 vdup_n_u8 (uint8_t __a) 5501 { 5502 return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a); 5503 } 5504 5505 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 5506 vdup_n_u16 (uint16_t __a) 5507 { 5508 return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a); 5509 } 5510 5511 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 5512 vdup_n_u32 (uint32_t __a) 5513 { 5514 return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a); 5515 } 5516 5517 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 5518 vdup_n_p8 (poly8_t __a) 5519 { 5520 return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a); 5521 } 5522 5523 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 5524 vdup_n_p16 (poly16_t __a) 5525 { 5526 return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a); 5527 } 5528 5529 #ifdef __ARM_FEATURE_CRYPTO 5530 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 5531 vdup_n_p64 (poly64_t __a) 5532 { 5533 return (poly64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a); 5534 } 5535 5536 #endif 5537 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 5538 vdup_n_s64 (int64_t __a) 5539 { 5540 return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a); 5541 } 5542 5543 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 5544 vdup_n_u64 (uint64_t __a) 5545 { 5546 return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a); 5547 } 5548 5549 #ifdef __ARM_FEATURE_CRYPTO 5550 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 5551 vdupq_n_p64 (poly64_t __a) 5552 { 5553 return (poly64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a); 5554 } 5555 5556 #endif 5557 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 5558 vdupq_n_s8 (int8_t __a) 5559 { 5560 return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a); 5561 } 5562 5563 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 5564 vdupq_n_s16 (int16_t __a) 5565 { 5566 return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a); 5567 } 5568 5569 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 5570 vdupq_n_s32 (int32_t __a) 5571 { 5572 return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a); 5573 } 5574 5575 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 5576 vdupq_n_f32 (float32_t __a) 5577 { 5578 return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a); 5579 } 5580 5581 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 5582 vdupq_n_u8 (uint8_t __a) 5583 { 5584 return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a); 5585 } 5586 5587 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 5588 vdupq_n_u16 (uint16_t __a) 5589 { 5590 return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a); 5591 } 5592 5593 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 5594 vdupq_n_u32 (uint32_t __a) 5595 { 5596 return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a); 5597 } 5598 5599 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 5600 vdupq_n_p8 (poly8_t __a) 5601 { 5602 return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a); 5603 } 5604 5605 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 5606 vdupq_n_p16 (poly16_t __a) 5607 { 5608 return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a); 5609 } 5610 5611 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 5612 vdupq_n_s64 (int64_t __a) 5613 { 5614 return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a); 5615 } 5616 5617 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 5618 vdupq_n_u64 (uint64_t __a) 5619 { 5620 return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a); 5621 } 5622 5623 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 5624 vmov_n_s8 (int8_t __a) 5625 { 5626 return (int8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a); 5627 } 5628 5629 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 5630 vmov_n_s16 (int16_t __a) 5631 { 5632 return (int16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a); 5633 } 5634 5635 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 5636 vmov_n_s32 (int32_t __a) 5637 { 5638 return (int32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a); 5639 } 5640 5641 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 5642 vmov_n_f32 (float32_t __a) 5643 { 5644 return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a); 5645 } 5646 5647 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 5648 vmov_n_u8 (uint8_t __a) 5649 { 5650 return (uint8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a); 5651 } 5652 5653 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 5654 vmov_n_u16 (uint16_t __a) 5655 { 5656 return (uint16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a); 5657 } 5658 5659 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 5660 vmov_n_u32 (uint32_t __a) 5661 { 5662 return (uint32x2_t)__builtin_neon_vdup_nv2si ((__builtin_neon_si) __a); 5663 } 5664 5665 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 5666 vmov_n_p8 (poly8_t __a) 5667 { 5668 return (poly8x8_t)__builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __a); 5669 } 5670 5671 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 5672 vmov_n_p16 (poly16_t __a) 5673 { 5674 return (poly16x4_t)__builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __a); 5675 } 5676 5677 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 5678 vmov_n_s64 (int64_t __a) 5679 { 5680 return (int64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a); 5681 } 5682 5683 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 5684 vmov_n_u64 (uint64_t __a) 5685 { 5686 return (uint64x1_t)__builtin_neon_vdup_ndi ((__builtin_neon_di) __a); 5687 } 5688 5689 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 5690 vmovq_n_s8 (int8_t __a) 5691 { 5692 return (int8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a); 5693 } 5694 5695 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 5696 vmovq_n_s16 (int16_t __a) 5697 { 5698 return (int16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a); 5699 } 5700 5701 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 5702 vmovq_n_s32 (int32_t __a) 5703 { 5704 return (int32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a); 5705 } 5706 5707 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 5708 vmovq_n_f32 (float32_t __a) 5709 { 5710 return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a); 5711 } 5712 5713 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 5714 vmovq_n_u8 (uint8_t __a) 5715 { 5716 return (uint8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a); 5717 } 5718 5719 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 5720 vmovq_n_u16 (uint16_t __a) 5721 { 5722 return (uint16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a); 5723 } 5724 5725 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 5726 vmovq_n_u32 (uint32_t __a) 5727 { 5728 return (uint32x4_t)__builtin_neon_vdup_nv4si ((__builtin_neon_si) __a); 5729 } 5730 5731 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 5732 vmovq_n_p8 (poly8_t __a) 5733 { 5734 return (poly8x16_t)__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __a); 5735 } 5736 5737 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 5738 vmovq_n_p16 (poly16_t __a) 5739 { 5740 return (poly16x8_t)__builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __a); 5741 } 5742 5743 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 5744 vmovq_n_s64 (int64_t __a) 5745 { 5746 return (int64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a); 5747 } 5748 5749 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 5750 vmovq_n_u64 (uint64_t __a) 5751 { 5752 return (uint64x2_t)__builtin_neon_vdup_nv2di ((__builtin_neon_di) __a); 5753 } 5754 5755 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 5756 vdup_lane_s8 (int8x8_t __a, const int __b) 5757 { 5758 return (int8x8_t)__builtin_neon_vdup_lanev8qi (__a, __b); 5759 } 5760 5761 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 5762 vdup_lane_s16 (int16x4_t __a, const int __b) 5763 { 5764 return (int16x4_t)__builtin_neon_vdup_lanev4hi (__a, __b); 5765 } 5766 5767 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 5768 vdup_lane_s32 (int32x2_t __a, const int __b) 5769 { 5770 return (int32x2_t)__builtin_neon_vdup_lanev2si (__a, __b); 5771 } 5772 5773 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 5774 vdup_lane_f32 (float32x2_t __a, const int __b) 5775 { 5776 return (float32x2_t)__builtin_neon_vdup_lanev2sf (__a, __b); 5777 } 5778 5779 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 5780 vdup_lane_u8 (uint8x8_t __a, const int __b) 5781 { 5782 return (uint8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b); 5783 } 5784 5785 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 5786 vdup_lane_u16 (uint16x4_t __a, const int __b) 5787 { 5788 return (uint16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b); 5789 } 5790 5791 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 5792 vdup_lane_u32 (uint32x2_t __a, const int __b) 5793 { 5794 return (uint32x2_t)__builtin_neon_vdup_lanev2si ((int32x2_t) __a, __b); 5795 } 5796 5797 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 5798 vdup_lane_p8 (poly8x8_t __a, const int __b) 5799 { 5800 return (poly8x8_t)__builtin_neon_vdup_lanev8qi ((int8x8_t) __a, __b); 5801 } 5802 5803 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 5804 vdup_lane_p16 (poly16x4_t __a, const int __b) 5805 { 5806 return (poly16x4_t)__builtin_neon_vdup_lanev4hi ((int16x4_t) __a, __b); 5807 } 5808 5809 #ifdef __ARM_FEATURE_CRYPTO 5810 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 5811 vdup_lane_p64 (poly64x1_t __a, const int __b) 5812 { 5813 return (poly64x1_t)__builtin_neon_vdup_lanedi (__a, __b); 5814 } 5815 5816 #endif 5817 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 5818 vdup_lane_s64 (int64x1_t __a, const int __b) 5819 { 5820 return (int64x1_t)__builtin_neon_vdup_lanedi (__a, __b); 5821 } 5822 5823 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 5824 vdup_lane_u64 (uint64x1_t __a, const int __b) 5825 { 5826 return (uint64x1_t)__builtin_neon_vdup_lanedi ((int64x1_t) __a, __b); 5827 } 5828 5829 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 5830 vdupq_lane_s8 (int8x8_t __a, const int __b) 5831 { 5832 return (int8x16_t)__builtin_neon_vdup_lanev16qi (__a, __b); 5833 } 5834 5835 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 5836 vdupq_lane_s16 (int16x4_t __a, const int __b) 5837 { 5838 return (int16x8_t)__builtin_neon_vdup_lanev8hi (__a, __b); 5839 } 5840 5841 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 5842 vdupq_lane_s32 (int32x2_t __a, const int __b) 5843 { 5844 return (int32x4_t)__builtin_neon_vdup_lanev4si (__a, __b); 5845 } 5846 5847 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 5848 vdupq_lane_f32 (float32x2_t __a, const int __b) 5849 { 5850 return (float32x4_t)__builtin_neon_vdup_lanev4sf (__a, __b); 5851 } 5852 5853 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 5854 vdupq_lane_u8 (uint8x8_t __a, const int __b) 5855 { 5856 return (uint8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b); 5857 } 5858 5859 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 5860 vdupq_lane_u16 (uint16x4_t __a, const int __b) 5861 { 5862 return (uint16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b); 5863 } 5864 5865 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 5866 vdupq_lane_u32 (uint32x2_t __a, const int __b) 5867 { 5868 return (uint32x4_t)__builtin_neon_vdup_lanev4si ((int32x2_t) __a, __b); 5869 } 5870 5871 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 5872 vdupq_lane_p8 (poly8x8_t __a, const int __b) 5873 { 5874 return (poly8x16_t)__builtin_neon_vdup_lanev16qi ((int8x8_t) __a, __b); 5875 } 5876 5877 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 5878 vdupq_lane_p16 (poly16x4_t __a, const int __b) 5879 { 5880 return (poly16x8_t)__builtin_neon_vdup_lanev8hi ((int16x4_t) __a, __b); 5881 } 5882 5883 #ifdef __ARM_FEATURE_CRYPTO 5884 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 5885 vdupq_lane_p64 (poly64x1_t __a, const int __b) 5886 { 5887 return (poly64x2_t)__builtin_neon_vdup_lanev2di (__a, __b); 5888 } 5889 5890 #endif 5891 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 5892 vdupq_lane_s64 (int64x1_t __a, const int __b) 5893 { 5894 return (int64x2_t)__builtin_neon_vdup_lanev2di (__a, __b); 5895 } 5896 5897 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 5898 vdupq_lane_u64 (uint64x1_t __a, const int __b) 5899 { 5900 return (uint64x2_t)__builtin_neon_vdup_lanev2di ((int64x1_t) __a, __b); 5901 } 5902 5903 #ifdef __ARM_FEATURE_CRYPTO 5904 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 5905 vcombine_p64 (poly64x1_t __a, poly64x1_t __b) 5906 { 5907 return (poly64x2_t)__builtin_neon_vcombinedi (__a, __b); 5908 } 5909 5910 #endif 5911 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 5912 vcombine_s8 (int8x8_t __a, int8x8_t __b) 5913 { 5914 return (int8x16_t)__builtin_neon_vcombinev8qi (__a, __b); 5915 } 5916 5917 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 5918 vcombine_s16 (int16x4_t __a, int16x4_t __b) 5919 { 5920 return (int16x8_t)__builtin_neon_vcombinev4hi (__a, __b); 5921 } 5922 5923 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 5924 vcombine_s32 (int32x2_t __a, int32x2_t __b) 5925 { 5926 return (int32x4_t)__builtin_neon_vcombinev2si (__a, __b); 5927 } 5928 5929 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 5930 vcombine_s64 (int64x1_t __a, int64x1_t __b) 5931 { 5932 return (int64x2_t)__builtin_neon_vcombinedi (__a, __b); 5933 } 5934 5935 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 5936 vcombine_f32 (float32x2_t __a, float32x2_t __b) 5937 { 5938 return (float32x4_t)__builtin_neon_vcombinev2sf (__a, __b); 5939 } 5940 5941 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 5942 vcombine_u8 (uint8x8_t __a, uint8x8_t __b) 5943 { 5944 return (uint8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b); 5945 } 5946 5947 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 5948 vcombine_u16 (uint16x4_t __a, uint16x4_t __b) 5949 { 5950 return (uint16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b); 5951 } 5952 5953 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 5954 vcombine_u32 (uint32x2_t __a, uint32x2_t __b) 5955 { 5956 return (uint32x4_t)__builtin_neon_vcombinev2si ((int32x2_t) __a, (int32x2_t) __b); 5957 } 5958 5959 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 5960 vcombine_u64 (uint64x1_t __a, uint64x1_t __b) 5961 { 5962 return (uint64x2_t)__builtin_neon_vcombinedi ((int64x1_t) __a, (int64x1_t) __b); 5963 } 5964 5965 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 5966 vcombine_p8 (poly8x8_t __a, poly8x8_t __b) 5967 { 5968 return (poly8x16_t)__builtin_neon_vcombinev8qi ((int8x8_t) __a, (int8x8_t) __b); 5969 } 5970 5971 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 5972 vcombine_p16 (poly16x4_t __a, poly16x4_t __b) 5973 { 5974 return (poly16x8_t)__builtin_neon_vcombinev4hi ((int16x4_t) __a, (int16x4_t) __b); 5975 } 5976 5977 #ifdef __ARM_FEATURE_CRYPTO 5978 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 5979 vget_high_p64 (poly64x2_t __a) 5980 { 5981 return (poly64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a); 5982 } 5983 5984 #endif 5985 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 5986 vget_high_s8 (int8x16_t __a) 5987 { 5988 return (int8x8_t)__builtin_neon_vget_highv16qi (__a); 5989 } 5990 5991 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 5992 vget_high_s16 (int16x8_t __a) 5993 { 5994 return (int16x4_t)__builtin_neon_vget_highv8hi (__a); 5995 } 5996 5997 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 5998 vget_high_s32 (int32x4_t __a) 5999 { 6000 return (int32x2_t)__builtin_neon_vget_highv4si (__a); 6001 } 6002 6003 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 6004 vget_high_s64 (int64x2_t __a) 6005 { 6006 return (int64x1_t)__builtin_neon_vget_highv2di (__a); 6007 } 6008 6009 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 6010 vget_high_f32 (float32x4_t __a) 6011 { 6012 return (float32x2_t)__builtin_neon_vget_highv4sf (__a); 6013 } 6014 6015 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 6016 vget_high_u8 (uint8x16_t __a) 6017 { 6018 return (uint8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a); 6019 } 6020 6021 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 6022 vget_high_u16 (uint16x8_t __a) 6023 { 6024 return (uint16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a); 6025 } 6026 6027 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 6028 vget_high_u32 (uint32x4_t __a) 6029 { 6030 return (uint32x2_t)__builtin_neon_vget_highv4si ((int32x4_t) __a); 6031 } 6032 6033 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 6034 vget_high_u64 (uint64x2_t __a) 6035 { 6036 return (uint64x1_t)__builtin_neon_vget_highv2di ((int64x2_t) __a); 6037 } 6038 6039 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 6040 vget_high_p8 (poly8x16_t __a) 6041 { 6042 return (poly8x8_t)__builtin_neon_vget_highv16qi ((int8x16_t) __a); 6043 } 6044 6045 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 6046 vget_high_p16 (poly16x8_t __a) 6047 { 6048 return (poly16x4_t)__builtin_neon_vget_highv8hi ((int16x8_t) __a); 6049 } 6050 6051 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 6052 vget_low_s8 (int8x16_t __a) 6053 { 6054 return (int8x8_t)__builtin_neon_vget_lowv16qi (__a); 6055 } 6056 6057 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 6058 vget_low_s16 (int16x8_t __a) 6059 { 6060 return (int16x4_t)__builtin_neon_vget_lowv8hi (__a); 6061 } 6062 6063 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 6064 vget_low_s32 (int32x4_t __a) 6065 { 6066 return (int32x2_t)__builtin_neon_vget_lowv4si (__a); 6067 } 6068 6069 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 6070 vget_low_f32 (float32x4_t __a) 6071 { 6072 return (float32x2_t)__builtin_neon_vget_lowv4sf (__a); 6073 } 6074 6075 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 6076 vget_low_u8 (uint8x16_t __a) 6077 { 6078 return (uint8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a); 6079 } 6080 6081 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 6082 vget_low_u16 (uint16x8_t __a) 6083 { 6084 return (uint16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a); 6085 } 6086 6087 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 6088 vget_low_u32 (uint32x4_t __a) 6089 { 6090 return (uint32x2_t)__builtin_neon_vget_lowv4si ((int32x4_t) __a); 6091 } 6092 6093 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 6094 vget_low_p8 (poly8x16_t __a) 6095 { 6096 return (poly8x8_t)__builtin_neon_vget_lowv16qi ((int8x16_t) __a); 6097 } 6098 6099 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 6100 vget_low_p16 (poly16x8_t __a) 6101 { 6102 return (poly16x4_t)__builtin_neon_vget_lowv8hi ((int16x8_t) __a); 6103 } 6104 6105 #ifdef __ARM_FEATURE_CRYPTO 6106 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 6107 vget_low_p64 (poly64x2_t __a) 6108 { 6109 return (poly64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a); 6110 } 6111 6112 #endif 6113 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 6114 vget_low_s64 (int64x2_t __a) 6115 { 6116 return (int64x1_t)__builtin_neon_vget_lowv2di (__a); 6117 } 6118 6119 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 6120 vget_low_u64 (uint64x2_t __a) 6121 { 6122 return (uint64x1_t)__builtin_neon_vget_lowv2di ((int64x2_t) __a); 6123 } 6124 6125 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 6126 vcvt_s32_f32 (float32x2_t __a) 6127 { 6128 return (int32x2_t)__builtin_neon_vcvtv2sf (__a, 1); 6129 } 6130 6131 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 6132 vcvt_f32_s32 (int32x2_t __a) 6133 { 6134 return (float32x2_t)__builtin_neon_vcvtv2si (__a, 1); 6135 } 6136 6137 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 6138 vcvt_f32_u32 (uint32x2_t __a) 6139 { 6140 return (float32x2_t)__builtin_neon_vcvtv2si ((int32x2_t) __a, 0); 6141 } 6142 6143 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 6144 vcvt_u32_f32 (float32x2_t __a) 6145 { 6146 return (uint32x2_t)__builtin_neon_vcvtv2sf (__a, 0); 6147 } 6148 6149 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6150 vcvtq_s32_f32 (float32x4_t __a) 6151 { 6152 return (int32x4_t)__builtin_neon_vcvtv4sf (__a, 1); 6153 } 6154 6155 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 6156 vcvtq_f32_s32 (int32x4_t __a) 6157 { 6158 return (float32x4_t)__builtin_neon_vcvtv4si (__a, 1); 6159 } 6160 6161 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 6162 vcvtq_f32_u32 (uint32x4_t __a) 6163 { 6164 return (float32x4_t)__builtin_neon_vcvtv4si ((int32x4_t) __a, 0); 6165 } 6166 6167 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 6168 vcvtq_u32_f32 (float32x4_t __a) 6169 { 6170 return (uint32x4_t)__builtin_neon_vcvtv4sf (__a, 0); 6171 } 6172 6173 #if ((__ARM_FP & 0x2) != 0) 6174 __extension__ static __inline float16x4_t __attribute__ ((__always_inline__)) 6175 vcvt_f16_f32 (float32x4_t __a) 6176 { 6177 return (float16x4_t)__builtin_neon_vcvtv4hfv4sf (__a); 6178 } 6179 6180 #endif 6181 #if ((__ARM_FP & 0x2) != 0) 6182 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 6183 vcvt_f32_f16 (float16x4_t __a) 6184 { 6185 return (float32x4_t)__builtin_neon_vcvtv4sfv4hf (__a); 6186 } 6187 6188 #endif 6189 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 6190 vcvt_n_s32_f32 (float32x2_t __a, const int __b) 6191 { 6192 return (int32x2_t)__builtin_neon_vcvt_nv2sf (__a, __b, 1); 6193 } 6194 6195 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 6196 vcvt_n_f32_s32 (int32x2_t __a, const int __b) 6197 { 6198 return (float32x2_t)__builtin_neon_vcvt_nv2si (__a, __b, 1); 6199 } 6200 6201 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 6202 vcvt_n_f32_u32 (uint32x2_t __a, const int __b) 6203 { 6204 return (float32x2_t)__builtin_neon_vcvt_nv2si ((int32x2_t) __a, __b, 0); 6205 } 6206 6207 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 6208 vcvt_n_u32_f32 (float32x2_t __a, const int __b) 6209 { 6210 return (uint32x2_t)__builtin_neon_vcvt_nv2sf (__a, __b, 0); 6211 } 6212 6213 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6214 vcvtq_n_s32_f32 (float32x4_t __a, const int __b) 6215 { 6216 return (int32x4_t)__builtin_neon_vcvt_nv4sf (__a, __b, 1); 6217 } 6218 6219 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 6220 vcvtq_n_f32_s32 (int32x4_t __a, const int __b) 6221 { 6222 return (float32x4_t)__builtin_neon_vcvt_nv4si (__a, __b, 1); 6223 } 6224 6225 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 6226 vcvtq_n_f32_u32 (uint32x4_t __a, const int __b) 6227 { 6228 return (float32x4_t)__builtin_neon_vcvt_nv4si ((int32x4_t) __a, __b, 0); 6229 } 6230 6231 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 6232 vcvtq_n_u32_f32 (float32x4_t __a, const int __b) 6233 { 6234 return (uint32x4_t)__builtin_neon_vcvt_nv4sf (__a, __b, 0); 6235 } 6236 6237 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 6238 vmovn_s16 (int16x8_t __a) 6239 { 6240 return (int8x8_t)__builtin_neon_vmovnv8hi (__a, 1); 6241 } 6242 6243 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 6244 vmovn_s32 (int32x4_t __a) 6245 { 6246 return (int16x4_t)__builtin_neon_vmovnv4si (__a, 1); 6247 } 6248 6249 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 6250 vmovn_s64 (int64x2_t __a) 6251 { 6252 return (int32x2_t)__builtin_neon_vmovnv2di (__a, 1); 6253 } 6254 6255 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 6256 vmovn_u16 (uint16x8_t __a) 6257 { 6258 return (uint8x8_t)__builtin_neon_vmovnv8hi ((int16x8_t) __a, 0); 6259 } 6260 6261 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 6262 vmovn_u32 (uint32x4_t __a) 6263 { 6264 return (uint16x4_t)__builtin_neon_vmovnv4si ((int32x4_t) __a, 0); 6265 } 6266 6267 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 6268 vmovn_u64 (uint64x2_t __a) 6269 { 6270 return (uint32x2_t)__builtin_neon_vmovnv2di ((int64x2_t) __a, 0); 6271 } 6272 6273 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 6274 vqmovn_s16 (int16x8_t __a) 6275 { 6276 return (int8x8_t)__builtin_neon_vqmovnv8hi (__a, 1); 6277 } 6278 6279 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 6280 vqmovn_s32 (int32x4_t __a) 6281 { 6282 return (int16x4_t)__builtin_neon_vqmovnv4si (__a, 1); 6283 } 6284 6285 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 6286 vqmovn_s64 (int64x2_t __a) 6287 { 6288 return (int32x2_t)__builtin_neon_vqmovnv2di (__a, 1); 6289 } 6290 6291 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 6292 vqmovn_u16 (uint16x8_t __a) 6293 { 6294 return (uint8x8_t)__builtin_neon_vqmovnv8hi ((int16x8_t) __a, 0); 6295 } 6296 6297 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 6298 vqmovn_u32 (uint32x4_t __a) 6299 { 6300 return (uint16x4_t)__builtin_neon_vqmovnv4si ((int32x4_t) __a, 0); 6301 } 6302 6303 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 6304 vqmovn_u64 (uint64x2_t __a) 6305 { 6306 return (uint32x2_t)__builtin_neon_vqmovnv2di ((int64x2_t) __a, 0); 6307 } 6308 6309 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 6310 vqmovun_s16 (int16x8_t __a) 6311 { 6312 return (uint8x8_t)__builtin_neon_vqmovunv8hi (__a, 1); 6313 } 6314 6315 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 6316 vqmovun_s32 (int32x4_t __a) 6317 { 6318 return (uint16x4_t)__builtin_neon_vqmovunv4si (__a, 1); 6319 } 6320 6321 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 6322 vqmovun_s64 (int64x2_t __a) 6323 { 6324 return (uint32x2_t)__builtin_neon_vqmovunv2di (__a, 1); 6325 } 6326 6327 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 6328 vmovl_s8 (int8x8_t __a) 6329 { 6330 return (int16x8_t)__builtin_neon_vmovlv8qi (__a, 1); 6331 } 6332 6333 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6334 vmovl_s16 (int16x4_t __a) 6335 { 6336 return (int32x4_t)__builtin_neon_vmovlv4hi (__a, 1); 6337 } 6338 6339 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 6340 vmovl_s32 (int32x2_t __a) 6341 { 6342 return (int64x2_t)__builtin_neon_vmovlv2si (__a, 1); 6343 } 6344 6345 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 6346 vmovl_u8 (uint8x8_t __a) 6347 { 6348 return (uint16x8_t)__builtin_neon_vmovlv8qi ((int8x8_t) __a, 0); 6349 } 6350 6351 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 6352 vmovl_u16 (uint16x4_t __a) 6353 { 6354 return (uint32x4_t)__builtin_neon_vmovlv4hi ((int16x4_t) __a, 0); 6355 } 6356 6357 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 6358 vmovl_u32 (uint32x2_t __a) 6359 { 6360 return (uint64x2_t)__builtin_neon_vmovlv2si ((int32x2_t) __a, 0); 6361 } 6362 6363 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 6364 vtbl1_s8 (int8x8_t __a, int8x8_t __b) 6365 { 6366 return (int8x8_t)__builtin_neon_vtbl1v8qi (__a, __b); 6367 } 6368 6369 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 6370 vtbl1_u8 (uint8x8_t __a, uint8x8_t __b) 6371 { 6372 return (uint8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b); 6373 } 6374 6375 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 6376 vtbl1_p8 (poly8x8_t __a, uint8x8_t __b) 6377 { 6378 return (poly8x8_t)__builtin_neon_vtbl1v8qi ((int8x8_t) __a, (int8x8_t) __b); 6379 } 6380 6381 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 6382 vtbl2_s8 (int8x8x2_t __a, int8x8_t __b) 6383 { 6384 union { int8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a }; 6385 return (int8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, __b); 6386 } 6387 6388 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 6389 vtbl2_u8 (uint8x8x2_t __a, uint8x8_t __b) 6390 { 6391 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a }; 6392 return (uint8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b); 6393 } 6394 6395 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 6396 vtbl2_p8 (poly8x8x2_t __a, uint8x8_t __b) 6397 { 6398 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __au = { __a }; 6399 return (poly8x8_t)__builtin_neon_vtbl2v8qi (__au.__o, (int8x8_t) __b); 6400 } 6401 6402 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 6403 vtbl3_s8 (int8x8x3_t __a, int8x8_t __b) 6404 { 6405 union { int8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a }; 6406 return (int8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, __b); 6407 } 6408 6409 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 6410 vtbl3_u8 (uint8x8x3_t __a, uint8x8_t __b) 6411 { 6412 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a }; 6413 return (uint8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b); 6414 } 6415 6416 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 6417 vtbl3_p8 (poly8x8x3_t __a, uint8x8_t __b) 6418 { 6419 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __au = { __a }; 6420 return (poly8x8_t)__builtin_neon_vtbl3v8qi (__au.__o, (int8x8_t) __b); 6421 } 6422 6423 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 6424 vtbl4_s8 (int8x8x4_t __a, int8x8_t __b) 6425 { 6426 union { int8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a }; 6427 return (int8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, __b); 6428 } 6429 6430 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 6431 vtbl4_u8 (uint8x8x4_t __a, uint8x8_t __b) 6432 { 6433 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a }; 6434 return (uint8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b); 6435 } 6436 6437 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 6438 vtbl4_p8 (poly8x8x4_t __a, uint8x8_t __b) 6439 { 6440 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __au = { __a }; 6441 return (poly8x8_t)__builtin_neon_vtbl4v8qi (__au.__o, (int8x8_t) __b); 6442 } 6443 6444 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 6445 vtbx1_s8 (int8x8_t __a, int8x8_t __b, int8x8_t __c) 6446 { 6447 return (int8x8_t)__builtin_neon_vtbx1v8qi (__a, __b, __c); 6448 } 6449 6450 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 6451 vtbx1_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c) 6452 { 6453 return (uint8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c); 6454 } 6455 6456 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 6457 vtbx1_p8 (poly8x8_t __a, poly8x8_t __b, uint8x8_t __c) 6458 { 6459 return (poly8x8_t)__builtin_neon_vtbx1v8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c); 6460 } 6461 6462 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 6463 vtbx2_s8 (int8x8_t __a, int8x8x2_t __b, int8x8_t __c) 6464 { 6465 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 6466 return (int8x8_t)__builtin_neon_vtbx2v8qi (__a, __bu.__o, __c); 6467 } 6468 6469 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 6470 vtbx2_u8 (uint8x8_t __a, uint8x8x2_t __b, uint8x8_t __c) 6471 { 6472 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 6473 return (uint8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c); 6474 } 6475 6476 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 6477 vtbx2_p8 (poly8x8_t __a, poly8x8x2_t __b, uint8x8_t __c) 6478 { 6479 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 6480 return (poly8x8_t)__builtin_neon_vtbx2v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c); 6481 } 6482 6483 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 6484 vtbx3_s8 (int8x8_t __a, int8x8x3_t __b, int8x8_t __c) 6485 { 6486 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 6487 return (int8x8_t)__builtin_neon_vtbx3v8qi (__a, __bu.__o, __c); 6488 } 6489 6490 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 6491 vtbx3_u8 (uint8x8_t __a, uint8x8x3_t __b, uint8x8_t __c) 6492 { 6493 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 6494 return (uint8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c); 6495 } 6496 6497 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 6498 vtbx3_p8 (poly8x8_t __a, poly8x8x3_t __b, uint8x8_t __c) 6499 { 6500 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 6501 return (poly8x8_t)__builtin_neon_vtbx3v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c); 6502 } 6503 6504 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 6505 vtbx4_s8 (int8x8_t __a, int8x8x4_t __b, int8x8_t __c) 6506 { 6507 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 6508 return (int8x8_t)__builtin_neon_vtbx4v8qi (__a, __bu.__o, __c); 6509 } 6510 6511 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 6512 vtbx4_u8 (uint8x8_t __a, uint8x8x4_t __b, uint8x8_t __c) 6513 { 6514 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 6515 return (uint8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c); 6516 } 6517 6518 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 6519 vtbx4_p8 (poly8x8_t __a, poly8x8x4_t __b, uint8x8_t __c) 6520 { 6521 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 6522 return (poly8x8_t)__builtin_neon_vtbx4v8qi ((int8x8_t) __a, __bu.__o, (int8x8_t) __c); 6523 } 6524 6525 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 6526 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c) 6527 { 6528 return (int16x4_t)__builtin_neon_vmul_lanev4hi (__a, __b, __c, 1); 6529 } 6530 6531 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 6532 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c) 6533 { 6534 return (int32x2_t)__builtin_neon_vmul_lanev2si (__a, __b, __c, 1); 6535 } 6536 6537 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 6538 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __c) 6539 { 6540 return (float32x2_t)__builtin_neon_vmul_lanev2sf (__a, __b, __c, 3); 6541 } 6542 6543 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 6544 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c) 6545 { 6546 return (uint16x4_t)__builtin_neon_vmul_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c, 0); 6547 } 6548 6549 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 6550 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c) 6551 { 6552 return (uint32x2_t)__builtin_neon_vmul_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c, 0); 6553 } 6554 6555 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 6556 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c) 6557 { 6558 return (int16x8_t)__builtin_neon_vmul_lanev8hi (__a, __b, __c, 1); 6559 } 6560 6561 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6562 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c) 6563 { 6564 return (int32x4_t)__builtin_neon_vmul_lanev4si (__a, __b, __c, 1); 6565 } 6566 6567 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 6568 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __c) 6569 { 6570 return (float32x4_t)__builtin_neon_vmul_lanev4sf (__a, __b, __c, 3); 6571 } 6572 6573 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 6574 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __c) 6575 { 6576 return (uint16x8_t)__builtin_neon_vmul_lanev8hi ((int16x8_t) __a, (int16x4_t) __b, __c, 0); 6577 } 6578 6579 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 6580 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __c) 6581 { 6582 return (uint32x4_t)__builtin_neon_vmul_lanev4si ((int32x4_t) __a, (int32x2_t) __b, __c, 0); 6583 } 6584 6585 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 6586 vmla_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d) 6587 { 6588 return (int16x4_t)__builtin_neon_vmla_lanev4hi (__a, __b, __c, __d, 1); 6589 } 6590 6591 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 6592 vmla_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d) 6593 { 6594 return (int32x2_t)__builtin_neon_vmla_lanev2si (__a, __b, __c, __d, 1); 6595 } 6596 6597 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 6598 vmla_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d) 6599 { 6600 return (float32x2_t)__builtin_neon_vmla_lanev2sf (__a, __b, __c, __d, 3); 6601 } 6602 6603 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 6604 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d) 6605 { 6606 return (uint16x4_t)__builtin_neon_vmla_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d, 0); 6607 } 6608 6609 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 6610 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d) 6611 { 6612 return (uint32x2_t)__builtin_neon_vmla_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d, 0); 6613 } 6614 6615 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 6616 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d) 6617 { 6618 return (int16x8_t)__builtin_neon_vmla_lanev8hi (__a, __b, __c, __d, 1); 6619 } 6620 6621 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6622 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d) 6623 { 6624 return (int32x4_t)__builtin_neon_vmla_lanev4si (__a, __b, __c, __d, 1); 6625 } 6626 6627 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 6628 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d) 6629 { 6630 return (float32x4_t)__builtin_neon_vmla_lanev4sf (__a, __b, __c, __d, 3); 6631 } 6632 6633 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 6634 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d) 6635 { 6636 return (uint16x8_t)__builtin_neon_vmla_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d, 0); 6637 } 6638 6639 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 6640 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d) 6641 { 6642 return (uint32x4_t)__builtin_neon_vmla_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d, 0); 6643 } 6644 6645 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6646 vmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d) 6647 { 6648 return (int32x4_t)__builtin_neon_vmlal_lanev4hi (__a, __b, __c, __d, 1); 6649 } 6650 6651 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 6652 vmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d) 6653 { 6654 return (int64x2_t)__builtin_neon_vmlal_lanev2si (__a, __b, __c, __d, 1); 6655 } 6656 6657 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 6658 vmlal_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d) 6659 { 6660 return (uint32x4_t)__builtin_neon_vmlal_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d, 0); 6661 } 6662 6663 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 6664 vmlal_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d) 6665 { 6666 return (uint64x2_t)__builtin_neon_vmlal_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d, 0); 6667 } 6668 6669 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6670 vqdmlal_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d) 6671 { 6672 return (int32x4_t)__builtin_neon_vqdmlal_lanev4hi (__a, __b, __c, __d, 1); 6673 } 6674 6675 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 6676 vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d) 6677 { 6678 return (int64x2_t)__builtin_neon_vqdmlal_lanev2si (__a, __b, __c, __d, 1); 6679 } 6680 6681 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 6682 vmls_lane_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c, const int __d) 6683 { 6684 return (int16x4_t)__builtin_neon_vmls_lanev4hi (__a, __b, __c, __d, 1); 6685 } 6686 6687 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 6688 vmls_lane_s32 (int32x2_t __a, int32x2_t __b, int32x2_t __c, const int __d) 6689 { 6690 return (int32x2_t)__builtin_neon_vmls_lanev2si (__a, __b, __c, __d, 1); 6691 } 6692 6693 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 6694 vmls_lane_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c, const int __d) 6695 { 6696 return (float32x2_t)__builtin_neon_vmls_lanev2sf (__a, __b, __c, __d, 3); 6697 } 6698 6699 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 6700 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d) 6701 { 6702 return (uint16x4_t)__builtin_neon_vmls_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d, 0); 6703 } 6704 6705 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 6706 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d) 6707 { 6708 return (uint32x2_t)__builtin_neon_vmls_lanev2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d, 0); 6709 } 6710 6711 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 6712 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b, int16x4_t __c, const int __d) 6713 { 6714 return (int16x8_t)__builtin_neon_vmls_lanev8hi (__a, __b, __c, __d, 1); 6715 } 6716 6717 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6718 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b, int32x2_t __c, const int __d) 6719 { 6720 return (int32x4_t)__builtin_neon_vmls_lanev4si (__a, __b, __c, __d, 1); 6721 } 6722 6723 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 6724 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b, float32x2_t __c, const int __d) 6725 { 6726 return (float32x4_t)__builtin_neon_vmls_lanev4sf (__a, __b, __c, __d, 3); 6727 } 6728 6729 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 6730 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b, uint16x4_t __c, const int __d) 6731 { 6732 return (uint16x8_t)__builtin_neon_vmls_lanev8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x4_t) __c, __d, 0); 6733 } 6734 6735 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 6736 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b, uint32x2_t __c, const int __d) 6737 { 6738 return (uint32x4_t)__builtin_neon_vmls_lanev4si ((int32x4_t) __a, (int32x4_t) __b, (int32x2_t) __c, __d, 0); 6739 } 6740 6741 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6742 vmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d) 6743 { 6744 return (int32x4_t)__builtin_neon_vmlsl_lanev4hi (__a, __b, __c, __d, 1); 6745 } 6746 6747 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 6748 vmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d) 6749 { 6750 return (int64x2_t)__builtin_neon_vmlsl_lanev2si (__a, __b, __c, __d, 1); 6751 } 6752 6753 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 6754 vmlsl_lane_u16 (uint32x4_t __a, uint16x4_t __b, uint16x4_t __c, const int __d) 6755 { 6756 return (uint32x4_t)__builtin_neon_vmlsl_lanev4hi ((int32x4_t) __a, (int16x4_t) __b, (int16x4_t) __c, __d, 0); 6757 } 6758 6759 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 6760 vmlsl_lane_u32 (uint64x2_t __a, uint32x2_t __b, uint32x2_t __c, const int __d) 6761 { 6762 return (uint64x2_t)__builtin_neon_vmlsl_lanev2si ((int64x2_t) __a, (int32x2_t) __b, (int32x2_t) __c, __d, 0); 6763 } 6764 6765 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6766 vqdmlsl_lane_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c, const int __d) 6767 { 6768 return (int32x4_t)__builtin_neon_vqdmlsl_lanev4hi (__a, __b, __c, __d, 1); 6769 } 6770 6771 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 6772 vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c, const int __d) 6773 { 6774 return (int64x2_t)__builtin_neon_vqdmlsl_lanev2si (__a, __b, __c, __d, 1); 6775 } 6776 6777 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6778 vmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c) 6779 { 6780 return (int32x4_t)__builtin_neon_vmull_lanev4hi (__a, __b, __c, 1); 6781 } 6782 6783 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 6784 vmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c) 6785 { 6786 return (int64x2_t)__builtin_neon_vmull_lanev2si (__a, __b, __c, 1); 6787 } 6788 6789 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 6790 vmull_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __c) 6791 { 6792 return (uint32x4_t)__builtin_neon_vmull_lanev4hi ((int16x4_t) __a, (int16x4_t) __b, __c, 0); 6793 } 6794 6795 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 6796 vmull_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __c) 6797 { 6798 return (uint64x2_t)__builtin_neon_vmull_lanev2si ((int32x2_t) __a, (int32x2_t) __b, __c, 0); 6799 } 6800 6801 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6802 vqdmull_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c) 6803 { 6804 return (int32x4_t)__builtin_neon_vqdmull_lanev4hi (__a, __b, __c, 1); 6805 } 6806 6807 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 6808 vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c) 6809 { 6810 return (int64x2_t)__builtin_neon_vqdmull_lanev2si (__a, __b, __c, 1); 6811 } 6812 6813 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 6814 vqdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c) 6815 { 6816 return (int16x8_t)__builtin_neon_vqdmulh_lanev8hi (__a, __b, __c, 1); 6817 } 6818 6819 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6820 vqdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c) 6821 { 6822 return (int32x4_t)__builtin_neon_vqdmulh_lanev4si (__a, __b, __c, 1); 6823 } 6824 6825 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 6826 vqdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c) 6827 { 6828 return (int16x4_t)__builtin_neon_vqdmulh_lanev4hi (__a, __b, __c, 1); 6829 } 6830 6831 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 6832 vqdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c) 6833 { 6834 return (int32x2_t)__builtin_neon_vqdmulh_lanev2si (__a, __b, __c, 1); 6835 } 6836 6837 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 6838 vqrdmulhq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __c) 6839 { 6840 return (int16x8_t)__builtin_neon_vqdmulh_lanev8hi (__a, __b, __c, 5); 6841 } 6842 6843 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6844 vqrdmulhq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __c) 6845 { 6846 return (int32x4_t)__builtin_neon_vqdmulh_lanev4si (__a, __b, __c, 5); 6847 } 6848 6849 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 6850 vqrdmulh_lane_s16 (int16x4_t __a, int16x4_t __b, const int __c) 6851 { 6852 return (int16x4_t)__builtin_neon_vqdmulh_lanev4hi (__a, __b, __c, 5); 6853 } 6854 6855 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 6856 vqrdmulh_lane_s32 (int32x2_t __a, int32x2_t __b, const int __c) 6857 { 6858 return (int32x2_t)__builtin_neon_vqdmulh_lanev2si (__a, __b, __c, 5); 6859 } 6860 6861 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 6862 vmul_n_s16 (int16x4_t __a, int16_t __b) 6863 { 6864 return (int16x4_t)__builtin_neon_vmul_nv4hi (__a, (__builtin_neon_hi) __b, 1); 6865 } 6866 6867 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 6868 vmul_n_s32 (int32x2_t __a, int32_t __b) 6869 { 6870 return (int32x2_t)__builtin_neon_vmul_nv2si (__a, (__builtin_neon_si) __b, 1); 6871 } 6872 6873 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 6874 vmul_n_f32 (float32x2_t __a, float32_t __b) 6875 { 6876 return (float32x2_t)__builtin_neon_vmul_nv2sf (__a, (__builtin_neon_sf) __b, 3); 6877 } 6878 6879 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 6880 vmul_n_u16 (uint16x4_t __a, uint16_t __b) 6881 { 6882 return (uint16x4_t)__builtin_neon_vmul_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b, 0); 6883 } 6884 6885 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 6886 vmul_n_u32 (uint32x2_t __a, uint32_t __b) 6887 { 6888 return (uint32x2_t)__builtin_neon_vmul_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b, 0); 6889 } 6890 6891 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 6892 vmulq_n_s16 (int16x8_t __a, int16_t __b) 6893 { 6894 return (int16x8_t)__builtin_neon_vmul_nv8hi (__a, (__builtin_neon_hi) __b, 1); 6895 } 6896 6897 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6898 vmulq_n_s32 (int32x4_t __a, int32_t __b) 6899 { 6900 return (int32x4_t)__builtin_neon_vmul_nv4si (__a, (__builtin_neon_si) __b, 1); 6901 } 6902 6903 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 6904 vmulq_n_f32 (float32x4_t __a, float32_t __b) 6905 { 6906 return (float32x4_t)__builtin_neon_vmul_nv4sf (__a, (__builtin_neon_sf) __b, 3); 6907 } 6908 6909 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 6910 vmulq_n_u16 (uint16x8_t __a, uint16_t __b) 6911 { 6912 return (uint16x8_t)__builtin_neon_vmul_nv8hi ((int16x8_t) __a, (__builtin_neon_hi) __b, 0); 6913 } 6914 6915 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 6916 vmulq_n_u32 (uint32x4_t __a, uint32_t __b) 6917 { 6918 return (uint32x4_t)__builtin_neon_vmul_nv4si ((int32x4_t) __a, (__builtin_neon_si) __b, 0); 6919 } 6920 6921 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6922 vmull_n_s16 (int16x4_t __a, int16_t __b) 6923 { 6924 return (int32x4_t)__builtin_neon_vmull_nv4hi (__a, (__builtin_neon_hi) __b, 1); 6925 } 6926 6927 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 6928 vmull_n_s32 (int32x2_t __a, int32_t __b) 6929 { 6930 return (int64x2_t)__builtin_neon_vmull_nv2si (__a, (__builtin_neon_si) __b, 1); 6931 } 6932 6933 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 6934 vmull_n_u16 (uint16x4_t __a, uint16_t __b) 6935 { 6936 return (uint32x4_t)__builtin_neon_vmull_nv4hi ((int16x4_t) __a, (__builtin_neon_hi) __b, 0); 6937 } 6938 6939 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 6940 vmull_n_u32 (uint32x2_t __a, uint32_t __b) 6941 { 6942 return (uint64x2_t)__builtin_neon_vmull_nv2si ((int32x2_t) __a, (__builtin_neon_si) __b, 0); 6943 } 6944 6945 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6946 vqdmull_n_s16 (int16x4_t __a, int16_t __b) 6947 { 6948 return (int32x4_t)__builtin_neon_vqdmull_nv4hi (__a, (__builtin_neon_hi) __b, 1); 6949 } 6950 6951 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 6952 vqdmull_n_s32 (int32x2_t __a, int32_t __b) 6953 { 6954 return (int64x2_t)__builtin_neon_vqdmull_nv2si (__a, (__builtin_neon_si) __b, 1); 6955 } 6956 6957 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 6958 vqdmulhq_n_s16 (int16x8_t __a, int16_t __b) 6959 { 6960 return (int16x8_t)__builtin_neon_vqdmulh_nv8hi (__a, (__builtin_neon_hi) __b, 1); 6961 } 6962 6963 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6964 vqdmulhq_n_s32 (int32x4_t __a, int32_t __b) 6965 { 6966 return (int32x4_t)__builtin_neon_vqdmulh_nv4si (__a, (__builtin_neon_si) __b, 1); 6967 } 6968 6969 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 6970 vqdmulh_n_s16 (int16x4_t __a, int16_t __b) 6971 { 6972 return (int16x4_t)__builtin_neon_vqdmulh_nv4hi (__a, (__builtin_neon_hi) __b, 1); 6973 } 6974 6975 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 6976 vqdmulh_n_s32 (int32x2_t __a, int32_t __b) 6977 { 6978 return (int32x2_t)__builtin_neon_vqdmulh_nv2si (__a, (__builtin_neon_si) __b, 1); 6979 } 6980 6981 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 6982 vqrdmulhq_n_s16 (int16x8_t __a, int16_t __b) 6983 { 6984 return (int16x8_t)__builtin_neon_vqdmulh_nv8hi (__a, (__builtin_neon_hi) __b, 5); 6985 } 6986 6987 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 6988 vqrdmulhq_n_s32 (int32x4_t __a, int32_t __b) 6989 { 6990 return (int32x4_t)__builtin_neon_vqdmulh_nv4si (__a, (__builtin_neon_si) __b, 5); 6991 } 6992 6993 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 6994 vqrdmulh_n_s16 (int16x4_t __a, int16_t __b) 6995 { 6996 return (int16x4_t)__builtin_neon_vqdmulh_nv4hi (__a, (__builtin_neon_hi) __b, 5); 6997 } 6998 6999 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 7000 vqrdmulh_n_s32 (int32x2_t __a, int32_t __b) 7001 { 7002 return (int32x2_t)__builtin_neon_vqdmulh_nv2si (__a, (__builtin_neon_si) __b, 5); 7003 } 7004 7005 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 7006 vmla_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c) 7007 { 7008 return (int16x4_t)__builtin_neon_vmla_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1); 7009 } 7010 7011 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 7012 vmla_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c) 7013 { 7014 return (int32x2_t)__builtin_neon_vmla_nv2si (__a, __b, (__builtin_neon_si) __c, 1); 7015 } 7016 7017 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 7018 vmla_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c) 7019 { 7020 return (float32x2_t)__builtin_neon_vmla_nv2sf (__a, __b, (__builtin_neon_sf) __c, 3); 7021 } 7022 7023 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 7024 vmla_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c) 7025 { 7026 return (uint16x4_t)__builtin_neon_vmla_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c, 0); 7027 } 7028 7029 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 7030 vmla_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c) 7031 { 7032 return (uint32x2_t)__builtin_neon_vmla_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c, 0); 7033 } 7034 7035 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 7036 vmlaq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c) 7037 { 7038 return (int16x8_t)__builtin_neon_vmla_nv8hi (__a, __b, (__builtin_neon_hi) __c, 1); 7039 } 7040 7041 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 7042 vmlaq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c) 7043 { 7044 return (int32x4_t)__builtin_neon_vmla_nv4si (__a, __b, (__builtin_neon_si) __c, 1); 7045 } 7046 7047 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 7048 vmlaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c) 7049 { 7050 return (float32x4_t)__builtin_neon_vmla_nv4sf (__a, __b, (__builtin_neon_sf) __c, 3); 7051 } 7052 7053 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 7054 vmlaq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c) 7055 { 7056 return (uint16x8_t)__builtin_neon_vmla_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c, 0); 7057 } 7058 7059 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 7060 vmlaq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c) 7061 { 7062 return (uint32x4_t)__builtin_neon_vmla_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c, 0); 7063 } 7064 7065 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 7066 vmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c) 7067 { 7068 return (int32x4_t)__builtin_neon_vmlal_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1); 7069 } 7070 7071 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 7072 vmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c) 7073 { 7074 return (int64x2_t)__builtin_neon_vmlal_nv2si (__a, __b, (__builtin_neon_si) __c, 1); 7075 } 7076 7077 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 7078 vmlal_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c) 7079 { 7080 return (uint32x4_t)__builtin_neon_vmlal_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c, 0); 7081 } 7082 7083 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 7084 vmlal_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c) 7085 { 7086 return (uint64x2_t)__builtin_neon_vmlal_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c, 0); 7087 } 7088 7089 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 7090 vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c) 7091 { 7092 return (int32x4_t)__builtin_neon_vqdmlal_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1); 7093 } 7094 7095 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 7096 vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c) 7097 { 7098 return (int64x2_t)__builtin_neon_vqdmlal_nv2si (__a, __b, (__builtin_neon_si) __c, 1); 7099 } 7100 7101 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 7102 vmls_n_s16 (int16x4_t __a, int16x4_t __b, int16_t __c) 7103 { 7104 return (int16x4_t)__builtin_neon_vmls_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1); 7105 } 7106 7107 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 7108 vmls_n_s32 (int32x2_t __a, int32x2_t __b, int32_t __c) 7109 { 7110 return (int32x2_t)__builtin_neon_vmls_nv2si (__a, __b, (__builtin_neon_si) __c, 1); 7111 } 7112 7113 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 7114 vmls_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c) 7115 { 7116 return (float32x2_t)__builtin_neon_vmls_nv2sf (__a, __b, (__builtin_neon_sf) __c, 3); 7117 } 7118 7119 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 7120 vmls_n_u16 (uint16x4_t __a, uint16x4_t __b, uint16_t __c) 7121 { 7122 return (uint16x4_t)__builtin_neon_vmls_nv4hi ((int16x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c, 0); 7123 } 7124 7125 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 7126 vmls_n_u32 (uint32x2_t __a, uint32x2_t __b, uint32_t __c) 7127 { 7128 return (uint32x2_t)__builtin_neon_vmls_nv2si ((int32x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c, 0); 7129 } 7130 7131 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 7132 vmlsq_n_s16 (int16x8_t __a, int16x8_t __b, int16_t __c) 7133 { 7134 return (int16x8_t)__builtin_neon_vmls_nv8hi (__a, __b, (__builtin_neon_hi) __c, 1); 7135 } 7136 7137 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 7138 vmlsq_n_s32 (int32x4_t __a, int32x4_t __b, int32_t __c) 7139 { 7140 return (int32x4_t)__builtin_neon_vmls_nv4si (__a, __b, (__builtin_neon_si) __c, 1); 7141 } 7142 7143 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 7144 vmlsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c) 7145 { 7146 return (float32x4_t)__builtin_neon_vmls_nv4sf (__a, __b, (__builtin_neon_sf) __c, 3); 7147 } 7148 7149 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 7150 vmlsq_n_u16 (uint16x8_t __a, uint16x8_t __b, uint16_t __c) 7151 { 7152 return (uint16x8_t)__builtin_neon_vmls_nv8hi ((int16x8_t) __a, (int16x8_t) __b, (__builtin_neon_hi) __c, 0); 7153 } 7154 7155 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 7156 vmlsq_n_u32 (uint32x4_t __a, uint32x4_t __b, uint32_t __c) 7157 { 7158 return (uint32x4_t)__builtin_neon_vmls_nv4si ((int32x4_t) __a, (int32x4_t) __b, (__builtin_neon_si) __c, 0); 7159 } 7160 7161 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 7162 vmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c) 7163 { 7164 return (int32x4_t)__builtin_neon_vmlsl_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1); 7165 } 7166 7167 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 7168 vmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c) 7169 { 7170 return (int64x2_t)__builtin_neon_vmlsl_nv2si (__a, __b, (__builtin_neon_si) __c, 1); 7171 } 7172 7173 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 7174 vmlsl_n_u16 (uint32x4_t __a, uint16x4_t __b, uint16_t __c) 7175 { 7176 return (uint32x4_t)__builtin_neon_vmlsl_nv4hi ((int32x4_t) __a, (int16x4_t) __b, (__builtin_neon_hi) __c, 0); 7177 } 7178 7179 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 7180 vmlsl_n_u32 (uint64x2_t __a, uint32x2_t __b, uint32_t __c) 7181 { 7182 return (uint64x2_t)__builtin_neon_vmlsl_nv2si ((int64x2_t) __a, (int32x2_t) __b, (__builtin_neon_si) __c, 0); 7183 } 7184 7185 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 7186 vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c) 7187 { 7188 return (int32x4_t)__builtin_neon_vqdmlsl_nv4hi (__a, __b, (__builtin_neon_hi) __c, 1); 7189 } 7190 7191 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 7192 vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c) 7193 { 7194 return (int64x2_t)__builtin_neon_vqdmlsl_nv2si (__a, __b, (__builtin_neon_si) __c, 1); 7195 } 7196 7197 #ifdef __ARM_FEATURE_CRYPTO 7198 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 7199 vext_p64 (poly64x1_t __a, poly64x1_t __b, const int __c) 7200 { 7201 return (poly64x1_t)__builtin_neon_vextdi (__a, __b, __c); 7202 } 7203 7204 #endif 7205 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 7206 vext_s8 (int8x8_t __a, int8x8_t __b, const int __c) 7207 { 7208 return (int8x8_t)__builtin_neon_vextv8qi (__a, __b, __c); 7209 } 7210 7211 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 7212 vext_s16 (int16x4_t __a, int16x4_t __b, const int __c) 7213 { 7214 return (int16x4_t)__builtin_neon_vextv4hi (__a, __b, __c); 7215 } 7216 7217 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 7218 vext_s32 (int32x2_t __a, int32x2_t __b, const int __c) 7219 { 7220 return (int32x2_t)__builtin_neon_vextv2si (__a, __b, __c); 7221 } 7222 7223 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 7224 vext_s64 (int64x1_t __a, int64x1_t __b, const int __c) 7225 { 7226 return (int64x1_t)__builtin_neon_vextdi (__a, __b, __c); 7227 } 7228 7229 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 7230 vext_f32 (float32x2_t __a, float32x2_t __b, const int __c) 7231 { 7232 return (float32x2_t)__builtin_neon_vextv2sf (__a, __b, __c); 7233 } 7234 7235 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 7236 vext_u8 (uint8x8_t __a, uint8x8_t __b, const int __c) 7237 { 7238 return (uint8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c); 7239 } 7240 7241 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 7242 vext_u16 (uint16x4_t __a, uint16x4_t __b, const int __c) 7243 { 7244 return (uint16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c); 7245 } 7246 7247 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 7248 vext_u32 (uint32x2_t __a, uint32x2_t __b, const int __c) 7249 { 7250 return (uint32x2_t)__builtin_neon_vextv2si ((int32x2_t) __a, (int32x2_t) __b, __c); 7251 } 7252 7253 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 7254 vext_u64 (uint64x1_t __a, uint64x1_t __b, const int __c) 7255 { 7256 return (uint64x1_t)__builtin_neon_vextdi ((int64x1_t) __a, (int64x1_t) __b, __c); 7257 } 7258 7259 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 7260 vext_p8 (poly8x8_t __a, poly8x8_t __b, const int __c) 7261 { 7262 return (poly8x8_t)__builtin_neon_vextv8qi ((int8x8_t) __a, (int8x8_t) __b, __c); 7263 } 7264 7265 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 7266 vext_p16 (poly16x4_t __a, poly16x4_t __b, const int __c) 7267 { 7268 return (poly16x4_t)__builtin_neon_vextv4hi ((int16x4_t) __a, (int16x4_t) __b, __c); 7269 } 7270 7271 #ifdef __ARM_FEATURE_CRYPTO 7272 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 7273 vextq_p64 (poly64x2_t __a, poly64x2_t __b, const int __c) 7274 { 7275 return (poly64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c); 7276 } 7277 7278 #endif 7279 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 7280 vextq_s8 (int8x16_t __a, int8x16_t __b, const int __c) 7281 { 7282 return (int8x16_t)__builtin_neon_vextv16qi (__a, __b, __c); 7283 } 7284 7285 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 7286 vextq_s16 (int16x8_t __a, int16x8_t __b, const int __c) 7287 { 7288 return (int16x8_t)__builtin_neon_vextv8hi (__a, __b, __c); 7289 } 7290 7291 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 7292 vextq_s32 (int32x4_t __a, int32x4_t __b, const int __c) 7293 { 7294 return (int32x4_t)__builtin_neon_vextv4si (__a, __b, __c); 7295 } 7296 7297 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 7298 vextq_s64 (int64x2_t __a, int64x2_t __b, const int __c) 7299 { 7300 return (int64x2_t)__builtin_neon_vextv2di (__a, __b, __c); 7301 } 7302 7303 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 7304 vextq_f32 (float32x4_t __a, float32x4_t __b, const int __c) 7305 { 7306 return (float32x4_t)__builtin_neon_vextv4sf (__a, __b, __c); 7307 } 7308 7309 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 7310 vextq_u8 (uint8x16_t __a, uint8x16_t __b, const int __c) 7311 { 7312 return (uint8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c); 7313 } 7314 7315 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 7316 vextq_u16 (uint16x8_t __a, uint16x8_t __b, const int __c) 7317 { 7318 return (uint16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c); 7319 } 7320 7321 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 7322 vextq_u32 (uint32x4_t __a, uint32x4_t __b, const int __c) 7323 { 7324 return (uint32x4_t)__builtin_neon_vextv4si ((int32x4_t) __a, (int32x4_t) __b, __c); 7325 } 7326 7327 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 7328 vextq_u64 (uint64x2_t __a, uint64x2_t __b, const int __c) 7329 { 7330 return (uint64x2_t)__builtin_neon_vextv2di ((int64x2_t) __a, (int64x2_t) __b, __c); 7331 } 7332 7333 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 7334 vextq_p8 (poly8x16_t __a, poly8x16_t __b, const int __c) 7335 { 7336 return (poly8x16_t)__builtin_neon_vextv16qi ((int8x16_t) __a, (int8x16_t) __b, __c); 7337 } 7338 7339 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 7340 vextq_p16 (poly16x8_t __a, poly16x8_t __b, const int __c) 7341 { 7342 return (poly16x8_t)__builtin_neon_vextv8hi ((int16x8_t) __a, (int16x8_t) __b, __c); 7343 } 7344 7345 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 7346 vrev64_s8 (int8x8_t __a) 7347 { 7348 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 }); 7349 } 7350 7351 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 7352 vrev64_s16 (int16x4_t __a) 7353 { 7354 return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 }); 7355 } 7356 7357 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 7358 vrev64_s32 (int32x2_t __a) 7359 { 7360 return (int32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 }); 7361 } 7362 7363 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 7364 vrev64_f32 (float32x2_t __a) 7365 { 7366 return (float32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 }); 7367 } 7368 7369 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 7370 vrev64_u8 (uint8x8_t __a) 7371 { 7372 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 }); 7373 } 7374 7375 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 7376 vrev64_u16 (uint16x4_t __a) 7377 { 7378 return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 }); 7379 } 7380 7381 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 7382 vrev64_u32 (uint32x2_t __a) 7383 { 7384 return (uint32x2_t) __builtin_shuffle (__a, (uint32x2_t) { 1, 0 }); 7385 } 7386 7387 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 7388 vrev64_p8 (poly8x8_t __a) 7389 { 7390 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 7, 6, 5, 4, 3, 2, 1, 0 }); 7391 } 7392 7393 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 7394 vrev64_p16 (poly16x4_t __a) 7395 { 7396 return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 3, 2, 1, 0 }); 7397 } 7398 7399 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 7400 vrev64q_s8 (int8x16_t __a) 7401 { 7402 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 }); 7403 } 7404 7405 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 7406 vrev64q_s16 (int16x8_t __a) 7407 { 7408 return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 }); 7409 } 7410 7411 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 7412 vrev64q_s32 (int32x4_t __a) 7413 { 7414 return (int32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 }); 7415 } 7416 7417 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 7418 vrev64q_f32 (float32x4_t __a) 7419 { 7420 return (float32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 }); 7421 } 7422 7423 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 7424 vrev64q_u8 (uint8x16_t __a) 7425 { 7426 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 }); 7427 } 7428 7429 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 7430 vrev64q_u16 (uint16x8_t __a) 7431 { 7432 return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 }); 7433 } 7434 7435 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 7436 vrev64q_u32 (uint32x4_t __a) 7437 { 7438 return (uint32x4_t) __builtin_shuffle (__a, (uint32x4_t) { 1, 0, 3, 2 }); 7439 } 7440 7441 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 7442 vrev64q_p8 (poly8x16_t __a) 7443 { 7444 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 }); 7445 } 7446 7447 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 7448 vrev64q_p16 (poly16x8_t __a) 7449 { 7450 return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 }); 7451 } 7452 7453 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 7454 vrev32_s8 (int8x8_t __a) 7455 { 7456 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 }); 7457 } 7458 7459 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 7460 vrev32_s16 (int16x4_t __a) 7461 { 7462 return (int16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 }); 7463 } 7464 7465 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 7466 vrev32_u8 (uint8x8_t __a) 7467 { 7468 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 }); 7469 } 7470 7471 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 7472 vrev32_u16 (uint16x4_t __a) 7473 { 7474 return (uint16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 }); 7475 } 7476 7477 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 7478 vrev32_p8 (poly8x8_t __a) 7479 { 7480 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 3, 2, 1, 0, 7, 6, 5, 4 }); 7481 } 7482 7483 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 7484 vrev32_p16 (poly16x4_t __a) 7485 { 7486 return (poly16x4_t) __builtin_shuffle (__a, (uint16x4_t) { 1, 0, 3, 2 }); 7487 } 7488 7489 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 7490 vrev32q_s8 (int8x16_t __a) 7491 { 7492 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 }); 7493 } 7494 7495 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 7496 vrev32q_s16 (int16x8_t __a) 7497 { 7498 return (int16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 }); 7499 } 7500 7501 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 7502 vrev32q_u8 (uint8x16_t __a) 7503 { 7504 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 }); 7505 } 7506 7507 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 7508 vrev32q_u16 (uint16x8_t __a) 7509 { 7510 return (uint16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 }); 7511 } 7512 7513 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 7514 vrev32q_p8 (poly8x16_t __a) 7515 { 7516 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12 }); 7517 } 7518 7519 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 7520 vrev32q_p16 (poly16x8_t __a) 7521 { 7522 return (poly16x8_t) __builtin_shuffle (__a, (uint16x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 }); 7523 } 7524 7525 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 7526 vrev16_s8 (int8x8_t __a) 7527 { 7528 return (int8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 }); 7529 } 7530 7531 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 7532 vrev16_u8 (uint8x8_t __a) 7533 { 7534 return (uint8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 }); 7535 } 7536 7537 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 7538 vrev16_p8 (poly8x8_t __a) 7539 { 7540 return (poly8x8_t) __builtin_shuffle (__a, (uint8x8_t) { 1, 0, 3, 2, 5, 4, 7, 6 }); 7541 } 7542 7543 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 7544 vrev16q_s8 (int8x16_t __a) 7545 { 7546 return (int8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 }); 7547 } 7548 7549 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 7550 vrev16q_u8 (uint8x16_t __a) 7551 { 7552 return (uint8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 }); 7553 } 7554 7555 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 7556 vrev16q_p8 (poly8x16_t __a) 7557 { 7558 return (poly8x16_t) __builtin_shuffle (__a, (uint8x16_t) { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14 }); 7559 } 7560 7561 #ifdef __ARM_FEATURE_CRYPTO 7562 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 7563 vbsl_p64 (uint64x1_t __a, poly64x1_t __b, poly64x1_t __c) 7564 { 7565 return (poly64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c); 7566 } 7567 7568 #endif 7569 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 7570 vbsl_s8 (uint8x8_t __a, int8x8_t __b, int8x8_t __c) 7571 { 7572 return (int8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, __b, __c); 7573 } 7574 7575 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 7576 vbsl_s16 (uint16x4_t __a, int16x4_t __b, int16x4_t __c) 7577 { 7578 return (int16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, __b, __c); 7579 } 7580 7581 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 7582 vbsl_s32 (uint32x2_t __a, int32x2_t __b, int32x2_t __c) 7583 { 7584 return (int32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, __b, __c); 7585 } 7586 7587 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 7588 vbsl_s64 (uint64x1_t __a, int64x1_t __b, int64x1_t __c) 7589 { 7590 return (int64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, __b, __c); 7591 } 7592 7593 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 7594 vbsl_f32 (uint32x2_t __a, float32x2_t __b, float32x2_t __c) 7595 { 7596 return (float32x2_t)__builtin_neon_vbslv2sf ((int32x2_t) __a, __b, __c); 7597 } 7598 7599 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 7600 vbsl_u8 (uint8x8_t __a, uint8x8_t __b, uint8x8_t __c) 7601 { 7602 return (uint8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c); 7603 } 7604 7605 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 7606 vbsl_u16 (uint16x4_t __a, uint16x4_t __b, uint16x4_t __c) 7607 { 7608 return (uint16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c); 7609 } 7610 7611 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 7612 vbsl_u32 (uint32x2_t __a, uint32x2_t __b, uint32x2_t __c) 7613 { 7614 return (uint32x2_t)__builtin_neon_vbslv2si ((int32x2_t) __a, (int32x2_t) __b, (int32x2_t) __c); 7615 } 7616 7617 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 7618 vbsl_u64 (uint64x1_t __a, uint64x1_t __b, uint64x1_t __c) 7619 { 7620 return (uint64x1_t)__builtin_neon_vbsldi ((int64x1_t) __a, (int64x1_t) __b, (int64x1_t) __c); 7621 } 7622 7623 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 7624 vbsl_p8 (uint8x8_t __a, poly8x8_t __b, poly8x8_t __c) 7625 { 7626 return (poly8x8_t)__builtin_neon_vbslv8qi ((int8x8_t) __a, (int8x8_t) __b, (int8x8_t) __c); 7627 } 7628 7629 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 7630 vbsl_p16 (uint16x4_t __a, poly16x4_t __b, poly16x4_t __c) 7631 { 7632 return (poly16x4_t)__builtin_neon_vbslv4hi ((int16x4_t) __a, (int16x4_t) __b, (int16x4_t) __c); 7633 } 7634 7635 #ifdef __ARM_FEATURE_CRYPTO 7636 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 7637 vbslq_p64 (uint64x2_t __a, poly64x2_t __b, poly64x2_t __c) 7638 { 7639 return (poly64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c); 7640 } 7641 7642 #endif 7643 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 7644 vbslq_s8 (uint8x16_t __a, int8x16_t __b, int8x16_t __c) 7645 { 7646 return (int8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, __b, __c); 7647 } 7648 7649 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 7650 vbslq_s16 (uint16x8_t __a, int16x8_t __b, int16x8_t __c) 7651 { 7652 return (int16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, __b, __c); 7653 } 7654 7655 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 7656 vbslq_s32 (uint32x4_t __a, int32x4_t __b, int32x4_t __c) 7657 { 7658 return (int32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, __b, __c); 7659 } 7660 7661 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 7662 vbslq_s64 (uint64x2_t __a, int64x2_t __b, int64x2_t __c) 7663 { 7664 return (int64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, __b, __c); 7665 } 7666 7667 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 7668 vbslq_f32 (uint32x4_t __a, float32x4_t __b, float32x4_t __c) 7669 { 7670 return (float32x4_t)__builtin_neon_vbslv4sf ((int32x4_t) __a, __b, __c); 7671 } 7672 7673 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 7674 vbslq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c) 7675 { 7676 return (uint8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c); 7677 } 7678 7679 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 7680 vbslq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c) 7681 { 7682 return (uint16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c); 7683 } 7684 7685 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 7686 vbslq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c) 7687 { 7688 return (uint32x4_t)__builtin_neon_vbslv4si ((int32x4_t) __a, (int32x4_t) __b, (int32x4_t) __c); 7689 } 7690 7691 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 7692 vbslq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c) 7693 { 7694 return (uint64x2_t)__builtin_neon_vbslv2di ((int64x2_t) __a, (int64x2_t) __b, (int64x2_t) __c); 7695 } 7696 7697 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 7698 vbslq_p8 (uint8x16_t __a, poly8x16_t __b, poly8x16_t __c) 7699 { 7700 return (poly8x16_t)__builtin_neon_vbslv16qi ((int8x16_t) __a, (int8x16_t) __b, (int8x16_t) __c); 7701 } 7702 7703 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 7704 vbslq_p16 (uint16x8_t __a, poly16x8_t __b, poly16x8_t __c) 7705 { 7706 return (poly16x8_t)__builtin_neon_vbslv8hi ((int16x8_t) __a, (int16x8_t) __b, (int16x8_t) __c); 7707 } 7708 7709 /* For big-endian, the shuffle masks for ZIP, UZP and TRN must be changed as 7710 follows. (nelt = the number of elements within a vector.) 7711 7712 Firstly, a value of N within a mask, becomes (N ^ (nelt - 1)), as gcc vector 7713 extension's indexing scheme is reversed *within each vector* (relative to the 7714 neon intrinsics view), but without changing which of the two vectors. 7715 7716 Secondly, the elements within each mask are reversed, as the mask is itself a 7717 vector, and will itself be loaded in reverse order (again, relative to the 7718 neon intrinsics view, i.e. that would result from a "vld1" instruction). */ 7719 7720 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__)) 7721 vtrn_s8 (int8x8_t __a, int8x8_t __b) 7722 { 7723 int8x8x2_t __rv; 7724 #ifdef __ARM_BIG_ENDIAN 7725 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 7726 { 9, 1, 11, 3, 13, 5, 15, 7 }); 7727 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 7728 { 8, 0, 10, 2, 12, 4, 14, 6 }); 7729 #else 7730 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 7731 { 0, 8, 2, 10, 4, 12, 6, 14 }); 7732 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 7733 { 1, 9, 3, 11, 5, 13, 7, 15 }); 7734 #endif 7735 return __rv; 7736 } 7737 7738 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__)) 7739 vtrn_s16 (int16x4_t __a, int16x4_t __b) 7740 { 7741 int16x4x2_t __rv; 7742 #ifdef __ARM_BIG_ENDIAN 7743 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 }); 7744 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 }); 7745 #else 7746 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 }); 7747 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 }); 7748 #endif 7749 return __rv; 7750 } 7751 7752 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__)) 7753 vtrn_u8 (uint8x8_t __a, uint8x8_t __b) 7754 { 7755 uint8x8x2_t __rv; 7756 #ifdef __ARM_BIG_ENDIAN 7757 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 7758 { 9, 1, 11, 3, 13, 5, 15, 7 }); 7759 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 7760 { 8, 0, 10, 2, 12, 4, 14, 6 }); 7761 #else 7762 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 7763 { 0, 8, 2, 10, 4, 12, 6, 14 }); 7764 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 7765 { 1, 9, 3, 11, 5, 13, 7, 15 }); 7766 #endif 7767 return __rv; 7768 } 7769 7770 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__)) 7771 vtrn_u16 (uint16x4_t __a, uint16x4_t __b) 7772 { 7773 uint16x4x2_t __rv; 7774 #ifdef __ARM_BIG_ENDIAN 7775 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 }); 7776 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 }); 7777 #else 7778 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 }); 7779 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 }); 7780 #endif 7781 return __rv; 7782 } 7783 7784 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__)) 7785 vtrn_p8 (poly8x8_t __a, poly8x8_t __b) 7786 { 7787 poly8x8x2_t __rv; 7788 #ifdef __ARM_BIG_ENDIAN 7789 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 7790 { 9, 1, 11, 3, 13, 5, 15, 7 }); 7791 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 7792 { 8, 0, 10, 2, 12, 4, 14, 6 }); 7793 #else 7794 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 7795 { 0, 8, 2, 10, 4, 12, 6, 14 }); 7796 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 7797 { 1, 9, 3, 11, 5, 13, 7, 15 }); 7798 #endif 7799 return __rv; 7800 } 7801 7802 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__)) 7803 vtrn_p16 (poly16x4_t __a, poly16x4_t __b) 7804 { 7805 poly16x4x2_t __rv; 7806 #ifdef __ARM_BIG_ENDIAN 7807 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 1, 7, 3 }); 7808 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 6, 2 }); 7809 #else 7810 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 2, 6 }); 7811 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 5, 3, 7 }); 7812 #endif 7813 return __rv; 7814 } 7815 7816 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__)) 7817 vtrn_s32 (int32x2_t __a, int32x2_t __b) 7818 { 7819 int32x2x2_t __rv; 7820 #ifdef __ARM_BIG_ENDIAN 7821 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); 7822 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); 7823 #else 7824 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); 7825 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); 7826 #endif 7827 return __rv; 7828 } 7829 7830 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__)) 7831 vtrn_f32 (float32x2_t __a, float32x2_t __b) 7832 { 7833 float32x2x2_t __rv; 7834 #ifdef __ARM_BIG_ENDIAN 7835 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); 7836 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); 7837 #else 7838 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); 7839 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); 7840 #endif 7841 return __rv; 7842 } 7843 7844 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__)) 7845 vtrn_u32 (uint32x2_t __a, uint32x2_t __b) 7846 { 7847 uint32x2x2_t __rv; 7848 #ifdef __ARM_BIG_ENDIAN 7849 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); 7850 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); 7851 #else 7852 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); 7853 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); 7854 #endif 7855 return __rv; 7856 } 7857 7858 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__)) 7859 vtrnq_s8 (int8x16_t __a, int8x16_t __b) 7860 { 7861 int8x16x2_t __rv; 7862 #ifdef __ARM_BIG_ENDIAN 7863 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 7864 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 }); 7865 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 7866 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 }); 7867 #else 7868 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 7869 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 }); 7870 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 7871 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 }); 7872 #endif 7873 return __rv; 7874 } 7875 7876 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__)) 7877 vtrnq_s16 (int16x8_t __a, int16x8_t __b) 7878 { 7879 int16x8x2_t __rv; 7880 #ifdef __ARM_BIG_ENDIAN 7881 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 7882 { 9, 1, 11, 3, 13, 5, 15, 7 }); 7883 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 7884 { 8, 0, 10, 2, 12, 4, 14, 6 }); 7885 #else 7886 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 7887 { 0, 8, 2, 10, 4, 12, 6, 14 }); 7888 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 7889 { 1, 9, 3, 11, 5, 13, 7, 15 }); 7890 #endif 7891 return __rv; 7892 } 7893 7894 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__)) 7895 vtrnq_s32 (int32x4_t __a, int32x4_t __b) 7896 { 7897 int32x4x2_t __rv; 7898 #ifdef __ARM_BIG_ENDIAN 7899 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 }); 7900 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 }); 7901 #else 7902 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 }); 7903 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 }); 7904 #endif 7905 return __rv; 7906 } 7907 7908 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__)) 7909 vtrnq_f32 (float32x4_t __a, float32x4_t __b) 7910 { 7911 float32x4x2_t __rv; 7912 #ifdef __ARM_BIG_ENDIAN 7913 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 }); 7914 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 }); 7915 #else 7916 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 }); 7917 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 }); 7918 #endif 7919 return __rv; 7920 } 7921 7922 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__)) 7923 vtrnq_u8 (uint8x16_t __a, uint8x16_t __b) 7924 { 7925 uint8x16x2_t __rv; 7926 #ifdef __ARM_BIG_ENDIAN 7927 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 7928 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 }); 7929 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 7930 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 }); 7931 #else 7932 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 7933 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 }); 7934 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 7935 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 }); 7936 #endif 7937 return __rv; 7938 } 7939 7940 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__)) 7941 vtrnq_u16 (uint16x8_t __a, uint16x8_t __b) 7942 { 7943 uint16x8x2_t __rv; 7944 #ifdef __ARM_BIG_ENDIAN 7945 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 7946 { 9, 1, 11, 3, 13, 5, 15, 7 }); 7947 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 7948 { 8, 0, 10, 2, 12, 4, 14, 6 }); 7949 #else 7950 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 7951 { 0, 8, 2, 10, 4, 12, 6, 14 }); 7952 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 7953 { 1, 9, 3, 11, 5, 13, 7, 15 }); 7954 #endif 7955 return __rv; 7956 } 7957 7958 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__)) 7959 vtrnq_u32 (uint32x4_t __a, uint32x4_t __b) 7960 { 7961 uint32x4x2_t __rv; 7962 #ifdef __ARM_BIG_ENDIAN 7963 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 1, 7, 3 }); 7964 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 6, 2 }); 7965 #else 7966 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 2, 6 }); 7967 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 5, 3, 7 }); 7968 #endif 7969 return __rv; 7970 } 7971 7972 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__)) 7973 vtrnq_p8 (poly8x16_t __a, poly8x16_t __b) 7974 { 7975 poly8x16x2_t __rv; 7976 #ifdef __ARM_BIG_ENDIAN 7977 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 7978 { 17, 1, 19, 3, 21, 5, 23, 7, 25, 9, 27, 11, 29, 13, 31, 15 }); 7979 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 7980 { 16, 0, 18, 2, 20, 4, 22, 6, 24, 8, 26, 10, 28, 12, 30, 14 }); 7981 #else 7982 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 7983 { 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 }); 7984 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 7985 { 1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31 }); 7986 #endif 7987 return __rv; 7988 } 7989 7990 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__)) 7991 vtrnq_p16 (poly16x8_t __a, poly16x8_t __b) 7992 { 7993 poly16x8x2_t __rv; 7994 #ifdef __ARM_BIG_ENDIAN 7995 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 7996 { 9, 1, 11, 3, 13, 5, 15, 7 }); 7997 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 7998 { 8, 0, 10, 2, 12, 4, 14, 6 }); 7999 #else 8000 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 8001 { 0, 8, 2, 10, 4, 12, 6, 14 }); 8002 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 8003 { 1, 9, 3, 11, 5, 13, 7, 15 }); 8004 #endif 8005 return __rv; 8006 } 8007 8008 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__)) 8009 vzip_s8 (int8x8_t __a, int8x8_t __b) 8010 { 8011 int8x8x2_t __rv; 8012 #ifdef __ARM_BIG_ENDIAN 8013 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 8014 { 12, 4, 13, 5, 14, 6, 15, 7 }); 8015 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 8016 { 8, 0, 9, 1, 10, 2, 11, 3 }); 8017 #else 8018 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 8019 { 0, 8, 1, 9, 2, 10, 3, 11 }); 8020 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 8021 { 4, 12, 5, 13, 6, 14, 7, 15 }); 8022 #endif 8023 return __rv; 8024 } 8025 8026 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__)) 8027 vzip_s16 (int16x4_t __a, int16x4_t __b) 8028 { 8029 int16x4x2_t __rv; 8030 #ifdef __ARM_BIG_ENDIAN 8031 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 }); 8032 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 }); 8033 #else 8034 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 }); 8035 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 }); 8036 #endif 8037 return __rv; 8038 } 8039 8040 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__)) 8041 vzip_u8 (uint8x8_t __a, uint8x8_t __b) 8042 { 8043 uint8x8x2_t __rv; 8044 #ifdef __ARM_BIG_ENDIAN 8045 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 8046 { 12, 4, 13, 5, 14, 6, 15, 7 }); 8047 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 8048 { 8, 0, 9, 1, 10, 2, 11, 3 }); 8049 #else 8050 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 8051 { 0, 8, 1, 9, 2, 10, 3, 11 }); 8052 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 8053 { 4, 12, 5, 13, 6, 14, 7, 15 }); 8054 #endif 8055 return __rv; 8056 } 8057 8058 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__)) 8059 vzip_u16 (uint16x4_t __a, uint16x4_t __b) 8060 { 8061 uint16x4x2_t __rv; 8062 #ifdef __ARM_BIG_ENDIAN 8063 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 }); 8064 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 }); 8065 #else 8066 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 }); 8067 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 }); 8068 #endif 8069 return __rv; 8070 } 8071 8072 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__)) 8073 vzip_p8 (poly8x8_t __a, poly8x8_t __b) 8074 { 8075 poly8x8x2_t __rv; 8076 #ifdef __ARM_BIG_ENDIAN 8077 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 8078 { 12, 4, 13, 5, 14, 6, 15, 7 }); 8079 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 8080 { 8, 0, 9, 1, 10, 2, 11, 3 }); 8081 #else 8082 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 8083 { 0, 8, 1, 9, 2, 10, 3, 11 }); 8084 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 8085 { 4, 12, 5, 13, 6, 14, 7, 15 }); 8086 #endif 8087 return __rv; 8088 } 8089 8090 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__)) 8091 vzip_p16 (poly16x4_t __a, poly16x4_t __b) 8092 { 8093 poly16x4x2_t __rv; 8094 #ifdef __ARM_BIG_ENDIAN 8095 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 6, 2, 7, 3 }); 8096 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 0, 5, 1 }); 8097 #else 8098 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 4, 1, 5 }); 8099 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 2, 6, 3, 7 }); 8100 #endif 8101 return __rv; 8102 } 8103 8104 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__)) 8105 vzip_s32 (int32x2_t __a, int32x2_t __b) 8106 { 8107 int32x2x2_t __rv; 8108 #ifdef __ARM_BIG_ENDIAN 8109 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); 8110 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); 8111 #else 8112 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); 8113 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); 8114 #endif 8115 return __rv; 8116 } 8117 8118 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__)) 8119 vzip_f32 (float32x2_t __a, float32x2_t __b) 8120 { 8121 float32x2x2_t __rv; 8122 #ifdef __ARM_BIG_ENDIAN 8123 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); 8124 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); 8125 #else 8126 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); 8127 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); 8128 #endif 8129 return __rv; 8130 } 8131 8132 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__)) 8133 vzip_u32 (uint32x2_t __a, uint32x2_t __b) 8134 { 8135 uint32x2x2_t __rv; 8136 #ifdef __ARM_BIG_ENDIAN 8137 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); 8138 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); 8139 #else 8140 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); 8141 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); 8142 #endif 8143 return __rv; 8144 } 8145 8146 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__)) 8147 vzipq_s8 (int8x16_t __a, int8x16_t __b) 8148 { 8149 int8x16x2_t __rv; 8150 #ifdef __ARM_BIG_ENDIAN 8151 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 8152 { 24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15 }); 8153 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 8154 { 16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7 }); 8155 #else 8156 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 8157 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 }); 8158 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 8159 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 }); 8160 #endif 8161 return __rv; 8162 } 8163 8164 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__)) 8165 vzipq_s16 (int16x8_t __a, int16x8_t __b) 8166 { 8167 int16x8x2_t __rv; 8168 #ifdef __ARM_BIG_ENDIAN 8169 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 8170 { 12, 4, 13, 5, 14, 6, 15, 7 }); 8171 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 8172 { 8, 0, 9, 1, 10, 2, 11, 3 }); 8173 #else 8174 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 8175 { 0, 8, 1, 9, 2, 10, 3, 11 }); 8176 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 8177 { 4, 12, 5, 13, 6, 14, 7, 15 }); 8178 #endif 8179 return __rv; 8180 } 8181 8182 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__)) 8183 vzipq_s32 (int32x4_t __a, int32x4_t __b) 8184 { 8185 int32x4x2_t __rv; 8186 #ifdef __ARM_BIG_ENDIAN 8187 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 6, 2, 7, 3 }); 8188 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 5, 1 }); 8189 #else 8190 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 }); 8191 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 }); 8192 #endif 8193 return __rv; 8194 } 8195 8196 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__)) 8197 vzipq_f32 (float32x4_t __a, float32x4_t __b) 8198 { 8199 float32x4x2_t __rv; 8200 #ifdef __ARM_BIG_ENDIAN 8201 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 6, 2, 7, 3 }); 8202 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 5, 1 }); 8203 #else 8204 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 }); 8205 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 }); 8206 #endif 8207 return __rv; 8208 } 8209 8210 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__)) 8211 vzipq_u8 (uint8x16_t __a, uint8x16_t __b) 8212 { 8213 uint8x16x2_t __rv; 8214 #ifdef __ARM_BIG_ENDIAN 8215 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 8216 { 24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15 }); 8217 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 8218 { 16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7 }); 8219 #else 8220 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 8221 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 }); 8222 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 8223 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 }); 8224 #endif 8225 return __rv; 8226 } 8227 8228 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__)) 8229 vzipq_u16 (uint16x8_t __a, uint16x8_t __b) 8230 { 8231 uint16x8x2_t __rv; 8232 #ifdef __ARM_BIG_ENDIAN 8233 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 8234 { 12, 4, 13, 5, 14, 6, 15, 7 }); 8235 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 8236 { 8, 0, 9, 1, 10, 2, 11, 3 }); 8237 #else 8238 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 8239 { 0, 8, 1, 9, 2, 10, 3, 11 }); 8240 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 8241 { 4, 12, 5, 13, 6, 14, 7, 15 }); 8242 #endif 8243 return __rv; 8244 } 8245 8246 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__)) 8247 vzipq_u32 (uint32x4_t __a, uint32x4_t __b) 8248 { 8249 uint32x4x2_t __rv; 8250 #ifdef __ARM_BIG_ENDIAN 8251 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 6, 2, 7, 3 }); 8252 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 0, 5, 1 }); 8253 #else 8254 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 4, 1, 5 }); 8255 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 2, 6, 3, 7 }); 8256 #endif 8257 return __rv; 8258 } 8259 8260 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__)) 8261 vzipq_p8 (poly8x16_t __a, poly8x16_t __b) 8262 { 8263 poly8x16x2_t __rv; 8264 #ifdef __ARM_BIG_ENDIAN 8265 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 8266 { 24, 8, 25, 9, 26, 10, 27, 11, 28, 12, 29, 13, 30, 14, 31, 15 }); 8267 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 8268 { 16, 0, 17, 1, 18, 2, 19, 3, 20, 4, 21, 5, 22, 6, 23, 7 }); 8269 #else 8270 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 8271 { 0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23 }); 8272 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 8273 { 8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31 }); 8274 #endif 8275 return __rv; 8276 } 8277 8278 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__)) 8279 vzipq_p16 (poly16x8_t __a, poly16x8_t __b) 8280 { 8281 poly16x8x2_t __rv; 8282 #ifdef __ARM_BIG_ENDIAN 8283 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 8284 { 12, 4, 13, 5, 14, 6, 15, 7 }); 8285 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 8286 { 8, 0, 9, 1, 10, 2, 11, 3 }); 8287 #else 8288 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 8289 { 0, 8, 1, 9, 2, 10, 3, 11 }); 8290 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 8291 { 4, 12, 5, 13, 6, 14, 7, 15 }); 8292 #endif 8293 return __rv; 8294 } 8295 8296 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__)) 8297 vuzp_s8 (int8x8_t __a, int8x8_t __b) 8298 { 8299 int8x8x2_t __rv; 8300 #ifdef __ARM_BIG_ENDIAN 8301 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 8302 { 9, 11, 13, 15, 1, 3, 5, 7 }); 8303 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 8304 { 8, 10, 12, 14, 0, 2, 4, 6 }); 8305 #else 8306 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 8307 { 0, 2, 4, 6, 8, 10, 12, 14 }); 8308 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 8309 { 1, 3, 5, 7, 9, 11, 13, 15 }); 8310 #endif 8311 return __rv; 8312 } 8313 8314 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__)) 8315 vuzp_s16 (int16x4_t __a, int16x4_t __b) 8316 { 8317 int16x4x2_t __rv; 8318 #ifdef __ARM_BIG_ENDIAN 8319 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 }); 8320 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 }); 8321 #else 8322 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 }); 8323 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 }); 8324 #endif 8325 return __rv; 8326 } 8327 8328 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__)) 8329 vuzp_s32 (int32x2_t __a, int32x2_t __b) 8330 { 8331 int32x2x2_t __rv; 8332 #ifdef __ARM_BIG_ENDIAN 8333 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); 8334 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); 8335 #else 8336 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); 8337 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); 8338 #endif 8339 return __rv; 8340 } 8341 8342 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__)) 8343 vuzp_f32 (float32x2_t __a, float32x2_t __b) 8344 { 8345 float32x2x2_t __rv; 8346 #ifdef __ARM_BIG_ENDIAN 8347 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); 8348 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); 8349 #else 8350 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); 8351 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); 8352 #endif 8353 return __rv; 8354 } 8355 8356 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__)) 8357 vuzp_u8 (uint8x8_t __a, uint8x8_t __b) 8358 { 8359 uint8x8x2_t __rv; 8360 #ifdef __ARM_BIG_ENDIAN 8361 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 8362 { 9, 11, 13, 15, 1, 3, 5, 7 }); 8363 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 8364 { 8, 10, 12, 14, 0, 2, 4, 6 }); 8365 #else 8366 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 8367 { 0, 2, 4, 6, 8, 10, 12, 14 }); 8368 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 8369 { 1, 3, 5, 7, 9, 11, 13, 15 }); 8370 #endif 8371 return __rv; 8372 } 8373 8374 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__)) 8375 vuzp_u16 (uint16x4_t __a, uint16x4_t __b) 8376 { 8377 uint16x4x2_t __rv; 8378 #ifdef __ARM_BIG_ENDIAN 8379 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 }); 8380 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 }); 8381 #else 8382 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 }); 8383 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 }); 8384 #endif 8385 return __rv; 8386 } 8387 8388 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__)) 8389 vuzp_u32 (uint32x2_t __a, uint32x2_t __b) 8390 { 8391 uint32x2x2_t __rv; 8392 #ifdef __ARM_BIG_ENDIAN 8393 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 3, 1 }); 8394 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 2, 0 }); 8395 #else 8396 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x2_t) { 0, 2 }); 8397 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x2_t) { 1, 3 }); 8398 #endif 8399 return __rv; 8400 } 8401 8402 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__)) 8403 vuzp_p8 (poly8x8_t __a, poly8x8_t __b) 8404 { 8405 poly8x8x2_t __rv; 8406 #ifdef __ARM_BIG_ENDIAN 8407 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 8408 { 9, 11, 13, 15, 1, 3, 5, 7 }); 8409 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 8410 { 8, 10, 12, 14, 0, 2, 4, 6 }); 8411 #else 8412 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x8_t) 8413 { 0, 2, 4, 6, 8, 10, 12, 14 }); 8414 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x8_t) 8415 { 1, 3, 5, 7, 9, 11, 13, 15 }); 8416 #endif 8417 return __rv; 8418 } 8419 8420 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__)) 8421 vuzp_p16 (poly16x4_t __a, poly16x4_t __b) 8422 { 8423 poly16x4x2_t __rv; 8424 #ifdef __ARM_BIG_ENDIAN 8425 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 5, 7, 1, 3 }); 8426 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 4, 6, 0, 2 }); 8427 #else 8428 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x4_t) { 0, 2, 4, 6 }); 8429 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x4_t) { 1, 3, 5, 7 }); 8430 #endif 8431 return __rv; 8432 } 8433 8434 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__)) 8435 vuzpq_s8 (int8x16_t __a, int8x16_t __b) 8436 { 8437 int8x16x2_t __rv; 8438 #ifdef __ARM_BIG_ENDIAN 8439 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 8440 { 17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15 }); 8441 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 8442 { 16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14 }); 8443 #else 8444 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 8445 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 }); 8446 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 8447 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 }); 8448 #endif 8449 return __rv; 8450 } 8451 8452 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__)) 8453 vuzpq_s16 (int16x8_t __a, int16x8_t __b) 8454 { 8455 int16x8x2_t __rv; 8456 #ifdef __ARM_BIG_ENDIAN 8457 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 8458 { 9, 11, 13, 15, 1, 3, 5, 7 }); 8459 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 8460 { 8, 10, 12, 14, 0, 2, 4, 6 }); 8461 #else 8462 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 8463 { 0, 2, 4, 6, 8, 10, 12, 14 }); 8464 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 8465 { 1, 3, 5, 7, 9, 11, 13, 15 }); 8466 #endif 8467 return __rv; 8468 } 8469 8470 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__)) 8471 vuzpq_s32 (int32x4_t __a, int32x4_t __b) 8472 { 8473 int32x4x2_t __rv; 8474 #ifdef __ARM_BIG_ENDIAN 8475 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 7, 1, 3 }); 8476 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 6, 0, 2 }); 8477 #else 8478 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 }); 8479 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 }); 8480 #endif 8481 return __rv; 8482 } 8483 8484 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__)) 8485 vuzpq_f32 (float32x4_t __a, float32x4_t __b) 8486 { 8487 float32x4x2_t __rv; 8488 #ifdef __ARM_BIG_ENDIAN 8489 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 7, 1, 3 }); 8490 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 6, 0, 2 }); 8491 #else 8492 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 }); 8493 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 }); 8494 #endif 8495 return __rv; 8496 } 8497 8498 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__)) 8499 vuzpq_u8 (uint8x16_t __a, uint8x16_t __b) 8500 { 8501 uint8x16x2_t __rv; 8502 #ifdef __ARM_BIG_ENDIAN 8503 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 8504 { 17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15 }); 8505 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 8506 { 16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14 }); 8507 #else 8508 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 8509 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 }); 8510 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 8511 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 }); 8512 #endif 8513 return __rv; 8514 } 8515 8516 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__)) 8517 vuzpq_u16 (uint16x8_t __a, uint16x8_t __b) 8518 { 8519 uint16x8x2_t __rv; 8520 #ifdef __ARM_BIG_ENDIAN 8521 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 8522 { 9, 11, 13, 15, 1, 3, 5, 7 }); 8523 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 8524 { 8, 10, 12, 14, 0, 2, 4, 6 }); 8525 #else 8526 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 8527 { 0, 2, 4, 6, 8, 10, 12, 14 }); 8528 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 8529 { 1, 3, 5, 7, 9, 11, 13, 15 }); 8530 #endif 8531 return __rv; 8532 } 8533 8534 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__)) 8535 vuzpq_u32 (uint32x4_t __a, uint32x4_t __b) 8536 { 8537 uint32x4x2_t __rv; 8538 #ifdef __ARM_BIG_ENDIAN 8539 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 5, 7, 1, 3 }); 8540 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 4, 6, 0, 2 }); 8541 #else 8542 __rv.val[0] = __builtin_shuffle (__a, __b, (uint32x4_t) { 0, 2, 4, 6 }); 8543 __rv.val[1] = __builtin_shuffle (__a, __b, (uint32x4_t) { 1, 3, 5, 7 }); 8544 #endif 8545 return __rv; 8546 } 8547 8548 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__)) 8549 vuzpq_p8 (poly8x16_t __a, poly8x16_t __b) 8550 { 8551 poly8x16x2_t __rv; 8552 #ifdef __ARM_BIG_ENDIAN 8553 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 8554 { 17, 19, 21, 23, 25, 27, 29, 31, 1, 3, 5, 7, 9, 11, 13, 15 }); 8555 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 8556 { 16, 18, 20, 22, 24, 26, 28, 30, 0, 2, 4, 6, 8, 10, 12, 14 }); 8557 #else 8558 __rv.val[0] = __builtin_shuffle (__a, __b, (uint8x16_t) 8559 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 }); 8560 __rv.val[1] = __builtin_shuffle (__a, __b, (uint8x16_t) 8561 { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 }); 8562 #endif 8563 return __rv; 8564 } 8565 8566 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__)) 8567 vuzpq_p16 (poly16x8_t __a, poly16x8_t __b) 8568 { 8569 poly16x8x2_t __rv; 8570 #ifdef __ARM_BIG_ENDIAN 8571 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 8572 { 9, 11, 13, 15, 1, 3, 5, 7 }); 8573 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 8574 { 8, 10, 12, 14, 0, 2, 4, 6 }); 8575 #else 8576 __rv.val[0] = __builtin_shuffle (__a, __b, (uint16x8_t) 8577 { 0, 2, 4, 6, 8, 10, 12, 14 }); 8578 __rv.val[1] = __builtin_shuffle (__a, __b, (uint16x8_t) 8579 { 1, 3, 5, 7, 9, 11, 13, 15 }); 8580 #endif 8581 return __rv; 8582 } 8583 8584 #ifdef __ARM_FEATURE_CRYPTO 8585 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 8586 vld1_p64 (const poly64_t * __a) 8587 { 8588 return (poly64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a); 8589 } 8590 8591 #endif 8592 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 8593 vld1_s8 (const int8_t * __a) 8594 { 8595 return (int8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a); 8596 } 8597 8598 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 8599 vld1_s16 (const int16_t * __a) 8600 { 8601 return (int16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a); 8602 } 8603 8604 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 8605 vld1_s32 (const int32_t * __a) 8606 { 8607 return (int32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a); 8608 } 8609 8610 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 8611 vld1_s64 (const int64_t * __a) 8612 { 8613 return (int64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a); 8614 } 8615 8616 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 8617 vld1_f32 (const float32_t * __a) 8618 { 8619 return (float32x2_t)__builtin_neon_vld1v2sf ((const __builtin_neon_sf *) __a); 8620 } 8621 8622 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 8623 vld1_u8 (const uint8_t * __a) 8624 { 8625 return (uint8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a); 8626 } 8627 8628 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 8629 vld1_u16 (const uint16_t * __a) 8630 { 8631 return (uint16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a); 8632 } 8633 8634 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 8635 vld1_u32 (const uint32_t * __a) 8636 { 8637 return (uint32x2_t)__builtin_neon_vld1v2si ((const __builtin_neon_si *) __a); 8638 } 8639 8640 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 8641 vld1_u64 (const uint64_t * __a) 8642 { 8643 return (uint64x1_t)__builtin_neon_vld1di ((const __builtin_neon_di *) __a); 8644 } 8645 8646 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 8647 vld1_p8 (const poly8_t * __a) 8648 { 8649 return (poly8x8_t)__builtin_neon_vld1v8qi ((const __builtin_neon_qi *) __a); 8650 } 8651 8652 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 8653 vld1_p16 (const poly16_t * __a) 8654 { 8655 return (poly16x4_t)__builtin_neon_vld1v4hi ((const __builtin_neon_hi *) __a); 8656 } 8657 8658 #ifdef __ARM_FEATURE_CRYPTO 8659 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 8660 vld1q_p64 (const poly64_t * __a) 8661 { 8662 return (poly64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a); 8663 } 8664 8665 #endif 8666 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 8667 vld1q_s8 (const int8_t * __a) 8668 { 8669 return (int8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a); 8670 } 8671 8672 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 8673 vld1q_s16 (const int16_t * __a) 8674 { 8675 return (int16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a); 8676 } 8677 8678 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 8679 vld1q_s32 (const int32_t * __a) 8680 { 8681 return (int32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a); 8682 } 8683 8684 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 8685 vld1q_s64 (const int64_t * __a) 8686 { 8687 return (int64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a); 8688 } 8689 8690 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 8691 vld1q_f32 (const float32_t * __a) 8692 { 8693 return (float32x4_t)__builtin_neon_vld1v4sf ((const __builtin_neon_sf *) __a); 8694 } 8695 8696 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 8697 vld1q_u8 (const uint8_t * __a) 8698 { 8699 return (uint8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a); 8700 } 8701 8702 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 8703 vld1q_u16 (const uint16_t * __a) 8704 { 8705 return (uint16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a); 8706 } 8707 8708 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 8709 vld1q_u32 (const uint32_t * __a) 8710 { 8711 return (uint32x4_t)__builtin_neon_vld1v4si ((const __builtin_neon_si *) __a); 8712 } 8713 8714 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 8715 vld1q_u64 (const uint64_t * __a) 8716 { 8717 return (uint64x2_t)__builtin_neon_vld1v2di ((const __builtin_neon_di *) __a); 8718 } 8719 8720 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 8721 vld1q_p8 (const poly8_t * __a) 8722 { 8723 return (poly8x16_t)__builtin_neon_vld1v16qi ((const __builtin_neon_qi *) __a); 8724 } 8725 8726 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 8727 vld1q_p16 (const poly16_t * __a) 8728 { 8729 return (poly16x8_t)__builtin_neon_vld1v8hi ((const __builtin_neon_hi *) __a); 8730 } 8731 8732 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 8733 vld1_lane_s8 (const int8_t * __a, int8x8_t __b, const int __c) 8734 { 8735 return (int8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, __b, __c); 8736 } 8737 8738 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 8739 vld1_lane_s16 (const int16_t * __a, int16x4_t __b, const int __c) 8740 { 8741 return (int16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, __b, __c); 8742 } 8743 8744 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 8745 vld1_lane_s32 (const int32_t * __a, int32x2_t __b, const int __c) 8746 { 8747 return (int32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, __b, __c); 8748 } 8749 8750 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 8751 vld1_lane_f32 (const float32_t * __a, float32x2_t __b, const int __c) 8752 { 8753 return (float32x2_t)__builtin_neon_vld1_lanev2sf ((const __builtin_neon_sf *) __a, __b, __c); 8754 } 8755 8756 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 8757 vld1_lane_u8 (const uint8_t * __a, uint8x8_t __b, const int __c) 8758 { 8759 return (uint8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c); 8760 } 8761 8762 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 8763 vld1_lane_u16 (const uint16_t * __a, uint16x4_t __b, const int __c) 8764 { 8765 return (uint16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c); 8766 } 8767 8768 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 8769 vld1_lane_u32 (const uint32_t * __a, uint32x2_t __b, const int __c) 8770 { 8771 return (uint32x2_t)__builtin_neon_vld1_lanev2si ((const __builtin_neon_si *) __a, (int32x2_t) __b, __c); 8772 } 8773 8774 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 8775 vld1_lane_p8 (const poly8_t * __a, poly8x8_t __b, const int __c) 8776 { 8777 return (poly8x8_t)__builtin_neon_vld1_lanev8qi ((const __builtin_neon_qi *) __a, (int8x8_t) __b, __c); 8778 } 8779 8780 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 8781 vld1_lane_p16 (const poly16_t * __a, poly16x4_t __b, const int __c) 8782 { 8783 return (poly16x4_t)__builtin_neon_vld1_lanev4hi ((const __builtin_neon_hi *) __a, (int16x4_t) __b, __c); 8784 } 8785 8786 #ifdef __ARM_FEATURE_CRYPTO 8787 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 8788 vld1_lane_p64 (const poly64_t * __a, poly64x1_t __b, const int __c) 8789 { 8790 return (poly64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c); 8791 } 8792 8793 #endif 8794 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 8795 vld1_lane_s64 (const int64_t * __a, int64x1_t __b, const int __c) 8796 { 8797 return (int64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, __b, __c); 8798 } 8799 8800 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 8801 vld1_lane_u64 (const uint64_t * __a, uint64x1_t __b, const int __c) 8802 { 8803 return (uint64x1_t)__builtin_neon_vld1_lanedi ((const __builtin_neon_di *) __a, (int64x1_t) __b, __c); 8804 } 8805 8806 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 8807 vld1q_lane_s8 (const int8_t * __a, int8x16_t __b, const int __c) 8808 { 8809 return (int8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, __b, __c); 8810 } 8811 8812 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 8813 vld1q_lane_s16 (const int16_t * __a, int16x8_t __b, const int __c) 8814 { 8815 return (int16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, __b, __c); 8816 } 8817 8818 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 8819 vld1q_lane_s32 (const int32_t * __a, int32x4_t __b, const int __c) 8820 { 8821 return (int32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, __b, __c); 8822 } 8823 8824 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 8825 vld1q_lane_f32 (const float32_t * __a, float32x4_t __b, const int __c) 8826 { 8827 return (float32x4_t)__builtin_neon_vld1_lanev4sf ((const __builtin_neon_sf *) __a, __b, __c); 8828 } 8829 8830 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 8831 vld1q_lane_u8 (const uint8_t * __a, uint8x16_t __b, const int __c) 8832 { 8833 return (uint8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c); 8834 } 8835 8836 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 8837 vld1q_lane_u16 (const uint16_t * __a, uint16x8_t __b, const int __c) 8838 { 8839 return (uint16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c); 8840 } 8841 8842 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 8843 vld1q_lane_u32 (const uint32_t * __a, uint32x4_t __b, const int __c) 8844 { 8845 return (uint32x4_t)__builtin_neon_vld1_lanev4si ((const __builtin_neon_si *) __a, (int32x4_t) __b, __c); 8846 } 8847 8848 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 8849 vld1q_lane_p8 (const poly8_t * __a, poly8x16_t __b, const int __c) 8850 { 8851 return (poly8x16_t)__builtin_neon_vld1_lanev16qi ((const __builtin_neon_qi *) __a, (int8x16_t) __b, __c); 8852 } 8853 8854 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 8855 vld1q_lane_p16 (const poly16_t * __a, poly16x8_t __b, const int __c) 8856 { 8857 return (poly16x8_t)__builtin_neon_vld1_lanev8hi ((const __builtin_neon_hi *) __a, (int16x8_t) __b, __c); 8858 } 8859 8860 #ifdef __ARM_FEATURE_CRYPTO 8861 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 8862 vld1q_lane_p64 (const poly64_t * __a, poly64x2_t __b, const int __c) 8863 { 8864 return (poly64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c); 8865 } 8866 8867 #endif 8868 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 8869 vld1q_lane_s64 (const int64_t * __a, int64x2_t __b, const int __c) 8870 { 8871 return (int64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, __b, __c); 8872 } 8873 8874 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 8875 vld1q_lane_u64 (const uint64_t * __a, uint64x2_t __b, const int __c) 8876 { 8877 return (uint64x2_t)__builtin_neon_vld1_lanev2di ((const __builtin_neon_di *) __a, (int64x2_t) __b, __c); 8878 } 8879 8880 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 8881 vld1_dup_s8 (const int8_t * __a) 8882 { 8883 return (int8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a); 8884 } 8885 8886 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 8887 vld1_dup_s16 (const int16_t * __a) 8888 { 8889 return (int16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a); 8890 } 8891 8892 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 8893 vld1_dup_s32 (const int32_t * __a) 8894 { 8895 return (int32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a); 8896 } 8897 8898 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 8899 vld1_dup_f32 (const float32_t * __a) 8900 { 8901 return (float32x2_t)__builtin_neon_vld1_dupv2sf ((const __builtin_neon_sf *) __a); 8902 } 8903 8904 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 8905 vld1_dup_u8 (const uint8_t * __a) 8906 { 8907 return (uint8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a); 8908 } 8909 8910 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 8911 vld1_dup_u16 (const uint16_t * __a) 8912 { 8913 return (uint16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a); 8914 } 8915 8916 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 8917 vld1_dup_u32 (const uint32_t * __a) 8918 { 8919 return (uint32x2_t)__builtin_neon_vld1_dupv2si ((const __builtin_neon_si *) __a); 8920 } 8921 8922 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 8923 vld1_dup_p8 (const poly8_t * __a) 8924 { 8925 return (poly8x8_t)__builtin_neon_vld1_dupv8qi ((const __builtin_neon_qi *) __a); 8926 } 8927 8928 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 8929 vld1_dup_p16 (const poly16_t * __a) 8930 { 8931 return (poly16x4_t)__builtin_neon_vld1_dupv4hi ((const __builtin_neon_hi *) __a); 8932 } 8933 8934 #ifdef __ARM_FEATURE_CRYPTO 8935 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 8936 vld1_dup_p64 (const poly64_t * __a) 8937 { 8938 return (poly64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a); 8939 } 8940 8941 #endif 8942 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 8943 vld1_dup_s64 (const int64_t * __a) 8944 { 8945 return (int64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a); 8946 } 8947 8948 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 8949 vld1_dup_u64 (const uint64_t * __a) 8950 { 8951 return (uint64x1_t)__builtin_neon_vld1_dupdi ((const __builtin_neon_di *) __a); 8952 } 8953 8954 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 8955 vld1q_dup_s8 (const int8_t * __a) 8956 { 8957 return (int8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a); 8958 } 8959 8960 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 8961 vld1q_dup_s16 (const int16_t * __a) 8962 { 8963 return (int16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a); 8964 } 8965 8966 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 8967 vld1q_dup_s32 (const int32_t * __a) 8968 { 8969 return (int32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a); 8970 } 8971 8972 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 8973 vld1q_dup_f32 (const float32_t * __a) 8974 { 8975 return (float32x4_t)__builtin_neon_vld1_dupv4sf ((const __builtin_neon_sf *) __a); 8976 } 8977 8978 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 8979 vld1q_dup_u8 (const uint8_t * __a) 8980 { 8981 return (uint8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a); 8982 } 8983 8984 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 8985 vld1q_dup_u16 (const uint16_t * __a) 8986 { 8987 return (uint16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a); 8988 } 8989 8990 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 8991 vld1q_dup_u32 (const uint32_t * __a) 8992 { 8993 return (uint32x4_t)__builtin_neon_vld1_dupv4si ((const __builtin_neon_si *) __a); 8994 } 8995 8996 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 8997 vld1q_dup_p8 (const poly8_t * __a) 8998 { 8999 return (poly8x16_t)__builtin_neon_vld1_dupv16qi ((const __builtin_neon_qi *) __a); 9000 } 9001 9002 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 9003 vld1q_dup_p16 (const poly16_t * __a) 9004 { 9005 return (poly16x8_t)__builtin_neon_vld1_dupv8hi ((const __builtin_neon_hi *) __a); 9006 } 9007 9008 #ifdef __ARM_FEATURE_CRYPTO 9009 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 9010 vld1q_dup_p64 (const poly64_t * __a) 9011 { 9012 return (poly64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a); 9013 } 9014 9015 #endif 9016 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 9017 vld1q_dup_s64 (const int64_t * __a) 9018 { 9019 return (int64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a); 9020 } 9021 9022 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 9023 vld1q_dup_u64 (const uint64_t * __a) 9024 { 9025 return (uint64x2_t)__builtin_neon_vld1_dupv2di ((const __builtin_neon_di *) __a); 9026 } 9027 9028 #ifdef __ARM_FEATURE_CRYPTO 9029 __extension__ static __inline void __attribute__ ((__always_inline__)) 9030 vst1_p64 (poly64_t * __a, poly64x1_t __b) 9031 { 9032 __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b); 9033 } 9034 9035 #endif 9036 __extension__ static __inline void __attribute__ ((__always_inline__)) 9037 vst1_s8 (int8_t * __a, int8x8_t __b) 9038 { 9039 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, __b); 9040 } 9041 9042 __extension__ static __inline void __attribute__ ((__always_inline__)) 9043 vst1_s16 (int16_t * __a, int16x4_t __b) 9044 { 9045 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, __b); 9046 } 9047 9048 __extension__ static __inline void __attribute__ ((__always_inline__)) 9049 vst1_s32 (int32_t * __a, int32x2_t __b) 9050 { 9051 __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, __b); 9052 } 9053 9054 __extension__ static __inline void __attribute__ ((__always_inline__)) 9055 vst1_s64 (int64_t * __a, int64x1_t __b) 9056 { 9057 __builtin_neon_vst1di ((__builtin_neon_di *) __a, __b); 9058 } 9059 9060 __extension__ static __inline void __attribute__ ((__always_inline__)) 9061 vst1_f32 (float32_t * __a, float32x2_t __b) 9062 { 9063 __builtin_neon_vst1v2sf ((__builtin_neon_sf *) __a, __b); 9064 } 9065 9066 __extension__ static __inline void __attribute__ ((__always_inline__)) 9067 vst1_u8 (uint8_t * __a, uint8x8_t __b) 9068 { 9069 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b); 9070 } 9071 9072 __extension__ static __inline void __attribute__ ((__always_inline__)) 9073 vst1_u16 (uint16_t * __a, uint16x4_t __b) 9074 { 9075 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b); 9076 } 9077 9078 __extension__ static __inline void __attribute__ ((__always_inline__)) 9079 vst1_u32 (uint32_t * __a, uint32x2_t __b) 9080 { 9081 __builtin_neon_vst1v2si ((__builtin_neon_si *) __a, (int32x2_t) __b); 9082 } 9083 9084 __extension__ static __inline void __attribute__ ((__always_inline__)) 9085 vst1_u64 (uint64_t * __a, uint64x1_t __b) 9086 { 9087 __builtin_neon_vst1di ((__builtin_neon_di *) __a, (int64x1_t) __b); 9088 } 9089 9090 __extension__ static __inline void __attribute__ ((__always_inline__)) 9091 vst1_p8 (poly8_t * __a, poly8x8_t __b) 9092 { 9093 __builtin_neon_vst1v8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b); 9094 } 9095 9096 __extension__ static __inline void __attribute__ ((__always_inline__)) 9097 vst1_p16 (poly16_t * __a, poly16x4_t __b) 9098 { 9099 __builtin_neon_vst1v4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b); 9100 } 9101 9102 #ifdef __ARM_FEATURE_CRYPTO 9103 __extension__ static __inline void __attribute__ ((__always_inline__)) 9104 vst1q_p64 (poly64_t * __a, poly64x2_t __b) 9105 { 9106 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b); 9107 } 9108 9109 #endif 9110 __extension__ static __inline void __attribute__ ((__always_inline__)) 9111 vst1q_s8 (int8_t * __a, int8x16_t __b) 9112 { 9113 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, __b); 9114 } 9115 9116 __extension__ static __inline void __attribute__ ((__always_inline__)) 9117 vst1q_s16 (int16_t * __a, int16x8_t __b) 9118 { 9119 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, __b); 9120 } 9121 9122 __extension__ static __inline void __attribute__ ((__always_inline__)) 9123 vst1q_s32 (int32_t * __a, int32x4_t __b) 9124 { 9125 __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, __b); 9126 } 9127 9128 __extension__ static __inline void __attribute__ ((__always_inline__)) 9129 vst1q_s64 (int64_t * __a, int64x2_t __b) 9130 { 9131 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, __b); 9132 } 9133 9134 __extension__ static __inline void __attribute__ ((__always_inline__)) 9135 vst1q_f32 (float32_t * __a, float32x4_t __b) 9136 { 9137 __builtin_neon_vst1v4sf ((__builtin_neon_sf *) __a, __b); 9138 } 9139 9140 __extension__ static __inline void __attribute__ ((__always_inline__)) 9141 vst1q_u8 (uint8_t * __a, uint8x16_t __b) 9142 { 9143 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b); 9144 } 9145 9146 __extension__ static __inline void __attribute__ ((__always_inline__)) 9147 vst1q_u16 (uint16_t * __a, uint16x8_t __b) 9148 { 9149 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b); 9150 } 9151 9152 __extension__ static __inline void __attribute__ ((__always_inline__)) 9153 vst1q_u32 (uint32_t * __a, uint32x4_t __b) 9154 { 9155 __builtin_neon_vst1v4si ((__builtin_neon_si *) __a, (int32x4_t) __b); 9156 } 9157 9158 __extension__ static __inline void __attribute__ ((__always_inline__)) 9159 vst1q_u64 (uint64_t * __a, uint64x2_t __b) 9160 { 9161 __builtin_neon_vst1v2di ((__builtin_neon_di *) __a, (int64x2_t) __b); 9162 } 9163 9164 __extension__ static __inline void __attribute__ ((__always_inline__)) 9165 vst1q_p8 (poly8_t * __a, poly8x16_t __b) 9166 { 9167 __builtin_neon_vst1v16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b); 9168 } 9169 9170 __extension__ static __inline void __attribute__ ((__always_inline__)) 9171 vst1q_p16 (poly16_t * __a, poly16x8_t __b) 9172 { 9173 __builtin_neon_vst1v8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b); 9174 } 9175 9176 __extension__ static __inline void __attribute__ ((__always_inline__)) 9177 vst1_lane_s8 (int8_t * __a, int8x8_t __b, const int __c) 9178 { 9179 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, __b, __c); 9180 } 9181 9182 __extension__ static __inline void __attribute__ ((__always_inline__)) 9183 vst1_lane_s16 (int16_t * __a, int16x4_t __b, const int __c) 9184 { 9185 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, __b, __c); 9186 } 9187 9188 __extension__ static __inline void __attribute__ ((__always_inline__)) 9189 vst1_lane_s32 (int32_t * __a, int32x2_t __b, const int __c) 9190 { 9191 __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, __b, __c); 9192 } 9193 9194 __extension__ static __inline void __attribute__ ((__always_inline__)) 9195 vst1_lane_f32 (float32_t * __a, float32x2_t __b, const int __c) 9196 { 9197 __builtin_neon_vst1_lanev2sf ((__builtin_neon_sf *) __a, __b, __c); 9198 } 9199 9200 __extension__ static __inline void __attribute__ ((__always_inline__)) 9201 vst1_lane_u8 (uint8_t * __a, uint8x8_t __b, const int __c) 9202 { 9203 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c); 9204 } 9205 9206 __extension__ static __inline void __attribute__ ((__always_inline__)) 9207 vst1_lane_u16 (uint16_t * __a, uint16x4_t __b, const int __c) 9208 { 9209 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c); 9210 } 9211 9212 __extension__ static __inline void __attribute__ ((__always_inline__)) 9213 vst1_lane_u32 (uint32_t * __a, uint32x2_t __b, const int __c) 9214 { 9215 __builtin_neon_vst1_lanev2si ((__builtin_neon_si *) __a, (int32x2_t) __b, __c); 9216 } 9217 9218 __extension__ static __inline void __attribute__ ((__always_inline__)) 9219 vst1_lane_p8 (poly8_t * __a, poly8x8_t __b, const int __c) 9220 { 9221 __builtin_neon_vst1_lanev8qi ((__builtin_neon_qi *) __a, (int8x8_t) __b, __c); 9222 } 9223 9224 __extension__ static __inline void __attribute__ ((__always_inline__)) 9225 vst1_lane_p16 (poly16_t * __a, poly16x4_t __b, const int __c) 9226 { 9227 __builtin_neon_vst1_lanev4hi ((__builtin_neon_hi *) __a, (int16x4_t) __b, __c); 9228 } 9229 9230 #ifdef __ARM_FEATURE_CRYPTO 9231 __extension__ static __inline void __attribute__ ((__always_inline__)) 9232 vst1_lane_p64 (poly64_t * __a, poly64x1_t __b, const int __c) 9233 { 9234 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c); 9235 } 9236 9237 #endif 9238 __extension__ static __inline void __attribute__ ((__always_inline__)) 9239 vst1_lane_s64 (int64_t * __a, int64x1_t __b, const int __c) 9240 { 9241 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, __b, __c); 9242 } 9243 9244 __extension__ static __inline void __attribute__ ((__always_inline__)) 9245 vst1_lane_u64 (uint64_t * __a, uint64x1_t __b, const int __c) 9246 { 9247 __builtin_neon_vst1_lanedi ((__builtin_neon_di *) __a, (int64x1_t) __b, __c); 9248 } 9249 9250 __extension__ static __inline void __attribute__ ((__always_inline__)) 9251 vst1q_lane_s8 (int8_t * __a, int8x16_t __b, const int __c) 9252 { 9253 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, __b, __c); 9254 } 9255 9256 __extension__ static __inline void __attribute__ ((__always_inline__)) 9257 vst1q_lane_s16 (int16_t * __a, int16x8_t __b, const int __c) 9258 { 9259 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, __b, __c); 9260 } 9261 9262 __extension__ static __inline void __attribute__ ((__always_inline__)) 9263 vst1q_lane_s32 (int32_t * __a, int32x4_t __b, const int __c) 9264 { 9265 __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, __b, __c); 9266 } 9267 9268 __extension__ static __inline void __attribute__ ((__always_inline__)) 9269 vst1q_lane_f32 (float32_t * __a, float32x4_t __b, const int __c) 9270 { 9271 __builtin_neon_vst1_lanev4sf ((__builtin_neon_sf *) __a, __b, __c); 9272 } 9273 9274 __extension__ static __inline void __attribute__ ((__always_inline__)) 9275 vst1q_lane_u8 (uint8_t * __a, uint8x16_t __b, const int __c) 9276 { 9277 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c); 9278 } 9279 9280 __extension__ static __inline void __attribute__ ((__always_inline__)) 9281 vst1q_lane_u16 (uint16_t * __a, uint16x8_t __b, const int __c) 9282 { 9283 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c); 9284 } 9285 9286 __extension__ static __inline void __attribute__ ((__always_inline__)) 9287 vst1q_lane_u32 (uint32_t * __a, uint32x4_t __b, const int __c) 9288 { 9289 __builtin_neon_vst1_lanev4si ((__builtin_neon_si *) __a, (int32x4_t) __b, __c); 9290 } 9291 9292 __extension__ static __inline void __attribute__ ((__always_inline__)) 9293 vst1q_lane_p8 (poly8_t * __a, poly8x16_t __b, const int __c) 9294 { 9295 __builtin_neon_vst1_lanev16qi ((__builtin_neon_qi *) __a, (int8x16_t) __b, __c); 9296 } 9297 9298 __extension__ static __inline void __attribute__ ((__always_inline__)) 9299 vst1q_lane_p16 (poly16_t * __a, poly16x8_t __b, const int __c) 9300 { 9301 __builtin_neon_vst1_lanev8hi ((__builtin_neon_hi *) __a, (int16x8_t) __b, __c); 9302 } 9303 9304 #ifdef __ARM_FEATURE_CRYPTO 9305 __extension__ static __inline void __attribute__ ((__always_inline__)) 9306 vst1q_lane_p64 (poly64_t * __a, poly64x2_t __b, const int __c) 9307 { 9308 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c); 9309 } 9310 9311 #endif 9312 __extension__ static __inline void __attribute__ ((__always_inline__)) 9313 vst1q_lane_s64 (int64_t * __a, int64x2_t __b, const int __c) 9314 { 9315 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, __b, __c); 9316 } 9317 9318 __extension__ static __inline void __attribute__ ((__always_inline__)) 9319 vst1q_lane_u64 (uint64_t * __a, uint64x2_t __b, const int __c) 9320 { 9321 __builtin_neon_vst1_lanev2di ((__builtin_neon_di *) __a, (int64x2_t) __b, __c); 9322 } 9323 9324 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__)) 9325 vld2_s8 (const int8_t * __a) 9326 { 9327 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv; 9328 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a); 9329 return __rv.__i; 9330 } 9331 9332 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__)) 9333 vld2_s16 (const int16_t * __a) 9334 { 9335 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv; 9336 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a); 9337 return __rv.__i; 9338 } 9339 9340 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__)) 9341 vld2_s32 (const int32_t * __a) 9342 { 9343 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv; 9344 __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a); 9345 return __rv.__i; 9346 } 9347 9348 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__)) 9349 vld2_f32 (const float32_t * __a) 9350 { 9351 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv; 9352 __rv.__o = __builtin_neon_vld2v2sf ((const __builtin_neon_sf *) __a); 9353 return __rv.__i; 9354 } 9355 9356 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__)) 9357 vld2_u8 (const uint8_t * __a) 9358 { 9359 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv; 9360 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a); 9361 return __rv.__i; 9362 } 9363 9364 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__)) 9365 vld2_u16 (const uint16_t * __a) 9366 { 9367 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv; 9368 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a); 9369 return __rv.__i; 9370 } 9371 9372 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__)) 9373 vld2_u32 (const uint32_t * __a) 9374 { 9375 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv; 9376 __rv.__o = __builtin_neon_vld2v2si ((const __builtin_neon_si *) __a); 9377 return __rv.__i; 9378 } 9379 9380 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__)) 9381 vld2_p8 (const poly8_t * __a) 9382 { 9383 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv; 9384 __rv.__o = __builtin_neon_vld2v8qi ((const __builtin_neon_qi *) __a); 9385 return __rv.__i; 9386 } 9387 9388 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__)) 9389 vld2_p16 (const poly16_t * __a) 9390 { 9391 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv; 9392 __rv.__o = __builtin_neon_vld2v4hi ((const __builtin_neon_hi *) __a); 9393 return __rv.__i; 9394 } 9395 9396 #ifdef __ARM_FEATURE_CRYPTO 9397 __extension__ static __inline poly64x1x2_t __attribute__ ((__always_inline__)) 9398 vld2_p64 (const poly64_t * __a) 9399 { 9400 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv; 9401 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a); 9402 return __rv.__i; 9403 } 9404 9405 #endif 9406 __extension__ static __inline int64x1x2_t __attribute__ ((__always_inline__)) 9407 vld2_s64 (const int64_t * __a) 9408 { 9409 union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv; 9410 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a); 9411 return __rv.__i; 9412 } 9413 9414 __extension__ static __inline uint64x1x2_t __attribute__ ((__always_inline__)) 9415 vld2_u64 (const uint64_t * __a) 9416 { 9417 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv; 9418 __rv.__o = __builtin_neon_vld2di ((const __builtin_neon_di *) __a); 9419 return __rv.__i; 9420 } 9421 9422 __extension__ static __inline int8x16x2_t __attribute__ ((__always_inline__)) 9423 vld2q_s8 (const int8_t * __a) 9424 { 9425 union { int8x16x2_t __i; __builtin_neon_oi __o; } __rv; 9426 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a); 9427 return __rv.__i; 9428 } 9429 9430 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__)) 9431 vld2q_s16 (const int16_t * __a) 9432 { 9433 union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv; 9434 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a); 9435 return __rv.__i; 9436 } 9437 9438 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__)) 9439 vld2q_s32 (const int32_t * __a) 9440 { 9441 union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv; 9442 __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a); 9443 return __rv.__i; 9444 } 9445 9446 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__)) 9447 vld2q_f32 (const float32_t * __a) 9448 { 9449 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv; 9450 __rv.__o = __builtin_neon_vld2v4sf ((const __builtin_neon_sf *) __a); 9451 return __rv.__i; 9452 } 9453 9454 __extension__ static __inline uint8x16x2_t __attribute__ ((__always_inline__)) 9455 vld2q_u8 (const uint8_t * __a) 9456 { 9457 union { uint8x16x2_t __i; __builtin_neon_oi __o; } __rv; 9458 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a); 9459 return __rv.__i; 9460 } 9461 9462 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__)) 9463 vld2q_u16 (const uint16_t * __a) 9464 { 9465 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv; 9466 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a); 9467 return __rv.__i; 9468 } 9469 9470 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__)) 9471 vld2q_u32 (const uint32_t * __a) 9472 { 9473 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv; 9474 __rv.__o = __builtin_neon_vld2v4si ((const __builtin_neon_si *) __a); 9475 return __rv.__i; 9476 } 9477 9478 __extension__ static __inline poly8x16x2_t __attribute__ ((__always_inline__)) 9479 vld2q_p8 (const poly8_t * __a) 9480 { 9481 union { poly8x16x2_t __i; __builtin_neon_oi __o; } __rv; 9482 __rv.__o = __builtin_neon_vld2v16qi ((const __builtin_neon_qi *) __a); 9483 return __rv.__i; 9484 } 9485 9486 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__)) 9487 vld2q_p16 (const poly16_t * __a) 9488 { 9489 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv; 9490 __rv.__o = __builtin_neon_vld2v8hi ((const __builtin_neon_hi *) __a); 9491 return __rv.__i; 9492 } 9493 9494 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__)) 9495 vld2_lane_s8 (const int8_t * __a, int8x8x2_t __b, const int __c) 9496 { 9497 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9498 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv; 9499 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c); 9500 return __rv.__i; 9501 } 9502 9503 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__)) 9504 vld2_lane_s16 (const int16_t * __a, int16x4x2_t __b, const int __c) 9505 { 9506 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9507 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv; 9508 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 9509 return __rv.__i; 9510 } 9511 9512 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__)) 9513 vld2_lane_s32 (const int32_t * __a, int32x2x2_t __b, const int __c) 9514 { 9515 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9516 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv; 9517 __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c); 9518 return __rv.__i; 9519 } 9520 9521 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__)) 9522 vld2_lane_f32 (const float32_t * __a, float32x2x2_t __b, const int __c) 9523 { 9524 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9525 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv; 9526 __rv.__o = __builtin_neon_vld2_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c); 9527 return __rv.__i; 9528 } 9529 9530 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__)) 9531 vld2_lane_u8 (const uint8_t * __a, uint8x8x2_t __b, const int __c) 9532 { 9533 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9534 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv; 9535 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c); 9536 return __rv.__i; 9537 } 9538 9539 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__)) 9540 vld2_lane_u16 (const uint16_t * __a, uint16x4x2_t __b, const int __c) 9541 { 9542 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9543 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv; 9544 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 9545 return __rv.__i; 9546 } 9547 9548 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__)) 9549 vld2_lane_u32 (const uint32_t * __a, uint32x2x2_t __b, const int __c) 9550 { 9551 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9552 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv; 9553 __rv.__o = __builtin_neon_vld2_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c); 9554 return __rv.__i; 9555 } 9556 9557 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__)) 9558 vld2_lane_p8 (const poly8_t * __a, poly8x8x2_t __b, const int __c) 9559 { 9560 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9561 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv; 9562 __rv.__o = __builtin_neon_vld2_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c); 9563 return __rv.__i; 9564 } 9565 9566 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__)) 9567 vld2_lane_p16 (const poly16_t * __a, poly16x4x2_t __b, const int __c) 9568 { 9569 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9570 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv; 9571 __rv.__o = __builtin_neon_vld2_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 9572 return __rv.__i; 9573 } 9574 9575 __extension__ static __inline int16x8x2_t __attribute__ ((__always_inline__)) 9576 vld2q_lane_s16 (const int16_t * __a, int16x8x2_t __b, const int __c) 9577 { 9578 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9579 union { int16x8x2_t __i; __builtin_neon_oi __o; } __rv; 9580 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 9581 return __rv.__i; 9582 } 9583 9584 __extension__ static __inline int32x4x2_t __attribute__ ((__always_inline__)) 9585 vld2q_lane_s32 (const int32_t * __a, int32x4x2_t __b, const int __c) 9586 { 9587 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9588 union { int32x4x2_t __i; __builtin_neon_oi __o; } __rv; 9589 __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c); 9590 return __rv.__i; 9591 } 9592 9593 __extension__ static __inline float32x4x2_t __attribute__ ((__always_inline__)) 9594 vld2q_lane_f32 (const float32_t * __a, float32x4x2_t __b, const int __c) 9595 { 9596 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9597 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv; 9598 __rv.__o = __builtin_neon_vld2_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c); 9599 return __rv.__i; 9600 } 9601 9602 __extension__ static __inline uint16x8x2_t __attribute__ ((__always_inline__)) 9603 vld2q_lane_u16 (const uint16_t * __a, uint16x8x2_t __b, const int __c) 9604 { 9605 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9606 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __rv; 9607 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 9608 return __rv.__i; 9609 } 9610 9611 __extension__ static __inline uint32x4x2_t __attribute__ ((__always_inline__)) 9612 vld2q_lane_u32 (const uint32_t * __a, uint32x4x2_t __b, const int __c) 9613 { 9614 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9615 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __rv; 9616 __rv.__o = __builtin_neon_vld2_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c); 9617 return __rv.__i; 9618 } 9619 9620 __extension__ static __inline poly16x8x2_t __attribute__ ((__always_inline__)) 9621 vld2q_lane_p16 (const poly16_t * __a, poly16x8x2_t __b, const int __c) 9622 { 9623 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9624 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __rv; 9625 __rv.__o = __builtin_neon_vld2_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 9626 return __rv.__i; 9627 } 9628 9629 __extension__ static __inline int8x8x2_t __attribute__ ((__always_inline__)) 9630 vld2_dup_s8 (const int8_t * __a) 9631 { 9632 union { int8x8x2_t __i; __builtin_neon_ti __o; } __rv; 9633 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a); 9634 return __rv.__i; 9635 } 9636 9637 __extension__ static __inline int16x4x2_t __attribute__ ((__always_inline__)) 9638 vld2_dup_s16 (const int16_t * __a) 9639 { 9640 union { int16x4x2_t __i; __builtin_neon_ti __o; } __rv; 9641 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a); 9642 return __rv.__i; 9643 } 9644 9645 __extension__ static __inline int32x2x2_t __attribute__ ((__always_inline__)) 9646 vld2_dup_s32 (const int32_t * __a) 9647 { 9648 union { int32x2x2_t __i; __builtin_neon_ti __o; } __rv; 9649 __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a); 9650 return __rv.__i; 9651 } 9652 9653 __extension__ static __inline float32x2x2_t __attribute__ ((__always_inline__)) 9654 vld2_dup_f32 (const float32_t * __a) 9655 { 9656 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv; 9657 __rv.__o = __builtin_neon_vld2_dupv2sf ((const __builtin_neon_sf *) __a); 9658 return __rv.__i; 9659 } 9660 9661 __extension__ static __inline uint8x8x2_t __attribute__ ((__always_inline__)) 9662 vld2_dup_u8 (const uint8_t * __a) 9663 { 9664 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __rv; 9665 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a); 9666 return __rv.__i; 9667 } 9668 9669 __extension__ static __inline uint16x4x2_t __attribute__ ((__always_inline__)) 9670 vld2_dup_u16 (const uint16_t * __a) 9671 { 9672 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __rv; 9673 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a); 9674 return __rv.__i; 9675 } 9676 9677 __extension__ static __inline uint32x2x2_t __attribute__ ((__always_inline__)) 9678 vld2_dup_u32 (const uint32_t * __a) 9679 { 9680 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __rv; 9681 __rv.__o = __builtin_neon_vld2_dupv2si ((const __builtin_neon_si *) __a); 9682 return __rv.__i; 9683 } 9684 9685 __extension__ static __inline poly8x8x2_t __attribute__ ((__always_inline__)) 9686 vld2_dup_p8 (const poly8_t * __a) 9687 { 9688 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __rv; 9689 __rv.__o = __builtin_neon_vld2_dupv8qi ((const __builtin_neon_qi *) __a); 9690 return __rv.__i; 9691 } 9692 9693 __extension__ static __inline poly16x4x2_t __attribute__ ((__always_inline__)) 9694 vld2_dup_p16 (const poly16_t * __a) 9695 { 9696 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __rv; 9697 __rv.__o = __builtin_neon_vld2_dupv4hi ((const __builtin_neon_hi *) __a); 9698 return __rv.__i; 9699 } 9700 9701 #ifdef __ARM_FEATURE_CRYPTO 9702 __extension__ static __inline poly64x1x2_t __attribute__ ((__always_inline__)) 9703 vld2_dup_p64 (const poly64_t * __a) 9704 { 9705 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __rv; 9706 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a); 9707 return __rv.__i; 9708 } 9709 9710 #endif 9711 __extension__ static __inline int64x1x2_t __attribute__ ((__always_inline__)) 9712 vld2_dup_s64 (const int64_t * __a) 9713 { 9714 union { int64x1x2_t __i; __builtin_neon_ti __o; } __rv; 9715 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a); 9716 return __rv.__i; 9717 } 9718 9719 __extension__ static __inline uint64x1x2_t __attribute__ ((__always_inline__)) 9720 vld2_dup_u64 (const uint64_t * __a) 9721 { 9722 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __rv; 9723 __rv.__o = __builtin_neon_vld2_dupdi ((const __builtin_neon_di *) __a); 9724 return __rv.__i; 9725 } 9726 9727 __extension__ static __inline void __attribute__ ((__always_inline__)) 9728 vst2_s8 (int8_t * __a, int8x8x2_t __b) 9729 { 9730 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9731 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o); 9732 } 9733 9734 __extension__ static __inline void __attribute__ ((__always_inline__)) 9735 vst2_s16 (int16_t * __a, int16x4x2_t __b) 9736 { 9737 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9738 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o); 9739 } 9740 9741 __extension__ static __inline void __attribute__ ((__always_inline__)) 9742 vst2_s32 (int32_t * __a, int32x2x2_t __b) 9743 { 9744 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9745 __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o); 9746 } 9747 9748 __extension__ static __inline void __attribute__ ((__always_inline__)) 9749 vst2_f32 (float32_t * __a, float32x2x2_t __b) 9750 { 9751 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9752 __builtin_neon_vst2v2sf ((__builtin_neon_sf *) __a, __bu.__o); 9753 } 9754 9755 __extension__ static __inline void __attribute__ ((__always_inline__)) 9756 vst2_u8 (uint8_t * __a, uint8x8x2_t __b) 9757 { 9758 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9759 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o); 9760 } 9761 9762 __extension__ static __inline void __attribute__ ((__always_inline__)) 9763 vst2_u16 (uint16_t * __a, uint16x4x2_t __b) 9764 { 9765 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9766 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o); 9767 } 9768 9769 __extension__ static __inline void __attribute__ ((__always_inline__)) 9770 vst2_u32 (uint32_t * __a, uint32x2x2_t __b) 9771 { 9772 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9773 __builtin_neon_vst2v2si ((__builtin_neon_si *) __a, __bu.__o); 9774 } 9775 9776 __extension__ static __inline void __attribute__ ((__always_inline__)) 9777 vst2_p8 (poly8_t * __a, poly8x8x2_t __b) 9778 { 9779 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9780 __builtin_neon_vst2v8qi ((__builtin_neon_qi *) __a, __bu.__o); 9781 } 9782 9783 __extension__ static __inline void __attribute__ ((__always_inline__)) 9784 vst2_p16 (poly16_t * __a, poly16x4x2_t __b) 9785 { 9786 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9787 __builtin_neon_vst2v4hi ((__builtin_neon_hi *) __a, __bu.__o); 9788 } 9789 9790 #ifdef __ARM_FEATURE_CRYPTO 9791 __extension__ static __inline void __attribute__ ((__always_inline__)) 9792 vst2_p64 (poly64_t * __a, poly64x1x2_t __b) 9793 { 9794 union { poly64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9795 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o); 9796 } 9797 9798 #endif 9799 __extension__ static __inline void __attribute__ ((__always_inline__)) 9800 vst2_s64 (int64_t * __a, int64x1x2_t __b) 9801 { 9802 union { int64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9803 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o); 9804 } 9805 9806 __extension__ static __inline void __attribute__ ((__always_inline__)) 9807 vst2_u64 (uint64_t * __a, uint64x1x2_t __b) 9808 { 9809 union { uint64x1x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9810 __builtin_neon_vst2di ((__builtin_neon_di *) __a, __bu.__o); 9811 } 9812 9813 __extension__ static __inline void __attribute__ ((__always_inline__)) 9814 vst2q_s8 (int8_t * __a, int8x16x2_t __b) 9815 { 9816 union { int8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9817 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o); 9818 } 9819 9820 __extension__ static __inline void __attribute__ ((__always_inline__)) 9821 vst2q_s16 (int16_t * __a, int16x8x2_t __b) 9822 { 9823 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9824 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o); 9825 } 9826 9827 __extension__ static __inline void __attribute__ ((__always_inline__)) 9828 vst2q_s32 (int32_t * __a, int32x4x2_t __b) 9829 { 9830 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9831 __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o); 9832 } 9833 9834 __extension__ static __inline void __attribute__ ((__always_inline__)) 9835 vst2q_f32 (float32_t * __a, float32x4x2_t __b) 9836 { 9837 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9838 __builtin_neon_vst2v4sf ((__builtin_neon_sf *) __a, __bu.__o); 9839 } 9840 9841 __extension__ static __inline void __attribute__ ((__always_inline__)) 9842 vst2q_u8 (uint8_t * __a, uint8x16x2_t __b) 9843 { 9844 union { uint8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9845 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o); 9846 } 9847 9848 __extension__ static __inline void __attribute__ ((__always_inline__)) 9849 vst2q_u16 (uint16_t * __a, uint16x8x2_t __b) 9850 { 9851 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9852 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o); 9853 } 9854 9855 __extension__ static __inline void __attribute__ ((__always_inline__)) 9856 vst2q_u32 (uint32_t * __a, uint32x4x2_t __b) 9857 { 9858 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9859 __builtin_neon_vst2v4si ((__builtin_neon_si *) __a, __bu.__o); 9860 } 9861 9862 __extension__ static __inline void __attribute__ ((__always_inline__)) 9863 vst2q_p8 (poly8_t * __a, poly8x16x2_t __b) 9864 { 9865 union { poly8x16x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9866 __builtin_neon_vst2v16qi ((__builtin_neon_qi *) __a, __bu.__o); 9867 } 9868 9869 __extension__ static __inline void __attribute__ ((__always_inline__)) 9870 vst2q_p16 (poly16_t * __a, poly16x8x2_t __b) 9871 { 9872 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9873 __builtin_neon_vst2v8hi ((__builtin_neon_hi *) __a, __bu.__o); 9874 } 9875 9876 __extension__ static __inline void __attribute__ ((__always_inline__)) 9877 vst2_lane_s8 (int8_t * __a, int8x8x2_t __b, const int __c) 9878 { 9879 union { int8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9880 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c); 9881 } 9882 9883 __extension__ static __inline void __attribute__ ((__always_inline__)) 9884 vst2_lane_s16 (int16_t * __a, int16x4x2_t __b, const int __c) 9885 { 9886 union { int16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9887 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 9888 } 9889 9890 __extension__ static __inline void __attribute__ ((__always_inline__)) 9891 vst2_lane_s32 (int32_t * __a, int32x2x2_t __b, const int __c) 9892 { 9893 union { int32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9894 __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c); 9895 } 9896 9897 __extension__ static __inline void __attribute__ ((__always_inline__)) 9898 vst2_lane_f32 (float32_t * __a, float32x2x2_t __b, const int __c) 9899 { 9900 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9901 __builtin_neon_vst2_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c); 9902 } 9903 9904 __extension__ static __inline void __attribute__ ((__always_inline__)) 9905 vst2_lane_u8 (uint8_t * __a, uint8x8x2_t __b, const int __c) 9906 { 9907 union { uint8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9908 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c); 9909 } 9910 9911 __extension__ static __inline void __attribute__ ((__always_inline__)) 9912 vst2_lane_u16 (uint16_t * __a, uint16x4x2_t __b, const int __c) 9913 { 9914 union { uint16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9915 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 9916 } 9917 9918 __extension__ static __inline void __attribute__ ((__always_inline__)) 9919 vst2_lane_u32 (uint32_t * __a, uint32x2x2_t __b, const int __c) 9920 { 9921 union { uint32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9922 __builtin_neon_vst2_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c); 9923 } 9924 9925 __extension__ static __inline void __attribute__ ((__always_inline__)) 9926 vst2_lane_p8 (poly8_t * __a, poly8x8x2_t __b, const int __c) 9927 { 9928 union { poly8x8x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9929 __builtin_neon_vst2_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c); 9930 } 9931 9932 __extension__ static __inline void __attribute__ ((__always_inline__)) 9933 vst2_lane_p16 (poly16_t * __a, poly16x4x2_t __b, const int __c) 9934 { 9935 union { poly16x4x2_t __i; __builtin_neon_ti __o; } __bu = { __b }; 9936 __builtin_neon_vst2_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 9937 } 9938 9939 __extension__ static __inline void __attribute__ ((__always_inline__)) 9940 vst2q_lane_s16 (int16_t * __a, int16x8x2_t __b, const int __c) 9941 { 9942 union { int16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9943 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 9944 } 9945 9946 __extension__ static __inline void __attribute__ ((__always_inline__)) 9947 vst2q_lane_s32 (int32_t * __a, int32x4x2_t __b, const int __c) 9948 { 9949 union { int32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9950 __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c); 9951 } 9952 9953 __extension__ static __inline void __attribute__ ((__always_inline__)) 9954 vst2q_lane_f32 (float32_t * __a, float32x4x2_t __b, const int __c) 9955 { 9956 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9957 __builtin_neon_vst2_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c); 9958 } 9959 9960 __extension__ static __inline void __attribute__ ((__always_inline__)) 9961 vst2q_lane_u16 (uint16_t * __a, uint16x8x2_t __b, const int __c) 9962 { 9963 union { uint16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9964 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 9965 } 9966 9967 __extension__ static __inline void __attribute__ ((__always_inline__)) 9968 vst2q_lane_u32 (uint32_t * __a, uint32x4x2_t __b, const int __c) 9969 { 9970 union { uint32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9971 __builtin_neon_vst2_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c); 9972 } 9973 9974 __extension__ static __inline void __attribute__ ((__always_inline__)) 9975 vst2q_lane_p16 (poly16_t * __a, poly16x8x2_t __b, const int __c) 9976 { 9977 union { poly16x8x2_t __i; __builtin_neon_oi __o; } __bu = { __b }; 9978 __builtin_neon_vst2_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 9979 } 9980 9981 __extension__ static __inline int8x8x3_t __attribute__ ((__always_inline__)) 9982 vld3_s8 (const int8_t * __a) 9983 { 9984 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv; 9985 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a); 9986 return __rv.__i; 9987 } 9988 9989 __extension__ static __inline int16x4x3_t __attribute__ ((__always_inline__)) 9990 vld3_s16 (const int16_t * __a) 9991 { 9992 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv; 9993 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a); 9994 return __rv.__i; 9995 } 9996 9997 __extension__ static __inline int32x2x3_t __attribute__ ((__always_inline__)) 9998 vld3_s32 (const int32_t * __a) 9999 { 10000 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv; 10001 __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a); 10002 return __rv.__i; 10003 } 10004 10005 __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__)) 10006 vld3_f32 (const float32_t * __a) 10007 { 10008 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv; 10009 __rv.__o = __builtin_neon_vld3v2sf ((const __builtin_neon_sf *) __a); 10010 return __rv.__i; 10011 } 10012 10013 __extension__ static __inline uint8x8x3_t __attribute__ ((__always_inline__)) 10014 vld3_u8 (const uint8_t * __a) 10015 { 10016 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv; 10017 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a); 10018 return __rv.__i; 10019 } 10020 10021 __extension__ static __inline uint16x4x3_t __attribute__ ((__always_inline__)) 10022 vld3_u16 (const uint16_t * __a) 10023 { 10024 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv; 10025 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a); 10026 return __rv.__i; 10027 } 10028 10029 __extension__ static __inline uint32x2x3_t __attribute__ ((__always_inline__)) 10030 vld3_u32 (const uint32_t * __a) 10031 { 10032 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv; 10033 __rv.__o = __builtin_neon_vld3v2si ((const __builtin_neon_si *) __a); 10034 return __rv.__i; 10035 } 10036 10037 __extension__ static __inline poly8x8x3_t __attribute__ ((__always_inline__)) 10038 vld3_p8 (const poly8_t * __a) 10039 { 10040 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv; 10041 __rv.__o = __builtin_neon_vld3v8qi ((const __builtin_neon_qi *) __a); 10042 return __rv.__i; 10043 } 10044 10045 __extension__ static __inline poly16x4x3_t __attribute__ ((__always_inline__)) 10046 vld3_p16 (const poly16_t * __a) 10047 { 10048 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv; 10049 __rv.__o = __builtin_neon_vld3v4hi ((const __builtin_neon_hi *) __a); 10050 return __rv.__i; 10051 } 10052 10053 #ifdef __ARM_FEATURE_CRYPTO 10054 __extension__ static __inline poly64x1x3_t __attribute__ ((__always_inline__)) 10055 vld3_p64 (const poly64_t * __a) 10056 { 10057 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv; 10058 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a); 10059 return __rv.__i; 10060 } 10061 10062 #endif 10063 __extension__ static __inline int64x1x3_t __attribute__ ((__always_inline__)) 10064 vld3_s64 (const int64_t * __a) 10065 { 10066 union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv; 10067 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a); 10068 return __rv.__i; 10069 } 10070 10071 __extension__ static __inline uint64x1x3_t __attribute__ ((__always_inline__)) 10072 vld3_u64 (const uint64_t * __a) 10073 { 10074 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv; 10075 __rv.__o = __builtin_neon_vld3di ((const __builtin_neon_di *) __a); 10076 return __rv.__i; 10077 } 10078 10079 __extension__ static __inline int8x16x3_t __attribute__ ((__always_inline__)) 10080 vld3q_s8 (const int8_t * __a) 10081 { 10082 union { int8x16x3_t __i; __builtin_neon_ci __o; } __rv; 10083 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a); 10084 return __rv.__i; 10085 } 10086 10087 __extension__ static __inline int16x8x3_t __attribute__ ((__always_inline__)) 10088 vld3q_s16 (const int16_t * __a) 10089 { 10090 union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv; 10091 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a); 10092 return __rv.__i; 10093 } 10094 10095 __extension__ static __inline int32x4x3_t __attribute__ ((__always_inline__)) 10096 vld3q_s32 (const int32_t * __a) 10097 { 10098 union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv; 10099 __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a); 10100 return __rv.__i; 10101 } 10102 10103 __extension__ static __inline float32x4x3_t __attribute__ ((__always_inline__)) 10104 vld3q_f32 (const float32_t * __a) 10105 { 10106 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv; 10107 __rv.__o = __builtin_neon_vld3v4sf ((const __builtin_neon_sf *) __a); 10108 return __rv.__i; 10109 } 10110 10111 __extension__ static __inline uint8x16x3_t __attribute__ ((__always_inline__)) 10112 vld3q_u8 (const uint8_t * __a) 10113 { 10114 union { uint8x16x3_t __i; __builtin_neon_ci __o; } __rv; 10115 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a); 10116 return __rv.__i; 10117 } 10118 10119 __extension__ static __inline uint16x8x3_t __attribute__ ((__always_inline__)) 10120 vld3q_u16 (const uint16_t * __a) 10121 { 10122 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv; 10123 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a); 10124 return __rv.__i; 10125 } 10126 10127 __extension__ static __inline uint32x4x3_t __attribute__ ((__always_inline__)) 10128 vld3q_u32 (const uint32_t * __a) 10129 { 10130 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv; 10131 __rv.__o = __builtin_neon_vld3v4si ((const __builtin_neon_si *) __a); 10132 return __rv.__i; 10133 } 10134 10135 __extension__ static __inline poly8x16x3_t __attribute__ ((__always_inline__)) 10136 vld3q_p8 (const poly8_t * __a) 10137 { 10138 union { poly8x16x3_t __i; __builtin_neon_ci __o; } __rv; 10139 __rv.__o = __builtin_neon_vld3v16qi ((const __builtin_neon_qi *) __a); 10140 return __rv.__i; 10141 } 10142 10143 __extension__ static __inline poly16x8x3_t __attribute__ ((__always_inline__)) 10144 vld3q_p16 (const poly16_t * __a) 10145 { 10146 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv; 10147 __rv.__o = __builtin_neon_vld3v8hi ((const __builtin_neon_hi *) __a); 10148 return __rv.__i; 10149 } 10150 10151 __extension__ static __inline int8x8x3_t __attribute__ ((__always_inline__)) 10152 vld3_lane_s8 (const int8_t * __a, int8x8x3_t __b, const int __c) 10153 { 10154 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10155 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv; 10156 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c); 10157 return __rv.__i; 10158 } 10159 10160 __extension__ static __inline int16x4x3_t __attribute__ ((__always_inline__)) 10161 vld3_lane_s16 (const int16_t * __a, int16x4x3_t __b, const int __c) 10162 { 10163 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10164 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv; 10165 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 10166 return __rv.__i; 10167 } 10168 10169 __extension__ static __inline int32x2x3_t __attribute__ ((__always_inline__)) 10170 vld3_lane_s32 (const int32_t * __a, int32x2x3_t __b, const int __c) 10171 { 10172 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10173 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv; 10174 __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c); 10175 return __rv.__i; 10176 } 10177 10178 __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__)) 10179 vld3_lane_f32 (const float32_t * __a, float32x2x3_t __b, const int __c) 10180 { 10181 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10182 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv; 10183 __rv.__o = __builtin_neon_vld3_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c); 10184 return __rv.__i; 10185 } 10186 10187 __extension__ static __inline uint8x8x3_t __attribute__ ((__always_inline__)) 10188 vld3_lane_u8 (const uint8_t * __a, uint8x8x3_t __b, const int __c) 10189 { 10190 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10191 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv; 10192 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c); 10193 return __rv.__i; 10194 } 10195 10196 __extension__ static __inline uint16x4x3_t __attribute__ ((__always_inline__)) 10197 vld3_lane_u16 (const uint16_t * __a, uint16x4x3_t __b, const int __c) 10198 { 10199 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10200 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv; 10201 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 10202 return __rv.__i; 10203 } 10204 10205 __extension__ static __inline uint32x2x3_t __attribute__ ((__always_inline__)) 10206 vld3_lane_u32 (const uint32_t * __a, uint32x2x3_t __b, const int __c) 10207 { 10208 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10209 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv; 10210 __rv.__o = __builtin_neon_vld3_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c); 10211 return __rv.__i; 10212 } 10213 10214 __extension__ static __inline poly8x8x3_t __attribute__ ((__always_inline__)) 10215 vld3_lane_p8 (const poly8_t * __a, poly8x8x3_t __b, const int __c) 10216 { 10217 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10218 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv; 10219 __rv.__o = __builtin_neon_vld3_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c); 10220 return __rv.__i; 10221 } 10222 10223 __extension__ static __inline poly16x4x3_t __attribute__ ((__always_inline__)) 10224 vld3_lane_p16 (const poly16_t * __a, poly16x4x3_t __b, const int __c) 10225 { 10226 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10227 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv; 10228 __rv.__o = __builtin_neon_vld3_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 10229 return __rv.__i; 10230 } 10231 10232 __extension__ static __inline int16x8x3_t __attribute__ ((__always_inline__)) 10233 vld3q_lane_s16 (const int16_t * __a, int16x8x3_t __b, const int __c) 10234 { 10235 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10236 union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv; 10237 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 10238 return __rv.__i; 10239 } 10240 10241 __extension__ static __inline int32x4x3_t __attribute__ ((__always_inline__)) 10242 vld3q_lane_s32 (const int32_t * __a, int32x4x3_t __b, const int __c) 10243 { 10244 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10245 union { int32x4x3_t __i; __builtin_neon_ci __o; } __rv; 10246 __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c); 10247 return __rv.__i; 10248 } 10249 10250 __extension__ static __inline float32x4x3_t __attribute__ ((__always_inline__)) 10251 vld3q_lane_f32 (const float32_t * __a, float32x4x3_t __b, const int __c) 10252 { 10253 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10254 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv; 10255 __rv.__o = __builtin_neon_vld3_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c); 10256 return __rv.__i; 10257 } 10258 10259 __extension__ static __inline uint16x8x3_t __attribute__ ((__always_inline__)) 10260 vld3q_lane_u16 (const uint16_t * __a, uint16x8x3_t __b, const int __c) 10261 { 10262 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10263 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __rv; 10264 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 10265 return __rv.__i; 10266 } 10267 10268 __extension__ static __inline uint32x4x3_t __attribute__ ((__always_inline__)) 10269 vld3q_lane_u32 (const uint32_t * __a, uint32x4x3_t __b, const int __c) 10270 { 10271 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10272 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __rv; 10273 __rv.__o = __builtin_neon_vld3_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c); 10274 return __rv.__i; 10275 } 10276 10277 __extension__ static __inline poly16x8x3_t __attribute__ ((__always_inline__)) 10278 vld3q_lane_p16 (const poly16_t * __a, poly16x8x3_t __b, const int __c) 10279 { 10280 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10281 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __rv; 10282 __rv.__o = __builtin_neon_vld3_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 10283 return __rv.__i; 10284 } 10285 10286 __extension__ static __inline int8x8x3_t __attribute__ ((__always_inline__)) 10287 vld3_dup_s8 (const int8_t * __a) 10288 { 10289 union { int8x8x3_t __i; __builtin_neon_ei __o; } __rv; 10290 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a); 10291 return __rv.__i; 10292 } 10293 10294 __extension__ static __inline int16x4x3_t __attribute__ ((__always_inline__)) 10295 vld3_dup_s16 (const int16_t * __a) 10296 { 10297 union { int16x4x3_t __i; __builtin_neon_ei __o; } __rv; 10298 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a); 10299 return __rv.__i; 10300 } 10301 10302 __extension__ static __inline int32x2x3_t __attribute__ ((__always_inline__)) 10303 vld3_dup_s32 (const int32_t * __a) 10304 { 10305 union { int32x2x3_t __i; __builtin_neon_ei __o; } __rv; 10306 __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a); 10307 return __rv.__i; 10308 } 10309 10310 __extension__ static __inline float32x2x3_t __attribute__ ((__always_inline__)) 10311 vld3_dup_f32 (const float32_t * __a) 10312 { 10313 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv; 10314 __rv.__o = __builtin_neon_vld3_dupv2sf ((const __builtin_neon_sf *) __a); 10315 return __rv.__i; 10316 } 10317 10318 __extension__ static __inline uint8x8x3_t __attribute__ ((__always_inline__)) 10319 vld3_dup_u8 (const uint8_t * __a) 10320 { 10321 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __rv; 10322 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a); 10323 return __rv.__i; 10324 } 10325 10326 __extension__ static __inline uint16x4x3_t __attribute__ ((__always_inline__)) 10327 vld3_dup_u16 (const uint16_t * __a) 10328 { 10329 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __rv; 10330 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a); 10331 return __rv.__i; 10332 } 10333 10334 __extension__ static __inline uint32x2x3_t __attribute__ ((__always_inline__)) 10335 vld3_dup_u32 (const uint32_t * __a) 10336 { 10337 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __rv; 10338 __rv.__o = __builtin_neon_vld3_dupv2si ((const __builtin_neon_si *) __a); 10339 return __rv.__i; 10340 } 10341 10342 __extension__ static __inline poly8x8x3_t __attribute__ ((__always_inline__)) 10343 vld3_dup_p8 (const poly8_t * __a) 10344 { 10345 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __rv; 10346 __rv.__o = __builtin_neon_vld3_dupv8qi ((const __builtin_neon_qi *) __a); 10347 return __rv.__i; 10348 } 10349 10350 __extension__ static __inline poly16x4x3_t __attribute__ ((__always_inline__)) 10351 vld3_dup_p16 (const poly16_t * __a) 10352 { 10353 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __rv; 10354 __rv.__o = __builtin_neon_vld3_dupv4hi ((const __builtin_neon_hi *) __a); 10355 return __rv.__i; 10356 } 10357 10358 #ifdef __ARM_FEATURE_CRYPTO 10359 __extension__ static __inline poly64x1x3_t __attribute__ ((__always_inline__)) 10360 vld3_dup_p64 (const poly64_t * __a) 10361 { 10362 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __rv; 10363 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a); 10364 return __rv.__i; 10365 } 10366 10367 #endif 10368 __extension__ static __inline int64x1x3_t __attribute__ ((__always_inline__)) 10369 vld3_dup_s64 (const int64_t * __a) 10370 { 10371 union { int64x1x3_t __i; __builtin_neon_ei __o; } __rv; 10372 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a); 10373 return __rv.__i; 10374 } 10375 10376 __extension__ static __inline uint64x1x3_t __attribute__ ((__always_inline__)) 10377 vld3_dup_u64 (const uint64_t * __a) 10378 { 10379 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __rv; 10380 __rv.__o = __builtin_neon_vld3_dupdi ((const __builtin_neon_di *) __a); 10381 return __rv.__i; 10382 } 10383 10384 __extension__ static __inline void __attribute__ ((__always_inline__)) 10385 vst3_s8 (int8_t * __a, int8x8x3_t __b) 10386 { 10387 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10388 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o); 10389 } 10390 10391 __extension__ static __inline void __attribute__ ((__always_inline__)) 10392 vst3_s16 (int16_t * __a, int16x4x3_t __b) 10393 { 10394 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10395 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o); 10396 } 10397 10398 __extension__ static __inline void __attribute__ ((__always_inline__)) 10399 vst3_s32 (int32_t * __a, int32x2x3_t __b) 10400 { 10401 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10402 __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o); 10403 } 10404 10405 __extension__ static __inline void __attribute__ ((__always_inline__)) 10406 vst3_f32 (float32_t * __a, float32x2x3_t __b) 10407 { 10408 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10409 __builtin_neon_vst3v2sf ((__builtin_neon_sf *) __a, __bu.__o); 10410 } 10411 10412 __extension__ static __inline void __attribute__ ((__always_inline__)) 10413 vst3_u8 (uint8_t * __a, uint8x8x3_t __b) 10414 { 10415 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10416 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o); 10417 } 10418 10419 __extension__ static __inline void __attribute__ ((__always_inline__)) 10420 vst3_u16 (uint16_t * __a, uint16x4x3_t __b) 10421 { 10422 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10423 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o); 10424 } 10425 10426 __extension__ static __inline void __attribute__ ((__always_inline__)) 10427 vst3_u32 (uint32_t * __a, uint32x2x3_t __b) 10428 { 10429 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10430 __builtin_neon_vst3v2si ((__builtin_neon_si *) __a, __bu.__o); 10431 } 10432 10433 __extension__ static __inline void __attribute__ ((__always_inline__)) 10434 vst3_p8 (poly8_t * __a, poly8x8x3_t __b) 10435 { 10436 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10437 __builtin_neon_vst3v8qi ((__builtin_neon_qi *) __a, __bu.__o); 10438 } 10439 10440 __extension__ static __inline void __attribute__ ((__always_inline__)) 10441 vst3_p16 (poly16_t * __a, poly16x4x3_t __b) 10442 { 10443 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10444 __builtin_neon_vst3v4hi ((__builtin_neon_hi *) __a, __bu.__o); 10445 } 10446 10447 #ifdef __ARM_FEATURE_CRYPTO 10448 __extension__ static __inline void __attribute__ ((__always_inline__)) 10449 vst3_p64 (poly64_t * __a, poly64x1x3_t __b) 10450 { 10451 union { poly64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10452 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o); 10453 } 10454 10455 #endif 10456 __extension__ static __inline void __attribute__ ((__always_inline__)) 10457 vst3_s64 (int64_t * __a, int64x1x3_t __b) 10458 { 10459 union { int64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10460 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o); 10461 } 10462 10463 __extension__ static __inline void __attribute__ ((__always_inline__)) 10464 vst3_u64 (uint64_t * __a, uint64x1x3_t __b) 10465 { 10466 union { uint64x1x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10467 __builtin_neon_vst3di ((__builtin_neon_di *) __a, __bu.__o); 10468 } 10469 10470 __extension__ static __inline void __attribute__ ((__always_inline__)) 10471 vst3q_s8 (int8_t * __a, int8x16x3_t __b) 10472 { 10473 union { int8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10474 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o); 10475 } 10476 10477 __extension__ static __inline void __attribute__ ((__always_inline__)) 10478 vst3q_s16 (int16_t * __a, int16x8x3_t __b) 10479 { 10480 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10481 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o); 10482 } 10483 10484 __extension__ static __inline void __attribute__ ((__always_inline__)) 10485 vst3q_s32 (int32_t * __a, int32x4x3_t __b) 10486 { 10487 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10488 __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o); 10489 } 10490 10491 __extension__ static __inline void __attribute__ ((__always_inline__)) 10492 vst3q_f32 (float32_t * __a, float32x4x3_t __b) 10493 { 10494 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10495 __builtin_neon_vst3v4sf ((__builtin_neon_sf *) __a, __bu.__o); 10496 } 10497 10498 __extension__ static __inline void __attribute__ ((__always_inline__)) 10499 vst3q_u8 (uint8_t * __a, uint8x16x3_t __b) 10500 { 10501 union { uint8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10502 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o); 10503 } 10504 10505 __extension__ static __inline void __attribute__ ((__always_inline__)) 10506 vst3q_u16 (uint16_t * __a, uint16x8x3_t __b) 10507 { 10508 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10509 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o); 10510 } 10511 10512 __extension__ static __inline void __attribute__ ((__always_inline__)) 10513 vst3q_u32 (uint32_t * __a, uint32x4x3_t __b) 10514 { 10515 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10516 __builtin_neon_vst3v4si ((__builtin_neon_si *) __a, __bu.__o); 10517 } 10518 10519 __extension__ static __inline void __attribute__ ((__always_inline__)) 10520 vst3q_p8 (poly8_t * __a, poly8x16x3_t __b) 10521 { 10522 union { poly8x16x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10523 __builtin_neon_vst3v16qi ((__builtin_neon_qi *) __a, __bu.__o); 10524 } 10525 10526 __extension__ static __inline void __attribute__ ((__always_inline__)) 10527 vst3q_p16 (poly16_t * __a, poly16x8x3_t __b) 10528 { 10529 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10530 __builtin_neon_vst3v8hi ((__builtin_neon_hi *) __a, __bu.__o); 10531 } 10532 10533 __extension__ static __inline void __attribute__ ((__always_inline__)) 10534 vst3_lane_s8 (int8_t * __a, int8x8x3_t __b, const int __c) 10535 { 10536 union { int8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10537 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c); 10538 } 10539 10540 __extension__ static __inline void __attribute__ ((__always_inline__)) 10541 vst3_lane_s16 (int16_t * __a, int16x4x3_t __b, const int __c) 10542 { 10543 union { int16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10544 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 10545 } 10546 10547 __extension__ static __inline void __attribute__ ((__always_inline__)) 10548 vst3_lane_s32 (int32_t * __a, int32x2x3_t __b, const int __c) 10549 { 10550 union { int32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10551 __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c); 10552 } 10553 10554 __extension__ static __inline void __attribute__ ((__always_inline__)) 10555 vst3_lane_f32 (float32_t * __a, float32x2x3_t __b, const int __c) 10556 { 10557 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10558 __builtin_neon_vst3_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c); 10559 } 10560 10561 __extension__ static __inline void __attribute__ ((__always_inline__)) 10562 vst3_lane_u8 (uint8_t * __a, uint8x8x3_t __b, const int __c) 10563 { 10564 union { uint8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10565 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c); 10566 } 10567 10568 __extension__ static __inline void __attribute__ ((__always_inline__)) 10569 vst3_lane_u16 (uint16_t * __a, uint16x4x3_t __b, const int __c) 10570 { 10571 union { uint16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10572 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 10573 } 10574 10575 __extension__ static __inline void __attribute__ ((__always_inline__)) 10576 vst3_lane_u32 (uint32_t * __a, uint32x2x3_t __b, const int __c) 10577 { 10578 union { uint32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10579 __builtin_neon_vst3_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c); 10580 } 10581 10582 __extension__ static __inline void __attribute__ ((__always_inline__)) 10583 vst3_lane_p8 (poly8_t * __a, poly8x8x3_t __b, const int __c) 10584 { 10585 union { poly8x8x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10586 __builtin_neon_vst3_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c); 10587 } 10588 10589 __extension__ static __inline void __attribute__ ((__always_inline__)) 10590 vst3_lane_p16 (poly16_t * __a, poly16x4x3_t __b, const int __c) 10591 { 10592 union { poly16x4x3_t __i; __builtin_neon_ei __o; } __bu = { __b }; 10593 __builtin_neon_vst3_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 10594 } 10595 10596 __extension__ static __inline void __attribute__ ((__always_inline__)) 10597 vst3q_lane_s16 (int16_t * __a, int16x8x3_t __b, const int __c) 10598 { 10599 union { int16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10600 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 10601 } 10602 10603 __extension__ static __inline void __attribute__ ((__always_inline__)) 10604 vst3q_lane_s32 (int32_t * __a, int32x4x3_t __b, const int __c) 10605 { 10606 union { int32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10607 __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c); 10608 } 10609 10610 __extension__ static __inline void __attribute__ ((__always_inline__)) 10611 vst3q_lane_f32 (float32_t * __a, float32x4x3_t __b, const int __c) 10612 { 10613 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10614 __builtin_neon_vst3_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c); 10615 } 10616 10617 __extension__ static __inline void __attribute__ ((__always_inline__)) 10618 vst3q_lane_u16 (uint16_t * __a, uint16x8x3_t __b, const int __c) 10619 { 10620 union { uint16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10621 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 10622 } 10623 10624 __extension__ static __inline void __attribute__ ((__always_inline__)) 10625 vst3q_lane_u32 (uint32_t * __a, uint32x4x3_t __b, const int __c) 10626 { 10627 union { uint32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10628 __builtin_neon_vst3_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c); 10629 } 10630 10631 __extension__ static __inline void __attribute__ ((__always_inline__)) 10632 vst3q_lane_p16 (poly16_t * __a, poly16x8x3_t __b, const int __c) 10633 { 10634 union { poly16x8x3_t __i; __builtin_neon_ci __o; } __bu = { __b }; 10635 __builtin_neon_vst3_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 10636 } 10637 10638 __extension__ static __inline int8x8x4_t __attribute__ ((__always_inline__)) 10639 vld4_s8 (const int8_t * __a) 10640 { 10641 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv; 10642 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a); 10643 return __rv.__i; 10644 } 10645 10646 __extension__ static __inline int16x4x4_t __attribute__ ((__always_inline__)) 10647 vld4_s16 (const int16_t * __a) 10648 { 10649 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv; 10650 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a); 10651 return __rv.__i; 10652 } 10653 10654 __extension__ static __inline int32x2x4_t __attribute__ ((__always_inline__)) 10655 vld4_s32 (const int32_t * __a) 10656 { 10657 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv; 10658 __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a); 10659 return __rv.__i; 10660 } 10661 10662 __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__)) 10663 vld4_f32 (const float32_t * __a) 10664 { 10665 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv; 10666 __rv.__o = __builtin_neon_vld4v2sf ((const __builtin_neon_sf *) __a); 10667 return __rv.__i; 10668 } 10669 10670 __extension__ static __inline uint8x8x4_t __attribute__ ((__always_inline__)) 10671 vld4_u8 (const uint8_t * __a) 10672 { 10673 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv; 10674 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a); 10675 return __rv.__i; 10676 } 10677 10678 __extension__ static __inline uint16x4x4_t __attribute__ ((__always_inline__)) 10679 vld4_u16 (const uint16_t * __a) 10680 { 10681 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv; 10682 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a); 10683 return __rv.__i; 10684 } 10685 10686 __extension__ static __inline uint32x2x4_t __attribute__ ((__always_inline__)) 10687 vld4_u32 (const uint32_t * __a) 10688 { 10689 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv; 10690 __rv.__o = __builtin_neon_vld4v2si ((const __builtin_neon_si *) __a); 10691 return __rv.__i; 10692 } 10693 10694 __extension__ static __inline poly8x8x4_t __attribute__ ((__always_inline__)) 10695 vld4_p8 (const poly8_t * __a) 10696 { 10697 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv; 10698 __rv.__o = __builtin_neon_vld4v8qi ((const __builtin_neon_qi *) __a); 10699 return __rv.__i; 10700 } 10701 10702 __extension__ static __inline poly16x4x4_t __attribute__ ((__always_inline__)) 10703 vld4_p16 (const poly16_t * __a) 10704 { 10705 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv; 10706 __rv.__o = __builtin_neon_vld4v4hi ((const __builtin_neon_hi *) __a); 10707 return __rv.__i; 10708 } 10709 10710 #ifdef __ARM_FEATURE_CRYPTO 10711 __extension__ static __inline poly64x1x4_t __attribute__ ((__always_inline__)) 10712 vld4_p64 (const poly64_t * __a) 10713 { 10714 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv; 10715 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a); 10716 return __rv.__i; 10717 } 10718 10719 #endif 10720 __extension__ static __inline int64x1x4_t __attribute__ ((__always_inline__)) 10721 vld4_s64 (const int64_t * __a) 10722 { 10723 union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv; 10724 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a); 10725 return __rv.__i; 10726 } 10727 10728 __extension__ static __inline uint64x1x4_t __attribute__ ((__always_inline__)) 10729 vld4_u64 (const uint64_t * __a) 10730 { 10731 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv; 10732 __rv.__o = __builtin_neon_vld4di ((const __builtin_neon_di *) __a); 10733 return __rv.__i; 10734 } 10735 10736 __extension__ static __inline int8x16x4_t __attribute__ ((__always_inline__)) 10737 vld4q_s8 (const int8_t * __a) 10738 { 10739 union { int8x16x4_t __i; __builtin_neon_xi __o; } __rv; 10740 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a); 10741 return __rv.__i; 10742 } 10743 10744 __extension__ static __inline int16x8x4_t __attribute__ ((__always_inline__)) 10745 vld4q_s16 (const int16_t * __a) 10746 { 10747 union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv; 10748 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a); 10749 return __rv.__i; 10750 } 10751 10752 __extension__ static __inline int32x4x4_t __attribute__ ((__always_inline__)) 10753 vld4q_s32 (const int32_t * __a) 10754 { 10755 union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv; 10756 __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a); 10757 return __rv.__i; 10758 } 10759 10760 __extension__ static __inline float32x4x4_t __attribute__ ((__always_inline__)) 10761 vld4q_f32 (const float32_t * __a) 10762 { 10763 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv; 10764 __rv.__o = __builtin_neon_vld4v4sf ((const __builtin_neon_sf *) __a); 10765 return __rv.__i; 10766 } 10767 10768 __extension__ static __inline uint8x16x4_t __attribute__ ((__always_inline__)) 10769 vld4q_u8 (const uint8_t * __a) 10770 { 10771 union { uint8x16x4_t __i; __builtin_neon_xi __o; } __rv; 10772 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a); 10773 return __rv.__i; 10774 } 10775 10776 __extension__ static __inline uint16x8x4_t __attribute__ ((__always_inline__)) 10777 vld4q_u16 (const uint16_t * __a) 10778 { 10779 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv; 10780 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a); 10781 return __rv.__i; 10782 } 10783 10784 __extension__ static __inline uint32x4x4_t __attribute__ ((__always_inline__)) 10785 vld4q_u32 (const uint32_t * __a) 10786 { 10787 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv; 10788 __rv.__o = __builtin_neon_vld4v4si ((const __builtin_neon_si *) __a); 10789 return __rv.__i; 10790 } 10791 10792 __extension__ static __inline poly8x16x4_t __attribute__ ((__always_inline__)) 10793 vld4q_p8 (const poly8_t * __a) 10794 { 10795 union { poly8x16x4_t __i; __builtin_neon_xi __o; } __rv; 10796 __rv.__o = __builtin_neon_vld4v16qi ((const __builtin_neon_qi *) __a); 10797 return __rv.__i; 10798 } 10799 10800 __extension__ static __inline poly16x8x4_t __attribute__ ((__always_inline__)) 10801 vld4q_p16 (const poly16_t * __a) 10802 { 10803 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv; 10804 __rv.__o = __builtin_neon_vld4v8hi ((const __builtin_neon_hi *) __a); 10805 return __rv.__i; 10806 } 10807 10808 __extension__ static __inline int8x8x4_t __attribute__ ((__always_inline__)) 10809 vld4_lane_s8 (const int8_t * __a, int8x8x4_t __b, const int __c) 10810 { 10811 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 10812 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv; 10813 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c); 10814 return __rv.__i; 10815 } 10816 10817 __extension__ static __inline int16x4x4_t __attribute__ ((__always_inline__)) 10818 vld4_lane_s16 (const int16_t * __a, int16x4x4_t __b, const int __c) 10819 { 10820 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 10821 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv; 10822 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 10823 return __rv.__i; 10824 } 10825 10826 __extension__ static __inline int32x2x4_t __attribute__ ((__always_inline__)) 10827 vld4_lane_s32 (const int32_t * __a, int32x2x4_t __b, const int __c) 10828 { 10829 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 10830 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv; 10831 __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c); 10832 return __rv.__i; 10833 } 10834 10835 __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__)) 10836 vld4_lane_f32 (const float32_t * __a, float32x2x4_t __b, const int __c) 10837 { 10838 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 10839 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv; 10840 __rv.__o = __builtin_neon_vld4_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c); 10841 return __rv.__i; 10842 } 10843 10844 __extension__ static __inline uint8x8x4_t __attribute__ ((__always_inline__)) 10845 vld4_lane_u8 (const uint8_t * __a, uint8x8x4_t __b, const int __c) 10846 { 10847 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 10848 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv; 10849 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c); 10850 return __rv.__i; 10851 } 10852 10853 __extension__ static __inline uint16x4x4_t __attribute__ ((__always_inline__)) 10854 vld4_lane_u16 (const uint16_t * __a, uint16x4x4_t __b, const int __c) 10855 { 10856 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 10857 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv; 10858 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 10859 return __rv.__i; 10860 } 10861 10862 __extension__ static __inline uint32x2x4_t __attribute__ ((__always_inline__)) 10863 vld4_lane_u32 (const uint32_t * __a, uint32x2x4_t __b, const int __c) 10864 { 10865 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 10866 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv; 10867 __rv.__o = __builtin_neon_vld4_lanev2si ((const __builtin_neon_si *) __a, __bu.__o, __c); 10868 return __rv.__i; 10869 } 10870 10871 __extension__ static __inline poly8x8x4_t __attribute__ ((__always_inline__)) 10872 vld4_lane_p8 (const poly8_t * __a, poly8x8x4_t __b, const int __c) 10873 { 10874 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 10875 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv; 10876 __rv.__o = __builtin_neon_vld4_lanev8qi ((const __builtin_neon_qi *) __a, __bu.__o, __c); 10877 return __rv.__i; 10878 } 10879 10880 __extension__ static __inline poly16x4x4_t __attribute__ ((__always_inline__)) 10881 vld4_lane_p16 (const poly16_t * __a, poly16x4x4_t __b, const int __c) 10882 { 10883 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 10884 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv; 10885 __rv.__o = __builtin_neon_vld4_lanev4hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 10886 return __rv.__i; 10887 } 10888 10889 __extension__ static __inline int16x8x4_t __attribute__ ((__always_inline__)) 10890 vld4q_lane_s16 (const int16_t * __a, int16x8x4_t __b, const int __c) 10891 { 10892 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 10893 union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv; 10894 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 10895 return __rv.__i; 10896 } 10897 10898 __extension__ static __inline int32x4x4_t __attribute__ ((__always_inline__)) 10899 vld4q_lane_s32 (const int32_t * __a, int32x4x4_t __b, const int __c) 10900 { 10901 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 10902 union { int32x4x4_t __i; __builtin_neon_xi __o; } __rv; 10903 __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c); 10904 return __rv.__i; 10905 } 10906 10907 __extension__ static __inline float32x4x4_t __attribute__ ((__always_inline__)) 10908 vld4q_lane_f32 (const float32_t * __a, float32x4x4_t __b, const int __c) 10909 { 10910 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 10911 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv; 10912 __rv.__o = __builtin_neon_vld4_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c); 10913 return __rv.__i; 10914 } 10915 10916 __extension__ static __inline uint16x8x4_t __attribute__ ((__always_inline__)) 10917 vld4q_lane_u16 (const uint16_t * __a, uint16x8x4_t __b, const int __c) 10918 { 10919 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 10920 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __rv; 10921 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 10922 return __rv.__i; 10923 } 10924 10925 __extension__ static __inline uint32x4x4_t __attribute__ ((__always_inline__)) 10926 vld4q_lane_u32 (const uint32_t * __a, uint32x4x4_t __b, const int __c) 10927 { 10928 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 10929 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __rv; 10930 __rv.__o = __builtin_neon_vld4_lanev4si ((const __builtin_neon_si *) __a, __bu.__o, __c); 10931 return __rv.__i; 10932 } 10933 10934 __extension__ static __inline poly16x8x4_t __attribute__ ((__always_inline__)) 10935 vld4q_lane_p16 (const poly16_t * __a, poly16x8x4_t __b, const int __c) 10936 { 10937 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 10938 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __rv; 10939 __rv.__o = __builtin_neon_vld4_lanev8hi ((const __builtin_neon_hi *) __a, __bu.__o, __c); 10940 return __rv.__i; 10941 } 10942 10943 __extension__ static __inline int8x8x4_t __attribute__ ((__always_inline__)) 10944 vld4_dup_s8 (const int8_t * __a) 10945 { 10946 union { int8x8x4_t __i; __builtin_neon_oi __o; } __rv; 10947 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a); 10948 return __rv.__i; 10949 } 10950 10951 __extension__ static __inline int16x4x4_t __attribute__ ((__always_inline__)) 10952 vld4_dup_s16 (const int16_t * __a) 10953 { 10954 union { int16x4x4_t __i; __builtin_neon_oi __o; } __rv; 10955 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a); 10956 return __rv.__i; 10957 } 10958 10959 __extension__ static __inline int32x2x4_t __attribute__ ((__always_inline__)) 10960 vld4_dup_s32 (const int32_t * __a) 10961 { 10962 union { int32x2x4_t __i; __builtin_neon_oi __o; } __rv; 10963 __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a); 10964 return __rv.__i; 10965 } 10966 10967 __extension__ static __inline float32x2x4_t __attribute__ ((__always_inline__)) 10968 vld4_dup_f32 (const float32_t * __a) 10969 { 10970 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv; 10971 __rv.__o = __builtin_neon_vld4_dupv2sf ((const __builtin_neon_sf *) __a); 10972 return __rv.__i; 10973 } 10974 10975 __extension__ static __inline uint8x8x4_t __attribute__ ((__always_inline__)) 10976 vld4_dup_u8 (const uint8_t * __a) 10977 { 10978 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __rv; 10979 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a); 10980 return __rv.__i; 10981 } 10982 10983 __extension__ static __inline uint16x4x4_t __attribute__ ((__always_inline__)) 10984 vld4_dup_u16 (const uint16_t * __a) 10985 { 10986 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __rv; 10987 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a); 10988 return __rv.__i; 10989 } 10990 10991 __extension__ static __inline uint32x2x4_t __attribute__ ((__always_inline__)) 10992 vld4_dup_u32 (const uint32_t * __a) 10993 { 10994 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __rv; 10995 __rv.__o = __builtin_neon_vld4_dupv2si ((const __builtin_neon_si *) __a); 10996 return __rv.__i; 10997 } 10998 10999 __extension__ static __inline poly8x8x4_t __attribute__ ((__always_inline__)) 11000 vld4_dup_p8 (const poly8_t * __a) 11001 { 11002 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __rv; 11003 __rv.__o = __builtin_neon_vld4_dupv8qi ((const __builtin_neon_qi *) __a); 11004 return __rv.__i; 11005 } 11006 11007 __extension__ static __inline poly16x4x4_t __attribute__ ((__always_inline__)) 11008 vld4_dup_p16 (const poly16_t * __a) 11009 { 11010 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __rv; 11011 __rv.__o = __builtin_neon_vld4_dupv4hi ((const __builtin_neon_hi *) __a); 11012 return __rv.__i; 11013 } 11014 11015 #ifdef __ARM_FEATURE_CRYPTO 11016 __extension__ static __inline poly64x1x4_t __attribute__ ((__always_inline__)) 11017 vld4_dup_p64 (const poly64_t * __a) 11018 { 11019 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __rv; 11020 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a); 11021 return __rv.__i; 11022 } 11023 11024 #endif 11025 __extension__ static __inline int64x1x4_t __attribute__ ((__always_inline__)) 11026 vld4_dup_s64 (const int64_t * __a) 11027 { 11028 union { int64x1x4_t __i; __builtin_neon_oi __o; } __rv; 11029 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a); 11030 return __rv.__i; 11031 } 11032 11033 __extension__ static __inline uint64x1x4_t __attribute__ ((__always_inline__)) 11034 vld4_dup_u64 (const uint64_t * __a) 11035 { 11036 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __rv; 11037 __rv.__o = __builtin_neon_vld4_dupdi ((const __builtin_neon_di *) __a); 11038 return __rv.__i; 11039 } 11040 11041 __extension__ static __inline void __attribute__ ((__always_inline__)) 11042 vst4_s8 (int8_t * __a, int8x8x4_t __b) 11043 { 11044 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11045 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o); 11046 } 11047 11048 __extension__ static __inline void __attribute__ ((__always_inline__)) 11049 vst4_s16 (int16_t * __a, int16x4x4_t __b) 11050 { 11051 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11052 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o); 11053 } 11054 11055 __extension__ static __inline void __attribute__ ((__always_inline__)) 11056 vst4_s32 (int32_t * __a, int32x2x4_t __b) 11057 { 11058 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11059 __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o); 11060 } 11061 11062 __extension__ static __inline void __attribute__ ((__always_inline__)) 11063 vst4_f32 (float32_t * __a, float32x2x4_t __b) 11064 { 11065 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11066 __builtin_neon_vst4v2sf ((__builtin_neon_sf *) __a, __bu.__o); 11067 } 11068 11069 __extension__ static __inline void __attribute__ ((__always_inline__)) 11070 vst4_u8 (uint8_t * __a, uint8x8x4_t __b) 11071 { 11072 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11073 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o); 11074 } 11075 11076 __extension__ static __inline void __attribute__ ((__always_inline__)) 11077 vst4_u16 (uint16_t * __a, uint16x4x4_t __b) 11078 { 11079 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11080 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o); 11081 } 11082 11083 __extension__ static __inline void __attribute__ ((__always_inline__)) 11084 vst4_u32 (uint32_t * __a, uint32x2x4_t __b) 11085 { 11086 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11087 __builtin_neon_vst4v2si ((__builtin_neon_si *) __a, __bu.__o); 11088 } 11089 11090 __extension__ static __inline void __attribute__ ((__always_inline__)) 11091 vst4_p8 (poly8_t * __a, poly8x8x4_t __b) 11092 { 11093 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11094 __builtin_neon_vst4v8qi ((__builtin_neon_qi *) __a, __bu.__o); 11095 } 11096 11097 __extension__ static __inline void __attribute__ ((__always_inline__)) 11098 vst4_p16 (poly16_t * __a, poly16x4x4_t __b) 11099 { 11100 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11101 __builtin_neon_vst4v4hi ((__builtin_neon_hi *) __a, __bu.__o); 11102 } 11103 11104 #ifdef __ARM_FEATURE_CRYPTO 11105 __extension__ static __inline void __attribute__ ((__always_inline__)) 11106 vst4_p64 (poly64_t * __a, poly64x1x4_t __b) 11107 { 11108 union { poly64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11109 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o); 11110 } 11111 11112 #endif 11113 __extension__ static __inline void __attribute__ ((__always_inline__)) 11114 vst4_s64 (int64_t * __a, int64x1x4_t __b) 11115 { 11116 union { int64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11117 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o); 11118 } 11119 11120 __extension__ static __inline void __attribute__ ((__always_inline__)) 11121 vst4_u64 (uint64_t * __a, uint64x1x4_t __b) 11122 { 11123 union { uint64x1x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11124 __builtin_neon_vst4di ((__builtin_neon_di *) __a, __bu.__o); 11125 } 11126 11127 __extension__ static __inline void __attribute__ ((__always_inline__)) 11128 vst4q_s8 (int8_t * __a, int8x16x4_t __b) 11129 { 11130 union { int8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 11131 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o); 11132 } 11133 11134 __extension__ static __inline void __attribute__ ((__always_inline__)) 11135 vst4q_s16 (int16_t * __a, int16x8x4_t __b) 11136 { 11137 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 11138 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o); 11139 } 11140 11141 __extension__ static __inline void __attribute__ ((__always_inline__)) 11142 vst4q_s32 (int32_t * __a, int32x4x4_t __b) 11143 { 11144 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 11145 __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o); 11146 } 11147 11148 __extension__ static __inline void __attribute__ ((__always_inline__)) 11149 vst4q_f32 (float32_t * __a, float32x4x4_t __b) 11150 { 11151 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 11152 __builtin_neon_vst4v4sf ((__builtin_neon_sf *) __a, __bu.__o); 11153 } 11154 11155 __extension__ static __inline void __attribute__ ((__always_inline__)) 11156 vst4q_u8 (uint8_t * __a, uint8x16x4_t __b) 11157 { 11158 union { uint8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 11159 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o); 11160 } 11161 11162 __extension__ static __inline void __attribute__ ((__always_inline__)) 11163 vst4q_u16 (uint16_t * __a, uint16x8x4_t __b) 11164 { 11165 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 11166 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o); 11167 } 11168 11169 __extension__ static __inline void __attribute__ ((__always_inline__)) 11170 vst4q_u32 (uint32_t * __a, uint32x4x4_t __b) 11171 { 11172 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 11173 __builtin_neon_vst4v4si ((__builtin_neon_si *) __a, __bu.__o); 11174 } 11175 11176 __extension__ static __inline void __attribute__ ((__always_inline__)) 11177 vst4q_p8 (poly8_t * __a, poly8x16x4_t __b) 11178 { 11179 union { poly8x16x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 11180 __builtin_neon_vst4v16qi ((__builtin_neon_qi *) __a, __bu.__o); 11181 } 11182 11183 __extension__ static __inline void __attribute__ ((__always_inline__)) 11184 vst4q_p16 (poly16_t * __a, poly16x8x4_t __b) 11185 { 11186 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 11187 __builtin_neon_vst4v8hi ((__builtin_neon_hi *) __a, __bu.__o); 11188 } 11189 11190 __extension__ static __inline void __attribute__ ((__always_inline__)) 11191 vst4_lane_s8 (int8_t * __a, int8x8x4_t __b, const int __c) 11192 { 11193 union { int8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11194 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c); 11195 } 11196 11197 __extension__ static __inline void __attribute__ ((__always_inline__)) 11198 vst4_lane_s16 (int16_t * __a, int16x4x4_t __b, const int __c) 11199 { 11200 union { int16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11201 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 11202 } 11203 11204 __extension__ static __inline void __attribute__ ((__always_inline__)) 11205 vst4_lane_s32 (int32_t * __a, int32x2x4_t __b, const int __c) 11206 { 11207 union { int32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11208 __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c); 11209 } 11210 11211 __extension__ static __inline void __attribute__ ((__always_inline__)) 11212 vst4_lane_f32 (float32_t * __a, float32x2x4_t __b, const int __c) 11213 { 11214 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11215 __builtin_neon_vst4_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c); 11216 } 11217 11218 __extension__ static __inline void __attribute__ ((__always_inline__)) 11219 vst4_lane_u8 (uint8_t * __a, uint8x8x4_t __b, const int __c) 11220 { 11221 union { uint8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11222 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c); 11223 } 11224 11225 __extension__ static __inline void __attribute__ ((__always_inline__)) 11226 vst4_lane_u16 (uint16_t * __a, uint16x4x4_t __b, const int __c) 11227 { 11228 union { uint16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11229 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 11230 } 11231 11232 __extension__ static __inline void __attribute__ ((__always_inline__)) 11233 vst4_lane_u32 (uint32_t * __a, uint32x2x4_t __b, const int __c) 11234 { 11235 union { uint32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11236 __builtin_neon_vst4_lanev2si ((__builtin_neon_si *) __a, __bu.__o, __c); 11237 } 11238 11239 __extension__ static __inline void __attribute__ ((__always_inline__)) 11240 vst4_lane_p8 (poly8_t * __a, poly8x8x4_t __b, const int __c) 11241 { 11242 union { poly8x8x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11243 __builtin_neon_vst4_lanev8qi ((__builtin_neon_qi *) __a, __bu.__o, __c); 11244 } 11245 11246 __extension__ static __inline void __attribute__ ((__always_inline__)) 11247 vst4_lane_p16 (poly16_t * __a, poly16x4x4_t __b, const int __c) 11248 { 11249 union { poly16x4x4_t __i; __builtin_neon_oi __o; } __bu = { __b }; 11250 __builtin_neon_vst4_lanev4hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 11251 } 11252 11253 __extension__ static __inline void __attribute__ ((__always_inline__)) 11254 vst4q_lane_s16 (int16_t * __a, int16x8x4_t __b, const int __c) 11255 { 11256 union { int16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 11257 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 11258 } 11259 11260 __extension__ static __inline void __attribute__ ((__always_inline__)) 11261 vst4q_lane_s32 (int32_t * __a, int32x4x4_t __b, const int __c) 11262 { 11263 union { int32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 11264 __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c); 11265 } 11266 11267 __extension__ static __inline void __attribute__ ((__always_inline__)) 11268 vst4q_lane_f32 (float32_t * __a, float32x4x4_t __b, const int __c) 11269 { 11270 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 11271 __builtin_neon_vst4_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c); 11272 } 11273 11274 __extension__ static __inline void __attribute__ ((__always_inline__)) 11275 vst4q_lane_u16 (uint16_t * __a, uint16x8x4_t __b, const int __c) 11276 { 11277 union { uint16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 11278 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 11279 } 11280 11281 __extension__ static __inline void __attribute__ ((__always_inline__)) 11282 vst4q_lane_u32 (uint32_t * __a, uint32x4x4_t __b, const int __c) 11283 { 11284 union { uint32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 11285 __builtin_neon_vst4_lanev4si ((__builtin_neon_si *) __a, __bu.__o, __c); 11286 } 11287 11288 __extension__ static __inline void __attribute__ ((__always_inline__)) 11289 vst4q_lane_p16 (poly16_t * __a, poly16x8x4_t __b, const int __c) 11290 { 11291 union { poly16x8x4_t __i; __builtin_neon_xi __o; } __bu = { __b }; 11292 __builtin_neon_vst4_lanev8hi ((__builtin_neon_hi *) __a, __bu.__o, __c); 11293 } 11294 11295 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 11296 vand_s8 (int8x8_t __a, int8x8_t __b) 11297 { 11298 return (int8x8_t)__builtin_neon_vandv8qi (__a, __b, 1); 11299 } 11300 11301 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 11302 vand_s16 (int16x4_t __a, int16x4_t __b) 11303 { 11304 return (int16x4_t)__builtin_neon_vandv4hi (__a, __b, 1); 11305 } 11306 11307 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 11308 vand_s32 (int32x2_t __a, int32x2_t __b) 11309 { 11310 return (int32x2_t)__builtin_neon_vandv2si (__a, __b, 1); 11311 } 11312 11313 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 11314 vand_u8 (uint8x8_t __a, uint8x8_t __b) 11315 { 11316 return (uint8x8_t)__builtin_neon_vandv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 11317 } 11318 11319 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 11320 vand_u16 (uint16x4_t __a, uint16x4_t __b) 11321 { 11322 return (uint16x4_t)__builtin_neon_vandv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 11323 } 11324 11325 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 11326 vand_u32 (uint32x2_t __a, uint32x2_t __b) 11327 { 11328 return (uint32x2_t)__builtin_neon_vandv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 11329 } 11330 11331 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 11332 vand_s64 (int64x1_t __a, int64x1_t __b) 11333 { 11334 return (int64x1_t)__builtin_neon_vanddi (__a, __b, 1); 11335 } 11336 11337 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 11338 vand_u64 (uint64x1_t __a, uint64x1_t __b) 11339 { 11340 return (uint64x1_t)__builtin_neon_vanddi ((int64x1_t) __a, (int64x1_t) __b, 0); 11341 } 11342 11343 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 11344 vandq_s8 (int8x16_t __a, int8x16_t __b) 11345 { 11346 return (int8x16_t)__builtin_neon_vandv16qi (__a, __b, 1); 11347 } 11348 11349 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 11350 vandq_s16 (int16x8_t __a, int16x8_t __b) 11351 { 11352 return (int16x8_t)__builtin_neon_vandv8hi (__a, __b, 1); 11353 } 11354 11355 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 11356 vandq_s32 (int32x4_t __a, int32x4_t __b) 11357 { 11358 return (int32x4_t)__builtin_neon_vandv4si (__a, __b, 1); 11359 } 11360 11361 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 11362 vandq_s64 (int64x2_t __a, int64x2_t __b) 11363 { 11364 return (int64x2_t)__builtin_neon_vandv2di (__a, __b, 1); 11365 } 11366 11367 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 11368 vandq_u8 (uint8x16_t __a, uint8x16_t __b) 11369 { 11370 return (uint8x16_t)__builtin_neon_vandv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 11371 } 11372 11373 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 11374 vandq_u16 (uint16x8_t __a, uint16x8_t __b) 11375 { 11376 return (uint16x8_t)__builtin_neon_vandv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 11377 } 11378 11379 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 11380 vandq_u32 (uint32x4_t __a, uint32x4_t __b) 11381 { 11382 return (uint32x4_t)__builtin_neon_vandv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 11383 } 11384 11385 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 11386 vandq_u64 (uint64x2_t __a, uint64x2_t __b) 11387 { 11388 return (uint64x2_t)__builtin_neon_vandv2di ((int64x2_t) __a, (int64x2_t) __b, 0); 11389 } 11390 11391 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 11392 vorr_s8 (int8x8_t __a, int8x8_t __b) 11393 { 11394 return (int8x8_t)__builtin_neon_vorrv8qi (__a, __b, 1); 11395 } 11396 11397 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 11398 vorr_s16 (int16x4_t __a, int16x4_t __b) 11399 { 11400 return (int16x4_t)__builtin_neon_vorrv4hi (__a, __b, 1); 11401 } 11402 11403 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 11404 vorr_s32 (int32x2_t __a, int32x2_t __b) 11405 { 11406 return (int32x2_t)__builtin_neon_vorrv2si (__a, __b, 1); 11407 } 11408 11409 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 11410 vorr_u8 (uint8x8_t __a, uint8x8_t __b) 11411 { 11412 return (uint8x8_t)__builtin_neon_vorrv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 11413 } 11414 11415 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 11416 vorr_u16 (uint16x4_t __a, uint16x4_t __b) 11417 { 11418 return (uint16x4_t)__builtin_neon_vorrv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 11419 } 11420 11421 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 11422 vorr_u32 (uint32x2_t __a, uint32x2_t __b) 11423 { 11424 return (uint32x2_t)__builtin_neon_vorrv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 11425 } 11426 11427 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 11428 vorr_s64 (int64x1_t __a, int64x1_t __b) 11429 { 11430 return (int64x1_t)__builtin_neon_vorrdi (__a, __b, 1); 11431 } 11432 11433 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 11434 vorr_u64 (uint64x1_t __a, uint64x1_t __b) 11435 { 11436 return (uint64x1_t)__builtin_neon_vorrdi ((int64x1_t) __a, (int64x1_t) __b, 0); 11437 } 11438 11439 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 11440 vorrq_s8 (int8x16_t __a, int8x16_t __b) 11441 { 11442 return (int8x16_t)__builtin_neon_vorrv16qi (__a, __b, 1); 11443 } 11444 11445 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 11446 vorrq_s16 (int16x8_t __a, int16x8_t __b) 11447 { 11448 return (int16x8_t)__builtin_neon_vorrv8hi (__a, __b, 1); 11449 } 11450 11451 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 11452 vorrq_s32 (int32x4_t __a, int32x4_t __b) 11453 { 11454 return (int32x4_t)__builtin_neon_vorrv4si (__a, __b, 1); 11455 } 11456 11457 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 11458 vorrq_s64 (int64x2_t __a, int64x2_t __b) 11459 { 11460 return (int64x2_t)__builtin_neon_vorrv2di (__a, __b, 1); 11461 } 11462 11463 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 11464 vorrq_u8 (uint8x16_t __a, uint8x16_t __b) 11465 { 11466 return (uint8x16_t)__builtin_neon_vorrv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 11467 } 11468 11469 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 11470 vorrq_u16 (uint16x8_t __a, uint16x8_t __b) 11471 { 11472 return (uint16x8_t)__builtin_neon_vorrv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 11473 } 11474 11475 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 11476 vorrq_u32 (uint32x4_t __a, uint32x4_t __b) 11477 { 11478 return (uint32x4_t)__builtin_neon_vorrv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 11479 } 11480 11481 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 11482 vorrq_u64 (uint64x2_t __a, uint64x2_t __b) 11483 { 11484 return (uint64x2_t)__builtin_neon_vorrv2di ((int64x2_t) __a, (int64x2_t) __b, 0); 11485 } 11486 11487 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 11488 veor_s8 (int8x8_t __a, int8x8_t __b) 11489 { 11490 return (int8x8_t)__builtin_neon_veorv8qi (__a, __b, 1); 11491 } 11492 11493 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 11494 veor_s16 (int16x4_t __a, int16x4_t __b) 11495 { 11496 return (int16x4_t)__builtin_neon_veorv4hi (__a, __b, 1); 11497 } 11498 11499 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 11500 veor_s32 (int32x2_t __a, int32x2_t __b) 11501 { 11502 return (int32x2_t)__builtin_neon_veorv2si (__a, __b, 1); 11503 } 11504 11505 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 11506 veor_u8 (uint8x8_t __a, uint8x8_t __b) 11507 { 11508 return (uint8x8_t)__builtin_neon_veorv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 11509 } 11510 11511 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 11512 veor_u16 (uint16x4_t __a, uint16x4_t __b) 11513 { 11514 return (uint16x4_t)__builtin_neon_veorv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 11515 } 11516 11517 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 11518 veor_u32 (uint32x2_t __a, uint32x2_t __b) 11519 { 11520 return (uint32x2_t)__builtin_neon_veorv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 11521 } 11522 11523 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 11524 veor_s64 (int64x1_t __a, int64x1_t __b) 11525 { 11526 return (int64x1_t)__builtin_neon_veordi (__a, __b, 1); 11527 } 11528 11529 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 11530 veor_u64 (uint64x1_t __a, uint64x1_t __b) 11531 { 11532 return (uint64x1_t)__builtin_neon_veordi ((int64x1_t) __a, (int64x1_t) __b, 0); 11533 } 11534 11535 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 11536 veorq_s8 (int8x16_t __a, int8x16_t __b) 11537 { 11538 return (int8x16_t)__builtin_neon_veorv16qi (__a, __b, 1); 11539 } 11540 11541 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 11542 veorq_s16 (int16x8_t __a, int16x8_t __b) 11543 { 11544 return (int16x8_t)__builtin_neon_veorv8hi (__a, __b, 1); 11545 } 11546 11547 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 11548 veorq_s32 (int32x4_t __a, int32x4_t __b) 11549 { 11550 return (int32x4_t)__builtin_neon_veorv4si (__a, __b, 1); 11551 } 11552 11553 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 11554 veorq_s64 (int64x2_t __a, int64x2_t __b) 11555 { 11556 return (int64x2_t)__builtin_neon_veorv2di (__a, __b, 1); 11557 } 11558 11559 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 11560 veorq_u8 (uint8x16_t __a, uint8x16_t __b) 11561 { 11562 return (uint8x16_t)__builtin_neon_veorv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 11563 } 11564 11565 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 11566 veorq_u16 (uint16x8_t __a, uint16x8_t __b) 11567 { 11568 return (uint16x8_t)__builtin_neon_veorv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 11569 } 11570 11571 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 11572 veorq_u32 (uint32x4_t __a, uint32x4_t __b) 11573 { 11574 return (uint32x4_t)__builtin_neon_veorv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 11575 } 11576 11577 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 11578 veorq_u64 (uint64x2_t __a, uint64x2_t __b) 11579 { 11580 return (uint64x2_t)__builtin_neon_veorv2di ((int64x2_t) __a, (int64x2_t) __b, 0); 11581 } 11582 11583 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 11584 vbic_s8 (int8x8_t __a, int8x8_t __b) 11585 { 11586 return (int8x8_t)__builtin_neon_vbicv8qi (__a, __b, 1); 11587 } 11588 11589 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 11590 vbic_s16 (int16x4_t __a, int16x4_t __b) 11591 { 11592 return (int16x4_t)__builtin_neon_vbicv4hi (__a, __b, 1); 11593 } 11594 11595 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 11596 vbic_s32 (int32x2_t __a, int32x2_t __b) 11597 { 11598 return (int32x2_t)__builtin_neon_vbicv2si (__a, __b, 1); 11599 } 11600 11601 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 11602 vbic_u8 (uint8x8_t __a, uint8x8_t __b) 11603 { 11604 return (uint8x8_t)__builtin_neon_vbicv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 11605 } 11606 11607 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 11608 vbic_u16 (uint16x4_t __a, uint16x4_t __b) 11609 { 11610 return (uint16x4_t)__builtin_neon_vbicv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 11611 } 11612 11613 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 11614 vbic_u32 (uint32x2_t __a, uint32x2_t __b) 11615 { 11616 return (uint32x2_t)__builtin_neon_vbicv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 11617 } 11618 11619 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 11620 vbic_s64 (int64x1_t __a, int64x1_t __b) 11621 { 11622 return (int64x1_t)__builtin_neon_vbicdi (__a, __b, 1); 11623 } 11624 11625 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 11626 vbic_u64 (uint64x1_t __a, uint64x1_t __b) 11627 { 11628 return (uint64x1_t)__builtin_neon_vbicdi ((int64x1_t) __a, (int64x1_t) __b, 0); 11629 } 11630 11631 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 11632 vbicq_s8 (int8x16_t __a, int8x16_t __b) 11633 { 11634 return (int8x16_t)__builtin_neon_vbicv16qi (__a, __b, 1); 11635 } 11636 11637 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 11638 vbicq_s16 (int16x8_t __a, int16x8_t __b) 11639 { 11640 return (int16x8_t)__builtin_neon_vbicv8hi (__a, __b, 1); 11641 } 11642 11643 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 11644 vbicq_s32 (int32x4_t __a, int32x4_t __b) 11645 { 11646 return (int32x4_t)__builtin_neon_vbicv4si (__a, __b, 1); 11647 } 11648 11649 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 11650 vbicq_s64 (int64x2_t __a, int64x2_t __b) 11651 { 11652 return (int64x2_t)__builtin_neon_vbicv2di (__a, __b, 1); 11653 } 11654 11655 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 11656 vbicq_u8 (uint8x16_t __a, uint8x16_t __b) 11657 { 11658 return (uint8x16_t)__builtin_neon_vbicv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 11659 } 11660 11661 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 11662 vbicq_u16 (uint16x8_t __a, uint16x8_t __b) 11663 { 11664 return (uint16x8_t)__builtin_neon_vbicv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 11665 } 11666 11667 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 11668 vbicq_u32 (uint32x4_t __a, uint32x4_t __b) 11669 { 11670 return (uint32x4_t)__builtin_neon_vbicv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 11671 } 11672 11673 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 11674 vbicq_u64 (uint64x2_t __a, uint64x2_t __b) 11675 { 11676 return (uint64x2_t)__builtin_neon_vbicv2di ((int64x2_t) __a, (int64x2_t) __b, 0); 11677 } 11678 11679 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 11680 vorn_s8 (int8x8_t __a, int8x8_t __b) 11681 { 11682 return (int8x8_t)__builtin_neon_vornv8qi (__a, __b, 1); 11683 } 11684 11685 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 11686 vorn_s16 (int16x4_t __a, int16x4_t __b) 11687 { 11688 return (int16x4_t)__builtin_neon_vornv4hi (__a, __b, 1); 11689 } 11690 11691 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 11692 vorn_s32 (int32x2_t __a, int32x2_t __b) 11693 { 11694 return (int32x2_t)__builtin_neon_vornv2si (__a, __b, 1); 11695 } 11696 11697 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 11698 vorn_u8 (uint8x8_t __a, uint8x8_t __b) 11699 { 11700 return (uint8x8_t)__builtin_neon_vornv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 11701 } 11702 11703 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 11704 vorn_u16 (uint16x4_t __a, uint16x4_t __b) 11705 { 11706 return (uint16x4_t)__builtin_neon_vornv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 11707 } 11708 11709 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 11710 vorn_u32 (uint32x2_t __a, uint32x2_t __b) 11711 { 11712 return (uint32x2_t)__builtin_neon_vornv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 11713 } 11714 11715 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 11716 vorn_s64 (int64x1_t __a, int64x1_t __b) 11717 { 11718 return (int64x1_t)__builtin_neon_vorndi (__a, __b, 1); 11719 } 11720 11721 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 11722 vorn_u64 (uint64x1_t __a, uint64x1_t __b) 11723 { 11724 return (uint64x1_t)__builtin_neon_vorndi ((int64x1_t) __a, (int64x1_t) __b, 0); 11725 } 11726 11727 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 11728 vornq_s8 (int8x16_t __a, int8x16_t __b) 11729 { 11730 return (int8x16_t)__builtin_neon_vornv16qi (__a, __b, 1); 11731 } 11732 11733 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 11734 vornq_s16 (int16x8_t __a, int16x8_t __b) 11735 { 11736 return (int16x8_t)__builtin_neon_vornv8hi (__a, __b, 1); 11737 } 11738 11739 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 11740 vornq_s32 (int32x4_t __a, int32x4_t __b) 11741 { 11742 return (int32x4_t)__builtin_neon_vornv4si (__a, __b, 1); 11743 } 11744 11745 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 11746 vornq_s64 (int64x2_t __a, int64x2_t __b) 11747 { 11748 return (int64x2_t)__builtin_neon_vornv2di (__a, __b, 1); 11749 } 11750 11751 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 11752 vornq_u8 (uint8x16_t __a, uint8x16_t __b) 11753 { 11754 return (uint8x16_t)__builtin_neon_vornv16qi ((int8x16_t) __a, (int8x16_t) __b, 0); 11755 } 11756 11757 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 11758 vornq_u16 (uint16x8_t __a, uint16x8_t __b) 11759 { 11760 return (uint16x8_t)__builtin_neon_vornv8hi ((int16x8_t) __a, (int16x8_t) __b, 0); 11761 } 11762 11763 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 11764 vornq_u32 (uint32x4_t __a, uint32x4_t __b) 11765 { 11766 return (uint32x4_t)__builtin_neon_vornv4si ((int32x4_t) __a, (int32x4_t) __b, 0); 11767 } 11768 11769 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 11770 vornq_u64 (uint64x2_t __a, uint64x2_t __b) 11771 { 11772 return (uint64x2_t)__builtin_neon_vornv2di ((int64x2_t) __a, (int64x2_t) __b, 0); 11773 } 11774 11775 11776 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 11777 vreinterpret_p8_p16 (poly16x4_t __a) 11778 { 11779 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a); 11780 } 11781 11782 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 11783 vreinterpret_p8_f32 (float32x2_t __a) 11784 { 11785 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv2sf (__a); 11786 } 11787 11788 #ifdef __ARM_FEATURE_CRYPTO 11789 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 11790 vreinterpret_p8_p64 (poly64x1_t __a) 11791 { 11792 return (poly8x8_t)__builtin_neon_vreinterpretv8qidi (__a); 11793 } 11794 11795 #endif 11796 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 11797 vreinterpret_p8_s64 (int64x1_t __a) 11798 { 11799 return (poly8x8_t)__builtin_neon_vreinterpretv8qidi (__a); 11800 } 11801 11802 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 11803 vreinterpret_p8_u64 (uint64x1_t __a) 11804 { 11805 return (poly8x8_t)__builtin_neon_vreinterpretv8qidi ((int64x1_t) __a); 11806 } 11807 11808 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 11809 vreinterpret_p8_s8 (int8x8_t __a) 11810 { 11811 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv8qi (__a); 11812 } 11813 11814 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 11815 vreinterpret_p8_s16 (int16x4_t __a) 11816 { 11817 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv4hi (__a); 11818 } 11819 11820 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 11821 vreinterpret_p8_s32 (int32x2_t __a) 11822 { 11823 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv2si (__a); 11824 } 11825 11826 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 11827 vreinterpret_p8_u8 (uint8x8_t __a) 11828 { 11829 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a); 11830 } 11831 11832 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 11833 vreinterpret_p8_u16 (uint16x4_t __a) 11834 { 11835 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a); 11836 } 11837 11838 __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) 11839 vreinterpret_p8_u32 (uint32x2_t __a) 11840 { 11841 return (poly8x8_t)__builtin_neon_vreinterpretv8qiv2si ((int32x2_t) __a); 11842 } 11843 11844 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 11845 vreinterpret_p16_p8 (poly8x8_t __a) 11846 { 11847 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a); 11848 } 11849 11850 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 11851 vreinterpret_p16_f32 (float32x2_t __a) 11852 { 11853 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv2sf (__a); 11854 } 11855 11856 #ifdef __ARM_FEATURE_CRYPTO 11857 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 11858 vreinterpret_p16_p64 (poly64x1_t __a) 11859 { 11860 return (poly16x4_t)__builtin_neon_vreinterpretv4hidi (__a); 11861 } 11862 11863 #endif 11864 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 11865 vreinterpret_p16_s64 (int64x1_t __a) 11866 { 11867 return (poly16x4_t)__builtin_neon_vreinterpretv4hidi (__a); 11868 } 11869 11870 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 11871 vreinterpret_p16_u64 (uint64x1_t __a) 11872 { 11873 return (poly16x4_t)__builtin_neon_vreinterpretv4hidi ((int64x1_t) __a); 11874 } 11875 11876 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 11877 vreinterpret_p16_s8 (int8x8_t __a) 11878 { 11879 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv8qi (__a); 11880 } 11881 11882 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 11883 vreinterpret_p16_s16 (int16x4_t __a) 11884 { 11885 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv4hi (__a); 11886 } 11887 11888 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 11889 vreinterpret_p16_s32 (int32x2_t __a) 11890 { 11891 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv2si (__a); 11892 } 11893 11894 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 11895 vreinterpret_p16_u8 (uint8x8_t __a) 11896 { 11897 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a); 11898 } 11899 11900 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 11901 vreinterpret_p16_u16 (uint16x4_t __a) 11902 { 11903 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a); 11904 } 11905 11906 __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) 11907 vreinterpret_p16_u32 (uint32x2_t __a) 11908 { 11909 return (poly16x4_t)__builtin_neon_vreinterpretv4hiv2si ((int32x2_t) __a); 11910 } 11911 11912 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 11913 vreinterpret_f32_p8 (poly8x8_t __a) 11914 { 11915 return (float32x2_t)__builtin_neon_vreinterpretv2sfv8qi ((int8x8_t) __a); 11916 } 11917 11918 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 11919 vreinterpret_f32_p16 (poly16x4_t __a) 11920 { 11921 return (float32x2_t)__builtin_neon_vreinterpretv2sfv4hi ((int16x4_t) __a); 11922 } 11923 11924 #ifdef __ARM_FEATURE_CRYPTO 11925 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 11926 vreinterpret_f32_p64 (poly64x1_t __a) 11927 { 11928 return (float32x2_t)__builtin_neon_vreinterpretv2sfdi (__a); 11929 } 11930 11931 #endif 11932 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 11933 vreinterpret_f32_s64 (int64x1_t __a) 11934 { 11935 return (float32x2_t)__builtin_neon_vreinterpretv2sfdi (__a); 11936 } 11937 11938 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 11939 vreinterpret_f32_u64 (uint64x1_t __a) 11940 { 11941 return (float32x2_t)__builtin_neon_vreinterpretv2sfdi ((int64x1_t) __a); 11942 } 11943 11944 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 11945 vreinterpret_f32_s8 (int8x8_t __a) 11946 { 11947 return (float32x2_t)__builtin_neon_vreinterpretv2sfv8qi (__a); 11948 } 11949 11950 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 11951 vreinterpret_f32_s16 (int16x4_t __a) 11952 { 11953 return (float32x2_t)__builtin_neon_vreinterpretv2sfv4hi (__a); 11954 } 11955 11956 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 11957 vreinterpret_f32_s32 (int32x2_t __a) 11958 { 11959 return (float32x2_t)__builtin_neon_vreinterpretv2sfv2si (__a); 11960 } 11961 11962 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 11963 vreinterpret_f32_u8 (uint8x8_t __a) 11964 { 11965 return (float32x2_t)__builtin_neon_vreinterpretv2sfv8qi ((int8x8_t) __a); 11966 } 11967 11968 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 11969 vreinterpret_f32_u16 (uint16x4_t __a) 11970 { 11971 return (float32x2_t)__builtin_neon_vreinterpretv2sfv4hi ((int16x4_t) __a); 11972 } 11973 11974 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 11975 vreinterpret_f32_u32 (uint32x2_t __a) 11976 { 11977 return (float32x2_t)__builtin_neon_vreinterpretv2sfv2si ((int32x2_t) __a); 11978 } 11979 11980 #ifdef __ARM_FEATURE_CRYPTO 11981 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 11982 vreinterpret_p64_p8 (poly8x8_t __a) 11983 { 11984 return (poly64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a); 11985 } 11986 11987 #endif 11988 #ifdef __ARM_FEATURE_CRYPTO 11989 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 11990 vreinterpret_p64_p16 (poly16x4_t __a) 11991 { 11992 return (poly64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a); 11993 } 11994 11995 #endif 11996 #ifdef __ARM_FEATURE_CRYPTO 11997 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 11998 vreinterpret_p64_f32 (float32x2_t __a) 11999 { 12000 return (poly64x1_t)__builtin_neon_vreinterpretdiv2sf (__a); 12001 } 12002 12003 #endif 12004 #ifdef __ARM_FEATURE_CRYPTO 12005 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 12006 vreinterpret_p64_s64 (int64x1_t __a) 12007 { 12008 return (poly64x1_t)__builtin_neon_vreinterpretdidi (__a); 12009 } 12010 12011 #endif 12012 #ifdef __ARM_FEATURE_CRYPTO 12013 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 12014 vreinterpret_p64_u64 (uint64x1_t __a) 12015 { 12016 return (poly64x1_t)__builtin_neon_vreinterpretdidi ((int64x1_t) __a); 12017 } 12018 12019 #endif 12020 #ifdef __ARM_FEATURE_CRYPTO 12021 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 12022 vreinterpret_p64_s8 (int8x8_t __a) 12023 { 12024 return (poly64x1_t)__builtin_neon_vreinterpretdiv8qi (__a); 12025 } 12026 12027 #endif 12028 #ifdef __ARM_FEATURE_CRYPTO 12029 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 12030 vreinterpret_p64_s16 (int16x4_t __a) 12031 { 12032 return (poly64x1_t)__builtin_neon_vreinterpretdiv4hi (__a); 12033 } 12034 12035 #endif 12036 #ifdef __ARM_FEATURE_CRYPTO 12037 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 12038 vreinterpret_p64_s32 (int32x2_t __a) 12039 { 12040 return (poly64x1_t)__builtin_neon_vreinterpretdiv2si (__a); 12041 } 12042 12043 #endif 12044 #ifdef __ARM_FEATURE_CRYPTO 12045 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 12046 vreinterpret_p64_u8 (uint8x8_t __a) 12047 { 12048 return (poly64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a); 12049 } 12050 12051 #endif 12052 #ifdef __ARM_FEATURE_CRYPTO 12053 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 12054 vreinterpret_p64_u16 (uint16x4_t __a) 12055 { 12056 return (poly64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a); 12057 } 12058 12059 #endif 12060 #ifdef __ARM_FEATURE_CRYPTO 12061 __extension__ static __inline poly64x1_t __attribute__ ((__always_inline__)) 12062 vreinterpret_p64_u32 (uint32x2_t __a) 12063 { 12064 return (poly64x1_t)__builtin_neon_vreinterpretdiv2si ((int32x2_t) __a); 12065 } 12066 12067 #endif 12068 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 12069 vreinterpret_s64_p8 (poly8x8_t __a) 12070 { 12071 return (int64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a); 12072 } 12073 12074 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 12075 vreinterpret_s64_p16 (poly16x4_t __a) 12076 { 12077 return (int64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a); 12078 } 12079 12080 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 12081 vreinterpret_s64_f32 (float32x2_t __a) 12082 { 12083 return (int64x1_t)__builtin_neon_vreinterpretdiv2sf (__a); 12084 } 12085 12086 #ifdef __ARM_FEATURE_CRYPTO 12087 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 12088 vreinterpret_s64_p64 (poly64x1_t __a) 12089 { 12090 return (int64x1_t)__builtin_neon_vreinterpretdidi (__a); 12091 } 12092 12093 #endif 12094 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 12095 vreinterpret_s64_u64 (uint64x1_t __a) 12096 { 12097 return (int64x1_t)__builtin_neon_vreinterpretdidi ((int64x1_t) __a); 12098 } 12099 12100 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 12101 vreinterpret_s64_s8 (int8x8_t __a) 12102 { 12103 return (int64x1_t)__builtin_neon_vreinterpretdiv8qi (__a); 12104 } 12105 12106 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 12107 vreinterpret_s64_s16 (int16x4_t __a) 12108 { 12109 return (int64x1_t)__builtin_neon_vreinterpretdiv4hi (__a); 12110 } 12111 12112 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 12113 vreinterpret_s64_s32 (int32x2_t __a) 12114 { 12115 return (int64x1_t)__builtin_neon_vreinterpretdiv2si (__a); 12116 } 12117 12118 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 12119 vreinterpret_s64_u8 (uint8x8_t __a) 12120 { 12121 return (int64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a); 12122 } 12123 12124 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 12125 vreinterpret_s64_u16 (uint16x4_t __a) 12126 { 12127 return (int64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a); 12128 } 12129 12130 __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 12131 vreinterpret_s64_u32 (uint32x2_t __a) 12132 { 12133 return (int64x1_t)__builtin_neon_vreinterpretdiv2si ((int32x2_t) __a); 12134 } 12135 12136 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 12137 vreinterpret_u64_p8 (poly8x8_t __a) 12138 { 12139 return (uint64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a); 12140 } 12141 12142 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 12143 vreinterpret_u64_p16 (poly16x4_t __a) 12144 { 12145 return (uint64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a); 12146 } 12147 12148 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 12149 vreinterpret_u64_f32 (float32x2_t __a) 12150 { 12151 return (uint64x1_t)__builtin_neon_vreinterpretdiv2sf (__a); 12152 } 12153 12154 #ifdef __ARM_FEATURE_CRYPTO 12155 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 12156 vreinterpret_u64_p64 (poly64x1_t __a) 12157 { 12158 return (uint64x1_t)__builtin_neon_vreinterpretdidi (__a); 12159 } 12160 12161 #endif 12162 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 12163 vreinterpret_u64_s64 (int64x1_t __a) 12164 { 12165 return (uint64x1_t)__builtin_neon_vreinterpretdidi (__a); 12166 } 12167 12168 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 12169 vreinterpret_u64_s8 (int8x8_t __a) 12170 { 12171 return (uint64x1_t)__builtin_neon_vreinterpretdiv8qi (__a); 12172 } 12173 12174 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 12175 vreinterpret_u64_s16 (int16x4_t __a) 12176 { 12177 return (uint64x1_t)__builtin_neon_vreinterpretdiv4hi (__a); 12178 } 12179 12180 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 12181 vreinterpret_u64_s32 (int32x2_t __a) 12182 { 12183 return (uint64x1_t)__builtin_neon_vreinterpretdiv2si (__a); 12184 } 12185 12186 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 12187 vreinterpret_u64_u8 (uint8x8_t __a) 12188 { 12189 return (uint64x1_t)__builtin_neon_vreinterpretdiv8qi ((int8x8_t) __a); 12190 } 12191 12192 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 12193 vreinterpret_u64_u16 (uint16x4_t __a) 12194 { 12195 return (uint64x1_t)__builtin_neon_vreinterpretdiv4hi ((int16x4_t) __a); 12196 } 12197 12198 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 12199 vreinterpret_u64_u32 (uint32x2_t __a) 12200 { 12201 return (uint64x1_t)__builtin_neon_vreinterpretdiv2si ((int32x2_t) __a); 12202 } 12203 12204 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 12205 vreinterpret_s8_p8 (poly8x8_t __a) 12206 { 12207 return (int8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a); 12208 } 12209 12210 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 12211 vreinterpret_s8_p16 (poly16x4_t __a) 12212 { 12213 return (int8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a); 12214 } 12215 12216 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 12217 vreinterpret_s8_f32 (float32x2_t __a) 12218 { 12219 return (int8x8_t)__builtin_neon_vreinterpretv8qiv2sf (__a); 12220 } 12221 12222 #ifdef __ARM_FEATURE_CRYPTO 12223 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 12224 vreinterpret_s8_p64 (poly64x1_t __a) 12225 { 12226 return (int8x8_t)__builtin_neon_vreinterpretv8qidi (__a); 12227 } 12228 12229 #endif 12230 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 12231 vreinterpret_s8_s64 (int64x1_t __a) 12232 { 12233 return (int8x8_t)__builtin_neon_vreinterpretv8qidi (__a); 12234 } 12235 12236 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 12237 vreinterpret_s8_u64 (uint64x1_t __a) 12238 { 12239 return (int8x8_t)__builtin_neon_vreinterpretv8qidi ((int64x1_t) __a); 12240 } 12241 12242 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 12243 vreinterpret_s8_s16 (int16x4_t __a) 12244 { 12245 return (int8x8_t)__builtin_neon_vreinterpretv8qiv4hi (__a); 12246 } 12247 12248 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 12249 vreinterpret_s8_s32 (int32x2_t __a) 12250 { 12251 return (int8x8_t)__builtin_neon_vreinterpretv8qiv2si (__a); 12252 } 12253 12254 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 12255 vreinterpret_s8_u8 (uint8x8_t __a) 12256 { 12257 return (int8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a); 12258 } 12259 12260 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 12261 vreinterpret_s8_u16 (uint16x4_t __a) 12262 { 12263 return (int8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a); 12264 } 12265 12266 __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 12267 vreinterpret_s8_u32 (uint32x2_t __a) 12268 { 12269 return (int8x8_t)__builtin_neon_vreinterpretv8qiv2si ((int32x2_t) __a); 12270 } 12271 12272 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 12273 vreinterpret_s16_p8 (poly8x8_t __a) 12274 { 12275 return (int16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a); 12276 } 12277 12278 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 12279 vreinterpret_s16_p16 (poly16x4_t __a) 12280 { 12281 return (int16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a); 12282 } 12283 12284 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 12285 vreinterpret_s16_f32 (float32x2_t __a) 12286 { 12287 return (int16x4_t)__builtin_neon_vreinterpretv4hiv2sf (__a); 12288 } 12289 12290 #ifdef __ARM_FEATURE_CRYPTO 12291 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 12292 vreinterpret_s16_p64 (poly64x1_t __a) 12293 { 12294 return (int16x4_t)__builtin_neon_vreinterpretv4hidi (__a); 12295 } 12296 12297 #endif 12298 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 12299 vreinterpret_s16_s64 (int64x1_t __a) 12300 { 12301 return (int16x4_t)__builtin_neon_vreinterpretv4hidi (__a); 12302 } 12303 12304 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 12305 vreinterpret_s16_u64 (uint64x1_t __a) 12306 { 12307 return (int16x4_t)__builtin_neon_vreinterpretv4hidi ((int64x1_t) __a); 12308 } 12309 12310 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 12311 vreinterpret_s16_s8 (int8x8_t __a) 12312 { 12313 return (int16x4_t)__builtin_neon_vreinterpretv4hiv8qi (__a); 12314 } 12315 12316 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 12317 vreinterpret_s16_s32 (int32x2_t __a) 12318 { 12319 return (int16x4_t)__builtin_neon_vreinterpretv4hiv2si (__a); 12320 } 12321 12322 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 12323 vreinterpret_s16_u8 (uint8x8_t __a) 12324 { 12325 return (int16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a); 12326 } 12327 12328 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 12329 vreinterpret_s16_u16 (uint16x4_t __a) 12330 { 12331 return (int16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a); 12332 } 12333 12334 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) 12335 vreinterpret_s16_u32 (uint32x2_t __a) 12336 { 12337 return (int16x4_t)__builtin_neon_vreinterpretv4hiv2si ((int32x2_t) __a); 12338 } 12339 12340 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 12341 vreinterpret_s32_p8 (poly8x8_t __a) 12342 { 12343 return (int32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a); 12344 } 12345 12346 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 12347 vreinterpret_s32_p16 (poly16x4_t __a) 12348 { 12349 return (int32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a); 12350 } 12351 12352 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 12353 vreinterpret_s32_f32 (float32x2_t __a) 12354 { 12355 return (int32x2_t)__builtin_neon_vreinterpretv2siv2sf (__a); 12356 } 12357 12358 #ifdef __ARM_FEATURE_CRYPTO 12359 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 12360 vreinterpret_s32_p64 (poly64x1_t __a) 12361 { 12362 return (int32x2_t)__builtin_neon_vreinterpretv2sidi (__a); 12363 } 12364 12365 #endif 12366 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 12367 vreinterpret_s32_s64 (int64x1_t __a) 12368 { 12369 return (int32x2_t)__builtin_neon_vreinterpretv2sidi (__a); 12370 } 12371 12372 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 12373 vreinterpret_s32_u64 (uint64x1_t __a) 12374 { 12375 return (int32x2_t)__builtin_neon_vreinterpretv2sidi ((int64x1_t) __a); 12376 } 12377 12378 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 12379 vreinterpret_s32_s8 (int8x8_t __a) 12380 { 12381 return (int32x2_t)__builtin_neon_vreinterpretv2siv8qi (__a); 12382 } 12383 12384 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 12385 vreinterpret_s32_s16 (int16x4_t __a) 12386 { 12387 return (int32x2_t)__builtin_neon_vreinterpretv2siv4hi (__a); 12388 } 12389 12390 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 12391 vreinterpret_s32_u8 (uint8x8_t __a) 12392 { 12393 return (int32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a); 12394 } 12395 12396 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 12397 vreinterpret_s32_u16 (uint16x4_t __a) 12398 { 12399 return (int32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a); 12400 } 12401 12402 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) 12403 vreinterpret_s32_u32 (uint32x2_t __a) 12404 { 12405 return (int32x2_t)__builtin_neon_vreinterpretv2siv2si ((int32x2_t) __a); 12406 } 12407 12408 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 12409 vreinterpret_u8_p8 (poly8x8_t __a) 12410 { 12411 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv8qi ((int8x8_t) __a); 12412 } 12413 12414 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 12415 vreinterpret_u8_p16 (poly16x4_t __a) 12416 { 12417 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a); 12418 } 12419 12420 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 12421 vreinterpret_u8_f32 (float32x2_t __a) 12422 { 12423 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv2sf (__a); 12424 } 12425 12426 #ifdef __ARM_FEATURE_CRYPTO 12427 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 12428 vreinterpret_u8_p64 (poly64x1_t __a) 12429 { 12430 return (uint8x8_t)__builtin_neon_vreinterpretv8qidi (__a); 12431 } 12432 12433 #endif 12434 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 12435 vreinterpret_u8_s64 (int64x1_t __a) 12436 { 12437 return (uint8x8_t)__builtin_neon_vreinterpretv8qidi (__a); 12438 } 12439 12440 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 12441 vreinterpret_u8_u64 (uint64x1_t __a) 12442 { 12443 return (uint8x8_t)__builtin_neon_vreinterpretv8qidi ((int64x1_t) __a); 12444 } 12445 12446 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 12447 vreinterpret_u8_s8 (int8x8_t __a) 12448 { 12449 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv8qi (__a); 12450 } 12451 12452 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 12453 vreinterpret_u8_s16 (int16x4_t __a) 12454 { 12455 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv4hi (__a); 12456 } 12457 12458 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 12459 vreinterpret_u8_s32 (int32x2_t __a) 12460 { 12461 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv2si (__a); 12462 } 12463 12464 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 12465 vreinterpret_u8_u16 (uint16x4_t __a) 12466 { 12467 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv4hi ((int16x4_t) __a); 12468 } 12469 12470 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 12471 vreinterpret_u8_u32 (uint32x2_t __a) 12472 { 12473 return (uint8x8_t)__builtin_neon_vreinterpretv8qiv2si ((int32x2_t) __a); 12474 } 12475 12476 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 12477 vreinterpret_u16_p8 (poly8x8_t __a) 12478 { 12479 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a); 12480 } 12481 12482 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 12483 vreinterpret_u16_p16 (poly16x4_t __a) 12484 { 12485 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv4hi ((int16x4_t) __a); 12486 } 12487 12488 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 12489 vreinterpret_u16_f32 (float32x2_t __a) 12490 { 12491 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv2sf (__a); 12492 } 12493 12494 #ifdef __ARM_FEATURE_CRYPTO 12495 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 12496 vreinterpret_u16_p64 (poly64x1_t __a) 12497 { 12498 return (uint16x4_t)__builtin_neon_vreinterpretv4hidi (__a); 12499 } 12500 12501 #endif 12502 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 12503 vreinterpret_u16_s64 (int64x1_t __a) 12504 { 12505 return (uint16x4_t)__builtin_neon_vreinterpretv4hidi (__a); 12506 } 12507 12508 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 12509 vreinterpret_u16_u64 (uint64x1_t __a) 12510 { 12511 return (uint16x4_t)__builtin_neon_vreinterpretv4hidi ((int64x1_t) __a); 12512 } 12513 12514 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 12515 vreinterpret_u16_s8 (int8x8_t __a) 12516 { 12517 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv8qi (__a); 12518 } 12519 12520 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 12521 vreinterpret_u16_s16 (int16x4_t __a) 12522 { 12523 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv4hi (__a); 12524 } 12525 12526 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 12527 vreinterpret_u16_s32 (int32x2_t __a) 12528 { 12529 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv2si (__a); 12530 } 12531 12532 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 12533 vreinterpret_u16_u8 (uint8x8_t __a) 12534 { 12535 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv8qi ((int8x8_t) __a); 12536 } 12537 12538 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 12539 vreinterpret_u16_u32 (uint32x2_t __a) 12540 { 12541 return (uint16x4_t)__builtin_neon_vreinterpretv4hiv2si ((int32x2_t) __a); 12542 } 12543 12544 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 12545 vreinterpret_u32_p8 (poly8x8_t __a) 12546 { 12547 return (uint32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a); 12548 } 12549 12550 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 12551 vreinterpret_u32_p16 (poly16x4_t __a) 12552 { 12553 return (uint32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a); 12554 } 12555 12556 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 12557 vreinterpret_u32_f32 (float32x2_t __a) 12558 { 12559 return (uint32x2_t)__builtin_neon_vreinterpretv2siv2sf (__a); 12560 } 12561 12562 #ifdef __ARM_FEATURE_CRYPTO 12563 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 12564 vreinterpret_u32_p64 (poly64x1_t __a) 12565 { 12566 return (uint32x2_t)__builtin_neon_vreinterpretv2sidi (__a); 12567 } 12568 12569 #endif 12570 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 12571 vreinterpret_u32_s64 (int64x1_t __a) 12572 { 12573 return (uint32x2_t)__builtin_neon_vreinterpretv2sidi (__a); 12574 } 12575 12576 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 12577 vreinterpret_u32_u64 (uint64x1_t __a) 12578 { 12579 return (uint32x2_t)__builtin_neon_vreinterpretv2sidi ((int64x1_t) __a); 12580 } 12581 12582 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 12583 vreinterpret_u32_s8 (int8x8_t __a) 12584 { 12585 return (uint32x2_t)__builtin_neon_vreinterpretv2siv8qi (__a); 12586 } 12587 12588 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 12589 vreinterpret_u32_s16 (int16x4_t __a) 12590 { 12591 return (uint32x2_t)__builtin_neon_vreinterpretv2siv4hi (__a); 12592 } 12593 12594 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 12595 vreinterpret_u32_s32 (int32x2_t __a) 12596 { 12597 return (uint32x2_t)__builtin_neon_vreinterpretv2siv2si (__a); 12598 } 12599 12600 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 12601 vreinterpret_u32_u8 (uint8x8_t __a) 12602 { 12603 return (uint32x2_t)__builtin_neon_vreinterpretv2siv8qi ((int8x8_t) __a); 12604 } 12605 12606 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 12607 vreinterpret_u32_u16 (uint16x4_t __a) 12608 { 12609 return (uint32x2_t)__builtin_neon_vreinterpretv2siv4hi ((int16x4_t) __a); 12610 } 12611 12612 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 12613 vreinterpretq_p8_p16 (poly16x8_t __a) 12614 { 12615 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a); 12616 } 12617 12618 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 12619 vreinterpretq_p8_f32 (float32x4_t __a) 12620 { 12621 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv4sf (__a); 12622 } 12623 12624 #ifdef __ARM_FEATURE_CRYPTO 12625 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 12626 vreinterpretq_p8_p64 (poly64x2_t __a) 12627 { 12628 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a); 12629 } 12630 12631 #endif 12632 #ifdef __ARM_FEATURE_CRYPTO 12633 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 12634 vreinterpretq_p8_p128 (poly128_t __a) 12635 { 12636 return (poly8x16_t)__builtin_neon_vreinterpretv16qiti ((__builtin_neon_ti) __a); 12637 } 12638 12639 #endif 12640 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 12641 vreinterpretq_p8_s64 (int64x2_t __a) 12642 { 12643 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv2di (__a); 12644 } 12645 12646 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 12647 vreinterpretq_p8_u64 (uint64x2_t __a) 12648 { 12649 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a); 12650 } 12651 12652 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 12653 vreinterpretq_p8_s8 (int8x16_t __a) 12654 { 12655 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv16qi (__a); 12656 } 12657 12658 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 12659 vreinterpretq_p8_s16 (int16x8_t __a) 12660 { 12661 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv8hi (__a); 12662 } 12663 12664 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 12665 vreinterpretq_p8_s32 (int32x4_t __a) 12666 { 12667 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv4si (__a); 12668 } 12669 12670 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 12671 vreinterpretq_p8_u8 (uint8x16_t __a) 12672 { 12673 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a); 12674 } 12675 12676 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 12677 vreinterpretq_p8_u16 (uint16x8_t __a) 12678 { 12679 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a); 12680 } 12681 12682 __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) 12683 vreinterpretq_p8_u32 (uint32x4_t __a) 12684 { 12685 return (poly8x16_t)__builtin_neon_vreinterpretv16qiv4si ((int32x4_t) __a); 12686 } 12687 12688 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 12689 vreinterpretq_p16_p8 (poly8x16_t __a) 12690 { 12691 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a); 12692 } 12693 12694 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 12695 vreinterpretq_p16_f32 (float32x4_t __a) 12696 { 12697 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv4sf (__a); 12698 } 12699 12700 #ifdef __ARM_FEATURE_CRYPTO 12701 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 12702 vreinterpretq_p16_p64 (poly64x2_t __a) 12703 { 12704 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a); 12705 } 12706 12707 #endif 12708 #ifdef __ARM_FEATURE_CRYPTO 12709 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 12710 vreinterpretq_p16_p128 (poly128_t __a) 12711 { 12712 return (poly16x8_t)__builtin_neon_vreinterpretv8hiti ((__builtin_neon_ti) __a); 12713 } 12714 12715 #endif 12716 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 12717 vreinterpretq_p16_s64 (int64x2_t __a) 12718 { 12719 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv2di (__a); 12720 } 12721 12722 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 12723 vreinterpretq_p16_u64 (uint64x2_t __a) 12724 { 12725 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a); 12726 } 12727 12728 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 12729 vreinterpretq_p16_s8 (int8x16_t __a) 12730 { 12731 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv16qi (__a); 12732 } 12733 12734 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 12735 vreinterpretq_p16_s16 (int16x8_t __a) 12736 { 12737 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv8hi (__a); 12738 } 12739 12740 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 12741 vreinterpretq_p16_s32 (int32x4_t __a) 12742 { 12743 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv4si (__a); 12744 } 12745 12746 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 12747 vreinterpretq_p16_u8 (uint8x16_t __a) 12748 { 12749 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a); 12750 } 12751 12752 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 12753 vreinterpretq_p16_u16 (uint16x8_t __a) 12754 { 12755 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a); 12756 } 12757 12758 __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) 12759 vreinterpretq_p16_u32 (uint32x4_t __a) 12760 { 12761 return (poly16x8_t)__builtin_neon_vreinterpretv8hiv4si ((int32x4_t) __a); 12762 } 12763 12764 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 12765 vreinterpretq_f32_p8 (poly8x16_t __a) 12766 { 12767 return (float32x4_t)__builtin_neon_vreinterpretv4sfv16qi ((int8x16_t) __a); 12768 } 12769 12770 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 12771 vreinterpretq_f32_p16 (poly16x8_t __a) 12772 { 12773 return (float32x4_t)__builtin_neon_vreinterpretv4sfv8hi ((int16x8_t) __a); 12774 } 12775 12776 #ifdef __ARM_FEATURE_CRYPTO 12777 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 12778 vreinterpretq_f32_p64 (poly64x2_t __a) 12779 { 12780 return (float32x4_t)__builtin_neon_vreinterpretv4sfv2di ((int64x2_t) __a); 12781 } 12782 12783 #endif 12784 #ifdef __ARM_FEATURE_CRYPTO 12785 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 12786 vreinterpretq_f32_p128 (poly128_t __a) 12787 { 12788 return (float32x4_t)__builtin_neon_vreinterpretv4sfti ((__builtin_neon_ti) __a); 12789 } 12790 12791 #endif 12792 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 12793 vreinterpretq_f32_s64 (int64x2_t __a) 12794 { 12795 return (float32x4_t)__builtin_neon_vreinterpretv4sfv2di (__a); 12796 } 12797 12798 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 12799 vreinterpretq_f32_u64 (uint64x2_t __a) 12800 { 12801 return (float32x4_t)__builtin_neon_vreinterpretv4sfv2di ((int64x2_t) __a); 12802 } 12803 12804 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 12805 vreinterpretq_f32_s8 (int8x16_t __a) 12806 { 12807 return (float32x4_t)__builtin_neon_vreinterpretv4sfv16qi (__a); 12808 } 12809 12810 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 12811 vreinterpretq_f32_s16 (int16x8_t __a) 12812 { 12813 return (float32x4_t)__builtin_neon_vreinterpretv4sfv8hi (__a); 12814 } 12815 12816 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 12817 vreinterpretq_f32_s32 (int32x4_t __a) 12818 { 12819 return (float32x4_t)__builtin_neon_vreinterpretv4sfv4si (__a); 12820 } 12821 12822 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 12823 vreinterpretq_f32_u8 (uint8x16_t __a) 12824 { 12825 return (float32x4_t)__builtin_neon_vreinterpretv4sfv16qi ((int8x16_t) __a); 12826 } 12827 12828 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 12829 vreinterpretq_f32_u16 (uint16x8_t __a) 12830 { 12831 return (float32x4_t)__builtin_neon_vreinterpretv4sfv8hi ((int16x8_t) __a); 12832 } 12833 12834 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) 12835 vreinterpretq_f32_u32 (uint32x4_t __a) 12836 { 12837 return (float32x4_t)__builtin_neon_vreinterpretv4sfv4si ((int32x4_t) __a); 12838 } 12839 12840 #ifdef __ARM_FEATURE_CRYPTO 12841 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 12842 vreinterpretq_p64_p8 (poly8x16_t __a) 12843 { 12844 return (poly64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a); 12845 } 12846 12847 #endif 12848 #ifdef __ARM_FEATURE_CRYPTO 12849 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 12850 vreinterpretq_p64_p16 (poly16x8_t __a) 12851 { 12852 return (poly64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a); 12853 } 12854 12855 #endif 12856 #ifdef __ARM_FEATURE_CRYPTO 12857 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 12858 vreinterpretq_p64_f32 (float32x4_t __a) 12859 { 12860 return (poly64x2_t)__builtin_neon_vreinterpretv2div4sf (__a); 12861 } 12862 12863 #endif 12864 #ifdef __ARM_FEATURE_CRYPTO 12865 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 12866 vreinterpretq_p64_p128 (poly128_t __a) 12867 { 12868 return (poly64x2_t)__builtin_neon_vreinterpretv2diti ((__builtin_neon_ti) __a); 12869 } 12870 12871 #endif 12872 #ifdef __ARM_FEATURE_CRYPTO 12873 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 12874 vreinterpretq_p64_s64 (int64x2_t __a) 12875 { 12876 return (poly64x2_t)__builtin_neon_vreinterpretv2div2di (__a); 12877 } 12878 12879 #endif 12880 #ifdef __ARM_FEATURE_CRYPTO 12881 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 12882 vreinterpretq_p64_u64 (uint64x2_t __a) 12883 { 12884 return (poly64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a); 12885 } 12886 12887 #endif 12888 #ifdef __ARM_FEATURE_CRYPTO 12889 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 12890 vreinterpretq_p64_s8 (int8x16_t __a) 12891 { 12892 return (poly64x2_t)__builtin_neon_vreinterpretv2div16qi (__a); 12893 } 12894 12895 #endif 12896 #ifdef __ARM_FEATURE_CRYPTO 12897 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 12898 vreinterpretq_p64_s16 (int16x8_t __a) 12899 { 12900 return (poly64x2_t)__builtin_neon_vreinterpretv2div8hi (__a); 12901 } 12902 12903 #endif 12904 #ifdef __ARM_FEATURE_CRYPTO 12905 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 12906 vreinterpretq_p64_s32 (int32x4_t __a) 12907 { 12908 return (poly64x2_t)__builtin_neon_vreinterpretv2div4si (__a); 12909 } 12910 12911 #endif 12912 #ifdef __ARM_FEATURE_CRYPTO 12913 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 12914 vreinterpretq_p64_u8 (uint8x16_t __a) 12915 { 12916 return (poly64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a); 12917 } 12918 12919 #endif 12920 #ifdef __ARM_FEATURE_CRYPTO 12921 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 12922 vreinterpretq_p64_u16 (uint16x8_t __a) 12923 { 12924 return (poly64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a); 12925 } 12926 12927 #endif 12928 #ifdef __ARM_FEATURE_CRYPTO 12929 __extension__ static __inline poly64x2_t __attribute__ ((__always_inline__)) 12930 vreinterpretq_p64_u32 (uint32x4_t __a) 12931 { 12932 return (poly64x2_t)__builtin_neon_vreinterpretv2div4si ((int32x4_t) __a); 12933 } 12934 12935 #endif 12936 #ifdef __ARM_FEATURE_CRYPTO 12937 __extension__ static __inline poly128_t __attribute__ ((__always_inline__)) 12938 vreinterpretq_p128_p8 (poly8x16_t __a) 12939 { 12940 return (poly128_t)__builtin_neon_vreinterprettiv16qi ((int8x16_t) __a); 12941 } 12942 12943 #endif 12944 #ifdef __ARM_FEATURE_CRYPTO 12945 __extension__ static __inline poly128_t __attribute__ ((__always_inline__)) 12946 vreinterpretq_p128_p16 (poly16x8_t __a) 12947 { 12948 return (poly128_t)__builtin_neon_vreinterprettiv8hi ((int16x8_t) __a); 12949 } 12950 12951 #endif 12952 #ifdef __ARM_FEATURE_CRYPTO 12953 __extension__ static __inline poly128_t __attribute__ ((__always_inline__)) 12954 vreinterpretq_p128_f32 (float32x4_t __a) 12955 { 12956 return (poly128_t)__builtin_neon_vreinterprettiv4sf (__a); 12957 } 12958 12959 #endif 12960 #ifdef __ARM_FEATURE_CRYPTO 12961 __extension__ static __inline poly128_t __attribute__ ((__always_inline__)) 12962 vreinterpretq_p128_p64 (poly64x2_t __a) 12963 { 12964 return (poly128_t)__builtin_neon_vreinterprettiv2di ((int64x2_t) __a); 12965 } 12966 12967 #endif 12968 #ifdef __ARM_FEATURE_CRYPTO 12969 __extension__ static __inline poly128_t __attribute__ ((__always_inline__)) 12970 vreinterpretq_p128_s64 (int64x2_t __a) 12971 { 12972 return (poly128_t)__builtin_neon_vreinterprettiv2di (__a); 12973 } 12974 12975 #endif 12976 #ifdef __ARM_FEATURE_CRYPTO 12977 __extension__ static __inline poly128_t __attribute__ ((__always_inline__)) 12978 vreinterpretq_p128_u64 (uint64x2_t __a) 12979 { 12980 return (poly128_t)__builtin_neon_vreinterprettiv2di ((int64x2_t) __a); 12981 } 12982 12983 #endif 12984 #ifdef __ARM_FEATURE_CRYPTO 12985 __extension__ static __inline poly128_t __attribute__ ((__always_inline__)) 12986 vreinterpretq_p128_s8 (int8x16_t __a) 12987 { 12988 return (poly128_t)__builtin_neon_vreinterprettiv16qi (__a); 12989 } 12990 12991 #endif 12992 #ifdef __ARM_FEATURE_CRYPTO 12993 __extension__ static __inline poly128_t __attribute__ ((__always_inline__)) 12994 vreinterpretq_p128_s16 (int16x8_t __a) 12995 { 12996 return (poly128_t)__builtin_neon_vreinterprettiv8hi (__a); 12997 } 12998 12999 #endif 13000 #ifdef __ARM_FEATURE_CRYPTO 13001 __extension__ static __inline poly128_t __attribute__ ((__always_inline__)) 13002 vreinterpretq_p128_s32 (int32x4_t __a) 13003 { 13004 return (poly128_t)__builtin_neon_vreinterprettiv4si (__a); 13005 } 13006 13007 #endif 13008 #ifdef __ARM_FEATURE_CRYPTO 13009 __extension__ static __inline poly128_t __attribute__ ((__always_inline__)) 13010 vreinterpretq_p128_u8 (uint8x16_t __a) 13011 { 13012 return (poly128_t)__builtin_neon_vreinterprettiv16qi ((int8x16_t) __a); 13013 } 13014 13015 #endif 13016 #ifdef __ARM_FEATURE_CRYPTO 13017 __extension__ static __inline poly128_t __attribute__ ((__always_inline__)) 13018 vreinterpretq_p128_u16 (uint16x8_t __a) 13019 { 13020 return (poly128_t)__builtin_neon_vreinterprettiv8hi ((int16x8_t) __a); 13021 } 13022 13023 #endif 13024 #ifdef __ARM_FEATURE_CRYPTO 13025 __extension__ static __inline poly128_t __attribute__ ((__always_inline__)) 13026 vreinterpretq_p128_u32 (uint32x4_t __a) 13027 { 13028 return (poly128_t)__builtin_neon_vreinterprettiv4si ((int32x4_t) __a); 13029 } 13030 13031 #endif 13032 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 13033 vreinterpretq_s64_p8 (poly8x16_t __a) 13034 { 13035 return (int64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a); 13036 } 13037 13038 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 13039 vreinterpretq_s64_p16 (poly16x8_t __a) 13040 { 13041 return (int64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a); 13042 } 13043 13044 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 13045 vreinterpretq_s64_f32 (float32x4_t __a) 13046 { 13047 return (int64x2_t)__builtin_neon_vreinterpretv2div4sf (__a); 13048 } 13049 13050 #ifdef __ARM_FEATURE_CRYPTO 13051 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 13052 vreinterpretq_s64_p64 (poly64x2_t __a) 13053 { 13054 return (int64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a); 13055 } 13056 13057 #endif 13058 #ifdef __ARM_FEATURE_CRYPTO 13059 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 13060 vreinterpretq_s64_p128 (poly128_t __a) 13061 { 13062 return (int64x2_t)__builtin_neon_vreinterpretv2diti ((__builtin_neon_ti) __a); 13063 } 13064 13065 #endif 13066 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 13067 vreinterpretq_s64_u64 (uint64x2_t __a) 13068 { 13069 return (int64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a); 13070 } 13071 13072 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 13073 vreinterpretq_s64_s8 (int8x16_t __a) 13074 { 13075 return (int64x2_t)__builtin_neon_vreinterpretv2div16qi (__a); 13076 } 13077 13078 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 13079 vreinterpretq_s64_s16 (int16x8_t __a) 13080 { 13081 return (int64x2_t)__builtin_neon_vreinterpretv2div8hi (__a); 13082 } 13083 13084 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 13085 vreinterpretq_s64_s32 (int32x4_t __a) 13086 { 13087 return (int64x2_t)__builtin_neon_vreinterpretv2div4si (__a); 13088 } 13089 13090 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 13091 vreinterpretq_s64_u8 (uint8x16_t __a) 13092 { 13093 return (int64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a); 13094 } 13095 13096 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 13097 vreinterpretq_s64_u16 (uint16x8_t __a) 13098 { 13099 return (int64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a); 13100 } 13101 13102 __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) 13103 vreinterpretq_s64_u32 (uint32x4_t __a) 13104 { 13105 return (int64x2_t)__builtin_neon_vreinterpretv2div4si ((int32x4_t) __a); 13106 } 13107 13108 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 13109 vreinterpretq_u64_p8 (poly8x16_t __a) 13110 { 13111 return (uint64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a); 13112 } 13113 13114 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 13115 vreinterpretq_u64_p16 (poly16x8_t __a) 13116 { 13117 return (uint64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a); 13118 } 13119 13120 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 13121 vreinterpretq_u64_f32 (float32x4_t __a) 13122 { 13123 return (uint64x2_t)__builtin_neon_vreinterpretv2div4sf (__a); 13124 } 13125 13126 #ifdef __ARM_FEATURE_CRYPTO 13127 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 13128 vreinterpretq_u64_p64 (poly64x2_t __a) 13129 { 13130 return (uint64x2_t)__builtin_neon_vreinterpretv2div2di ((int64x2_t) __a); 13131 } 13132 13133 #endif 13134 #ifdef __ARM_FEATURE_CRYPTO 13135 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 13136 vreinterpretq_u64_p128 (poly128_t __a) 13137 { 13138 return (uint64x2_t)__builtin_neon_vreinterpretv2diti ((__builtin_neon_ti) __a); 13139 } 13140 13141 #endif 13142 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 13143 vreinterpretq_u64_s64 (int64x2_t __a) 13144 { 13145 return (uint64x2_t)__builtin_neon_vreinterpretv2div2di (__a); 13146 } 13147 13148 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 13149 vreinterpretq_u64_s8 (int8x16_t __a) 13150 { 13151 return (uint64x2_t)__builtin_neon_vreinterpretv2div16qi (__a); 13152 } 13153 13154 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 13155 vreinterpretq_u64_s16 (int16x8_t __a) 13156 { 13157 return (uint64x2_t)__builtin_neon_vreinterpretv2div8hi (__a); 13158 } 13159 13160 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 13161 vreinterpretq_u64_s32 (int32x4_t __a) 13162 { 13163 return (uint64x2_t)__builtin_neon_vreinterpretv2div4si (__a); 13164 } 13165 13166 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 13167 vreinterpretq_u64_u8 (uint8x16_t __a) 13168 { 13169 return (uint64x2_t)__builtin_neon_vreinterpretv2div16qi ((int8x16_t) __a); 13170 } 13171 13172 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 13173 vreinterpretq_u64_u16 (uint16x8_t __a) 13174 { 13175 return (uint64x2_t)__builtin_neon_vreinterpretv2div8hi ((int16x8_t) __a); 13176 } 13177 13178 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) 13179 vreinterpretq_u64_u32 (uint32x4_t __a) 13180 { 13181 return (uint64x2_t)__builtin_neon_vreinterpretv2div4si ((int32x4_t) __a); 13182 } 13183 13184 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 13185 vreinterpretq_s8_p8 (poly8x16_t __a) 13186 { 13187 return (int8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a); 13188 } 13189 13190 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 13191 vreinterpretq_s8_p16 (poly16x8_t __a) 13192 { 13193 return (int8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a); 13194 } 13195 13196 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 13197 vreinterpretq_s8_f32 (float32x4_t __a) 13198 { 13199 return (int8x16_t)__builtin_neon_vreinterpretv16qiv4sf (__a); 13200 } 13201 13202 #ifdef __ARM_FEATURE_CRYPTO 13203 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 13204 vreinterpretq_s8_p64 (poly64x2_t __a) 13205 { 13206 return (int8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a); 13207 } 13208 13209 #endif 13210 #ifdef __ARM_FEATURE_CRYPTO 13211 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 13212 vreinterpretq_s8_p128 (poly128_t __a) 13213 { 13214 return (int8x16_t)__builtin_neon_vreinterpretv16qiti ((__builtin_neon_ti) __a); 13215 } 13216 13217 #endif 13218 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 13219 vreinterpretq_s8_s64 (int64x2_t __a) 13220 { 13221 return (int8x16_t)__builtin_neon_vreinterpretv16qiv2di (__a); 13222 } 13223 13224 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 13225 vreinterpretq_s8_u64 (uint64x2_t __a) 13226 { 13227 return (int8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a); 13228 } 13229 13230 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 13231 vreinterpretq_s8_s16 (int16x8_t __a) 13232 { 13233 return (int8x16_t)__builtin_neon_vreinterpretv16qiv8hi (__a); 13234 } 13235 13236 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 13237 vreinterpretq_s8_s32 (int32x4_t __a) 13238 { 13239 return (int8x16_t)__builtin_neon_vreinterpretv16qiv4si (__a); 13240 } 13241 13242 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 13243 vreinterpretq_s8_u8 (uint8x16_t __a) 13244 { 13245 return (int8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a); 13246 } 13247 13248 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 13249 vreinterpretq_s8_u16 (uint16x8_t __a) 13250 { 13251 return (int8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a); 13252 } 13253 13254 __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) 13255 vreinterpretq_s8_u32 (uint32x4_t __a) 13256 { 13257 return (int8x16_t)__builtin_neon_vreinterpretv16qiv4si ((int32x4_t) __a); 13258 } 13259 13260 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 13261 vreinterpretq_s16_p8 (poly8x16_t __a) 13262 { 13263 return (int16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a); 13264 } 13265 13266 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 13267 vreinterpretq_s16_p16 (poly16x8_t __a) 13268 { 13269 return (int16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a); 13270 } 13271 13272 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 13273 vreinterpretq_s16_f32 (float32x4_t __a) 13274 { 13275 return (int16x8_t)__builtin_neon_vreinterpretv8hiv4sf (__a); 13276 } 13277 13278 #ifdef __ARM_FEATURE_CRYPTO 13279 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 13280 vreinterpretq_s16_p64 (poly64x2_t __a) 13281 { 13282 return (int16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a); 13283 } 13284 13285 #endif 13286 #ifdef __ARM_FEATURE_CRYPTO 13287 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 13288 vreinterpretq_s16_p128 (poly128_t __a) 13289 { 13290 return (int16x8_t)__builtin_neon_vreinterpretv8hiti ((__builtin_neon_ti) __a); 13291 } 13292 13293 #endif 13294 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 13295 vreinterpretq_s16_s64 (int64x2_t __a) 13296 { 13297 return (int16x8_t)__builtin_neon_vreinterpretv8hiv2di (__a); 13298 } 13299 13300 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 13301 vreinterpretq_s16_u64 (uint64x2_t __a) 13302 { 13303 return (int16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a); 13304 } 13305 13306 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 13307 vreinterpretq_s16_s8 (int8x16_t __a) 13308 { 13309 return (int16x8_t)__builtin_neon_vreinterpretv8hiv16qi (__a); 13310 } 13311 13312 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 13313 vreinterpretq_s16_s32 (int32x4_t __a) 13314 { 13315 return (int16x8_t)__builtin_neon_vreinterpretv8hiv4si (__a); 13316 } 13317 13318 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 13319 vreinterpretq_s16_u8 (uint8x16_t __a) 13320 { 13321 return (int16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a); 13322 } 13323 13324 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 13325 vreinterpretq_s16_u16 (uint16x8_t __a) 13326 { 13327 return (int16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a); 13328 } 13329 13330 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) 13331 vreinterpretq_s16_u32 (uint32x4_t __a) 13332 { 13333 return (int16x8_t)__builtin_neon_vreinterpretv8hiv4si ((int32x4_t) __a); 13334 } 13335 13336 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 13337 vreinterpretq_s32_p8 (poly8x16_t __a) 13338 { 13339 return (int32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a); 13340 } 13341 13342 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 13343 vreinterpretq_s32_p16 (poly16x8_t __a) 13344 { 13345 return (int32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a); 13346 } 13347 13348 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 13349 vreinterpretq_s32_f32 (float32x4_t __a) 13350 { 13351 return (int32x4_t)__builtin_neon_vreinterpretv4siv4sf (__a); 13352 } 13353 13354 #ifdef __ARM_FEATURE_CRYPTO 13355 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 13356 vreinterpretq_s32_p64 (poly64x2_t __a) 13357 { 13358 return (int32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a); 13359 } 13360 13361 #endif 13362 #ifdef __ARM_FEATURE_CRYPTO 13363 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 13364 vreinterpretq_s32_p128 (poly128_t __a) 13365 { 13366 return (int32x4_t)__builtin_neon_vreinterpretv4siti ((__builtin_neon_ti) __a); 13367 } 13368 13369 #endif 13370 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 13371 vreinterpretq_s32_s64 (int64x2_t __a) 13372 { 13373 return (int32x4_t)__builtin_neon_vreinterpretv4siv2di (__a); 13374 } 13375 13376 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 13377 vreinterpretq_s32_u64 (uint64x2_t __a) 13378 { 13379 return (int32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a); 13380 } 13381 13382 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 13383 vreinterpretq_s32_s8 (int8x16_t __a) 13384 { 13385 return (int32x4_t)__builtin_neon_vreinterpretv4siv16qi (__a); 13386 } 13387 13388 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 13389 vreinterpretq_s32_s16 (int16x8_t __a) 13390 { 13391 return (int32x4_t)__builtin_neon_vreinterpretv4siv8hi (__a); 13392 } 13393 13394 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 13395 vreinterpretq_s32_u8 (uint8x16_t __a) 13396 { 13397 return (int32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a); 13398 } 13399 13400 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 13401 vreinterpretq_s32_u16 (uint16x8_t __a) 13402 { 13403 return (int32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a); 13404 } 13405 13406 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) 13407 vreinterpretq_s32_u32 (uint32x4_t __a) 13408 { 13409 return (int32x4_t)__builtin_neon_vreinterpretv4siv4si ((int32x4_t) __a); 13410 } 13411 13412 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 13413 vreinterpretq_u8_p8 (poly8x16_t __a) 13414 { 13415 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv16qi ((int8x16_t) __a); 13416 } 13417 13418 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 13419 vreinterpretq_u8_p16 (poly16x8_t __a) 13420 { 13421 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a); 13422 } 13423 13424 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 13425 vreinterpretq_u8_f32 (float32x4_t __a) 13426 { 13427 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv4sf (__a); 13428 } 13429 13430 #ifdef __ARM_FEATURE_CRYPTO 13431 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 13432 vreinterpretq_u8_p64 (poly64x2_t __a) 13433 { 13434 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a); 13435 } 13436 13437 #endif 13438 #ifdef __ARM_FEATURE_CRYPTO 13439 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 13440 vreinterpretq_u8_p128 (poly128_t __a) 13441 { 13442 return (uint8x16_t)__builtin_neon_vreinterpretv16qiti ((__builtin_neon_ti) __a); 13443 } 13444 13445 #endif 13446 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 13447 vreinterpretq_u8_s64 (int64x2_t __a) 13448 { 13449 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv2di (__a); 13450 } 13451 13452 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 13453 vreinterpretq_u8_u64 (uint64x2_t __a) 13454 { 13455 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv2di ((int64x2_t) __a); 13456 } 13457 13458 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 13459 vreinterpretq_u8_s8 (int8x16_t __a) 13460 { 13461 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv16qi (__a); 13462 } 13463 13464 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 13465 vreinterpretq_u8_s16 (int16x8_t __a) 13466 { 13467 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv8hi (__a); 13468 } 13469 13470 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 13471 vreinterpretq_u8_s32 (int32x4_t __a) 13472 { 13473 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv4si (__a); 13474 } 13475 13476 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 13477 vreinterpretq_u8_u16 (uint16x8_t __a) 13478 { 13479 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv8hi ((int16x8_t) __a); 13480 } 13481 13482 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 13483 vreinterpretq_u8_u32 (uint32x4_t __a) 13484 { 13485 return (uint8x16_t)__builtin_neon_vreinterpretv16qiv4si ((int32x4_t) __a); 13486 } 13487 13488 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 13489 vreinterpretq_u16_p8 (poly8x16_t __a) 13490 { 13491 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a); 13492 } 13493 13494 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 13495 vreinterpretq_u16_p16 (poly16x8_t __a) 13496 { 13497 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv8hi ((int16x8_t) __a); 13498 } 13499 13500 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 13501 vreinterpretq_u16_f32 (float32x4_t __a) 13502 { 13503 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv4sf (__a); 13504 } 13505 13506 #ifdef __ARM_FEATURE_CRYPTO 13507 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 13508 vreinterpretq_u16_p64 (poly64x2_t __a) 13509 { 13510 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a); 13511 } 13512 13513 #endif 13514 #ifdef __ARM_FEATURE_CRYPTO 13515 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 13516 vreinterpretq_u16_p128 (poly128_t __a) 13517 { 13518 return (uint16x8_t)__builtin_neon_vreinterpretv8hiti ((__builtin_neon_ti) __a); 13519 } 13520 13521 #endif 13522 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 13523 vreinterpretq_u16_s64 (int64x2_t __a) 13524 { 13525 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv2di (__a); 13526 } 13527 13528 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 13529 vreinterpretq_u16_u64 (uint64x2_t __a) 13530 { 13531 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv2di ((int64x2_t) __a); 13532 } 13533 13534 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 13535 vreinterpretq_u16_s8 (int8x16_t __a) 13536 { 13537 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv16qi (__a); 13538 } 13539 13540 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 13541 vreinterpretq_u16_s16 (int16x8_t __a) 13542 { 13543 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv8hi (__a); 13544 } 13545 13546 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 13547 vreinterpretq_u16_s32 (int32x4_t __a) 13548 { 13549 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv4si (__a); 13550 } 13551 13552 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 13553 vreinterpretq_u16_u8 (uint8x16_t __a) 13554 { 13555 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv16qi ((int8x16_t) __a); 13556 } 13557 13558 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) 13559 vreinterpretq_u16_u32 (uint32x4_t __a) 13560 { 13561 return (uint16x8_t)__builtin_neon_vreinterpretv8hiv4si ((int32x4_t) __a); 13562 } 13563 13564 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13565 vreinterpretq_u32_p8 (poly8x16_t __a) 13566 { 13567 return (uint32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a); 13568 } 13569 13570 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13571 vreinterpretq_u32_p16 (poly16x8_t __a) 13572 { 13573 return (uint32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a); 13574 } 13575 13576 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13577 vreinterpretq_u32_f32 (float32x4_t __a) 13578 { 13579 return (uint32x4_t)__builtin_neon_vreinterpretv4siv4sf (__a); 13580 } 13581 13582 #ifdef __ARM_FEATURE_CRYPTO 13583 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13584 vreinterpretq_u32_p64 (poly64x2_t __a) 13585 { 13586 return (uint32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a); 13587 } 13588 13589 #endif 13590 #ifdef __ARM_FEATURE_CRYPTO 13591 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13592 vreinterpretq_u32_p128 (poly128_t __a) 13593 { 13594 return (uint32x4_t)__builtin_neon_vreinterpretv4siti ((__builtin_neon_ti) __a); 13595 } 13596 13597 #endif 13598 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13599 vreinterpretq_u32_s64 (int64x2_t __a) 13600 { 13601 return (uint32x4_t)__builtin_neon_vreinterpretv4siv2di (__a); 13602 } 13603 13604 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13605 vreinterpretq_u32_u64 (uint64x2_t __a) 13606 { 13607 return (uint32x4_t)__builtin_neon_vreinterpretv4siv2di ((int64x2_t) __a); 13608 } 13609 13610 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13611 vreinterpretq_u32_s8 (int8x16_t __a) 13612 { 13613 return (uint32x4_t)__builtin_neon_vreinterpretv4siv16qi (__a); 13614 } 13615 13616 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13617 vreinterpretq_u32_s16 (int16x8_t __a) 13618 { 13619 return (uint32x4_t)__builtin_neon_vreinterpretv4siv8hi (__a); 13620 } 13621 13622 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13623 vreinterpretq_u32_s32 (int32x4_t __a) 13624 { 13625 return (uint32x4_t)__builtin_neon_vreinterpretv4siv4si (__a); 13626 } 13627 13628 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13629 vreinterpretq_u32_u8 (uint8x16_t __a) 13630 { 13631 return (uint32x4_t)__builtin_neon_vreinterpretv4siv16qi ((int8x16_t) __a); 13632 } 13633 13634 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13635 vreinterpretq_u32_u16 (uint16x8_t __a) 13636 { 13637 return (uint32x4_t)__builtin_neon_vreinterpretv4siv8hi ((int16x8_t) __a); 13638 } 13639 13640 13641 #ifdef __ARM_FEATURE_CRYPTO 13642 13643 __extension__ static __inline poly128_t __attribute__ ((__always_inline__)) 13644 vldrq_p128 (poly128_t const * __ptr) 13645 { 13646 #ifdef __ARM_BIG_ENDIAN 13647 poly64_t* __ptmp = (poly64_t*) __ptr; 13648 poly64_t __d0 = vld1_p64 (__ptmp); 13649 poly64_t __d1 = vld1_p64 (__ptmp + 1); 13650 return vreinterpretq_p128_p64 (vcombine_p64 (__d1, __d0)); 13651 #else 13652 return vreinterpretq_p128_p64 (vld1q_p64 ((poly64_t*) __ptr)); 13653 #endif 13654 } 13655 13656 __extension__ static __inline void __attribute__ ((__always_inline__)) 13657 vstrq_p128 (poly128_t * __ptr, poly128_t __val) 13658 { 13659 #ifdef __ARM_BIG_ENDIAN 13660 poly64x2_t __tmp = vreinterpretq_p64_p128 (__val); 13661 poly64_t __d0 = vget_high_p64 (__tmp); 13662 poly64_t __d1 = vget_low_p64 (__tmp); 13663 vst1q_p64 ((poly64_t*) __ptr, vcombine_p64 (__d0, __d1)); 13664 #else 13665 vst1q_p64 ((poly64_t*) __ptr, vreinterpretq_p64_p128 (__val)); 13666 #endif 13667 } 13668 13669 /* The vceq_p64 intrinsic does not map to a single instruction. 13670 Instead we emulate it by performing a 32-bit variant of the vceq 13671 and applying a pairwise min reduction to the result. 13672 vceq_u32 will produce two 32-bit halves, each of which will contain either 13673 all ones or all zeros depending on whether the corresponding 32-bit 13674 halves of the poly64_t were equal. The whole poly64_t values are equal 13675 if and only if both halves are equal, i.e. vceq_u32 returns all ones. 13676 If the result is all zeroes for any half then the whole result is zeroes. 13677 This is what the pairwise min reduction achieves. */ 13678 13679 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 13680 vceq_p64 (poly64x1_t __a, poly64x1_t __b) 13681 { 13682 uint32x2_t __t_a = vreinterpret_u32_p64 (__a); 13683 uint32x2_t __t_b = vreinterpret_u32_p64 (__b); 13684 uint32x2_t __c = vceq_u32 (__t_a, __t_b); 13685 uint32x2_t __m = vpmin_u32 (__c, __c); 13686 return vreinterpret_u64_u32 (__m); 13687 } 13688 13689 /* The vtst_p64 intrinsic does not map to a single instruction. 13690 We emulate it in way similar to vceq_p64 above but here we do 13691 a reduction with max since if any two corresponding bits 13692 in the two poly64_t's match, then the whole result must be all ones. */ 13693 13694 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 13695 vtst_p64 (poly64x1_t __a, poly64x1_t __b) 13696 { 13697 uint32x2_t __t_a = vreinterpret_u32_p64 (__a); 13698 uint32x2_t __t_b = vreinterpret_u32_p64 (__b); 13699 uint32x2_t __c = vtst_u32 (__t_a, __t_b); 13700 uint32x2_t __m = vpmax_u32 (__c, __c); 13701 return vreinterpret_u64_u32 (__m); 13702 } 13703 13704 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 13705 vaeseq_u8 (uint8x16_t __data, uint8x16_t __key) 13706 { 13707 return __builtin_arm_crypto_aese (__data, __key); 13708 } 13709 13710 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 13711 vaesdq_u8 (uint8x16_t __data, uint8x16_t __key) 13712 { 13713 return __builtin_arm_crypto_aesd (__data, __key); 13714 } 13715 13716 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 13717 vaesmcq_u8 (uint8x16_t __data) 13718 { 13719 return __builtin_arm_crypto_aesmc (__data); 13720 } 13721 13722 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) 13723 vaesimcq_u8 (uint8x16_t __data) 13724 { 13725 return __builtin_arm_crypto_aesimc (__data); 13726 } 13727 13728 __extension__ static __inline uint32_t __attribute__ ((__always_inline__)) 13729 vsha1h_u32 (uint32_t __hash_e) 13730 { 13731 uint32x4_t __t = vdupq_n_u32 (0); 13732 __t = vsetq_lane_u32 (__hash_e, __t, 0); 13733 __t = __builtin_arm_crypto_sha1h (__t); 13734 return vgetq_lane_u32 (__t, 0); 13735 } 13736 13737 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13738 vsha1cq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk) 13739 { 13740 uint32x4_t __t = vdupq_n_u32 (0); 13741 __t = vsetq_lane_u32 (__hash_e, __t, 0); 13742 return __builtin_arm_crypto_sha1c (__hash_abcd, __t, __wk); 13743 } 13744 13745 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13746 vsha1pq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk) 13747 { 13748 uint32x4_t __t = vdupq_n_u32 (0); 13749 __t = vsetq_lane_u32 (__hash_e, __t, 0); 13750 return __builtin_arm_crypto_sha1p (__hash_abcd, __t, __wk); 13751 } 13752 13753 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13754 vsha1mq_u32 (uint32x4_t __hash_abcd, uint32_t __hash_e, uint32x4_t __wk) 13755 { 13756 uint32x4_t __t = vdupq_n_u32 (0); 13757 __t = vsetq_lane_u32 (__hash_e, __t, 0); 13758 return __builtin_arm_crypto_sha1m (__hash_abcd, __t, __wk); 13759 } 13760 13761 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13762 vsha1su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7, uint32x4_t __w8_11) 13763 { 13764 return __builtin_arm_crypto_sha1su0 (__w0_3, __w4_7, __w8_11); 13765 } 13766 13767 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13768 vsha1su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w12_15) 13769 { 13770 return __builtin_arm_crypto_sha1su1 (__tw0_3, __w12_15); 13771 } 13772 13773 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13774 vsha256hq_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk) 13775 { 13776 return __builtin_arm_crypto_sha256h (__hash_abcd, __hash_efgh, __wk); 13777 } 13778 13779 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13780 vsha256h2q_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk) 13781 { 13782 return __builtin_arm_crypto_sha256h2 (__hash_abcd, __hash_efgh, __wk); 13783 } 13784 13785 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13786 vsha256su0q_u32 (uint32x4_t __w0_3, uint32x4_t __w4_7) 13787 { 13788 return __builtin_arm_crypto_sha256su0 (__w0_3, __w4_7); 13789 } 13790 13791 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) 13792 vsha256su1q_u32 (uint32x4_t __tw0_3, uint32x4_t __w8_11, uint32x4_t __w12_15) 13793 { 13794 return __builtin_arm_crypto_sha256su1 (__tw0_3, __w8_11, __w12_15); 13795 } 13796 13797 __extension__ static __inline poly128_t __attribute__ ((__always_inline__)) 13798 vmull_p64 (poly64_t __a, poly64_t __b) 13799 { 13800 return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __a, (uint64_t) __b); 13801 } 13802 13803 __extension__ static __inline poly128_t __attribute__ ((__always_inline__)) 13804 vmull_high_p64 (poly64x2_t __a, poly64x2_t __b) 13805 { 13806 poly64_t __t1 = vget_high_p64 (__a); 13807 poly64_t __t2 = vget_high_p64 (__b); 13808 13809 return (poly128_t) __builtin_arm_crypto_vmullp64 ((uint64_t) __t1, (uint64_t) __t2); 13810 } 13811 13812 #endif 13813 #ifdef __cplusplus 13814 } 13815 #endif 13816 #endif 13817 #endif 13818