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