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