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 36extern "C" { 37#endif 38 39#include <stdint.h> 40 41typedef __builtin_neon_qi int8x8_t __attribute__ ((__vector_size__ (8))); 42typedef __builtin_neon_hi int16x4_t __attribute__ ((__vector_size__ (8))); 43typedef __builtin_neon_si int32x2_t __attribute__ ((__vector_size__ (8))); 44typedef __builtin_neon_di int64x1_t; 45typedef __builtin_neon_sf float32x2_t __attribute__ ((__vector_size__ (8))); 46typedef __builtin_neon_poly8 poly8x8_t __attribute__ ((__vector_size__ (8))); 47typedef __builtin_neon_poly16 poly16x4_t __attribute__ ((__vector_size__ (8))); 48typedef __builtin_neon_uqi uint8x8_t __attribute__ ((__vector_size__ (8))); 49typedef __builtin_neon_uhi uint16x4_t __attribute__ ((__vector_size__ (8))); 50typedef __builtin_neon_usi uint32x2_t __attribute__ ((__vector_size__ (8))); 51typedef __builtin_neon_udi uint64x1_t; 52typedef __builtin_neon_qi int8x16_t __attribute__ ((__vector_size__ (16))); 53typedef __builtin_neon_hi int16x8_t __attribute__ ((__vector_size__ (16))); 54typedef __builtin_neon_si int32x4_t __attribute__ ((__vector_size__ (16))); 55typedef __builtin_neon_di int64x2_t __attribute__ ((__vector_size__ (16))); 56typedef __builtin_neon_sf float32x4_t __attribute__ ((__vector_size__ (16))); 57typedef __builtin_neon_poly8 poly8x16_t __attribute__ ((__vector_size__ (16))); 58typedef __builtin_neon_poly16 poly16x8_t __attribute__ ((__vector_size__ (16))); 59typedef __builtin_neon_uqi uint8x16_t __attribute__ ((__vector_size__ (16))); 60typedef __builtin_neon_uhi uint16x8_t __attribute__ ((__vector_size__ (16))); 61typedef __builtin_neon_usi uint32x4_t __attribute__ ((__vector_size__ (16))); 62typedef __builtin_neon_udi uint64x2_t __attribute__ ((__vector_size__ (16))); 63 64typedef float float32_t; 65typedef __builtin_neon_poly8 poly8_t; 66typedef __builtin_neon_poly16 poly16_t; 67 68typedef struct int8x8x2_t 69{ 70 int8x8_t val[2]; 71} int8x8x2_t; 72 73typedef struct int8x16x2_t 74{ 75 int8x16_t val[2]; 76} int8x16x2_t; 77 78typedef struct int16x4x2_t 79{ 80 int16x4_t val[2]; 81} int16x4x2_t; 82 83typedef struct int16x8x2_t 84{ 85 int16x8_t val[2]; 86} int16x8x2_t; 87 88typedef struct int32x2x2_t 89{ 90 int32x2_t val[2]; 91} int32x2x2_t; 92 93typedef struct int32x4x2_t 94{ 95 int32x4_t val[2]; 96} int32x4x2_t; 97 98typedef struct int64x1x2_t 99{ 100 int64x1_t val[2]; 101} int64x1x2_t; 102 103typedef struct int64x2x2_t 104{ 105 int64x2_t val[2]; 106} int64x2x2_t; 107 108typedef struct uint8x8x2_t 109{ 110 uint8x8_t val[2]; 111} uint8x8x2_t; 112 113typedef struct uint8x16x2_t 114{ 115 uint8x16_t val[2]; 116} uint8x16x2_t; 117 118typedef struct uint16x4x2_t 119{ 120 uint16x4_t val[2]; 121} uint16x4x2_t; 122 123typedef struct uint16x8x2_t 124{ 125 uint16x8_t val[2]; 126} uint16x8x2_t; 127 128typedef struct uint32x2x2_t 129{ 130 uint32x2_t val[2]; 131} uint32x2x2_t; 132 133typedef struct uint32x4x2_t 134{ 135 uint32x4_t val[2]; 136} uint32x4x2_t; 137 138typedef struct uint64x1x2_t 139{ 140 uint64x1_t val[2]; 141} uint64x1x2_t; 142 143typedef struct uint64x2x2_t 144{ 145 uint64x2_t val[2]; 146} uint64x2x2_t; 147 148typedef struct float32x2x2_t 149{ 150 float32x2_t val[2]; 151} float32x2x2_t; 152 153typedef struct float32x4x2_t 154{ 155 float32x4_t val[2]; 156} float32x4x2_t; 157 158typedef struct poly8x8x2_t 159{ 160 poly8x8_t val[2]; 161} poly8x8x2_t; 162 163typedef struct poly8x16x2_t 164{ 165 poly8x16_t val[2]; 166} poly8x16x2_t; 167 168typedef struct poly16x4x2_t 169{ 170 poly16x4_t val[2]; 171} poly16x4x2_t; 172 173typedef struct poly16x8x2_t 174{ 175 poly16x8_t val[2]; 176} poly16x8x2_t; 177 178typedef struct int8x8x3_t 179{ 180 int8x8_t val[3]; 181} int8x8x3_t; 182 183typedef struct int8x16x3_t 184{ 185 int8x16_t val[3]; 186} int8x16x3_t; 187 188typedef struct int16x4x3_t 189{ 190 int16x4_t val[3]; 191} int16x4x3_t; 192 193typedef struct int16x8x3_t 194{ 195 int16x8_t val[3]; 196} int16x8x3_t; 197 198typedef struct int32x2x3_t 199{ 200 int32x2_t val[3]; 201} int32x2x3_t; 202 203typedef struct int32x4x3_t 204{ 205 int32x4_t val[3]; 206} int32x4x3_t; 207 208typedef struct int64x1x3_t 209{ 210 int64x1_t val[3]; 211} int64x1x3_t; 212 213typedef struct int64x2x3_t 214{ 215 int64x2_t val[3]; 216} int64x2x3_t; 217 218typedef struct uint8x8x3_t 219{ 220 uint8x8_t val[3]; 221} uint8x8x3_t; 222 223typedef struct uint8x16x3_t 224{ 225 uint8x16_t val[3]; 226} uint8x16x3_t; 227 228typedef struct uint16x4x3_t 229{ 230 uint16x4_t val[3]; 231} uint16x4x3_t; 232 233typedef struct uint16x8x3_t 234{ 235 uint16x8_t val[3]; 236} uint16x8x3_t; 237 238typedef struct uint32x2x3_t 239{ 240 uint32x2_t val[3]; 241} uint32x2x3_t; 242 243typedef struct uint32x4x3_t 244{ 245 uint32x4_t val[3]; 246} uint32x4x3_t; 247 248typedef struct uint64x1x3_t 249{ 250 uint64x1_t val[3]; 251} uint64x1x3_t; 252 253typedef struct uint64x2x3_t 254{ 255 uint64x2_t val[3]; 256} uint64x2x3_t; 257 258typedef struct float32x2x3_t 259{ 260 float32x2_t val[3]; 261} float32x2x3_t; 262 263typedef struct float32x4x3_t 264{ 265 float32x4_t val[3]; 266} float32x4x3_t; 267 268typedef struct poly8x8x3_t 269{ 270 poly8x8_t val[3]; 271} poly8x8x3_t; 272 273typedef struct poly8x16x3_t 274{ 275 poly8x16_t val[3]; 276} poly8x16x3_t; 277 278typedef struct poly16x4x3_t 279{ 280 poly16x4_t val[3]; 281} poly16x4x3_t; 282 283typedef struct poly16x8x3_t 284{ 285 poly16x8_t val[3]; 286} poly16x8x3_t; 287 288typedef struct int8x8x4_t 289{ 290 int8x8_t val[4]; 291} int8x8x4_t; 292 293typedef struct int8x16x4_t 294{ 295 int8x16_t val[4]; 296} int8x16x4_t; 297 298typedef struct int16x4x4_t 299{ 300 int16x4_t val[4]; 301} int16x4x4_t; 302 303typedef struct int16x8x4_t 304{ 305 int16x8_t val[4]; 306} int16x8x4_t; 307 308typedef struct int32x2x4_t 309{ 310 int32x2_t val[4]; 311} int32x2x4_t; 312 313typedef struct int32x4x4_t 314{ 315 int32x4_t val[4]; 316} int32x4x4_t; 317 318typedef struct int64x1x4_t 319{ 320 int64x1_t val[4]; 321} int64x1x4_t; 322 323typedef struct int64x2x4_t 324{ 325 int64x2_t val[4]; 326} int64x2x4_t; 327 328typedef struct uint8x8x4_t 329{ 330 uint8x8_t val[4]; 331} uint8x8x4_t; 332 333typedef struct uint8x16x4_t 334{ 335 uint8x16_t val[4]; 336} uint8x16x4_t; 337 338typedef struct uint16x4x4_t 339{ 340 uint16x4_t val[4]; 341} uint16x4x4_t; 342 343typedef struct uint16x8x4_t 344{ 345 uint16x8_t val[4]; 346} uint16x8x4_t; 347 348typedef struct uint32x2x4_t 349{ 350 uint32x2_t val[4]; 351} uint32x2x4_t; 352 353typedef struct uint32x4x4_t 354{ 355 uint32x4_t val[4]; 356} uint32x4x4_t; 357 358typedef struct uint64x1x4_t 359{ 360 uint64x1_t val[4]; 361} uint64x1x4_t; 362 363typedef struct uint64x2x4_t 364{ 365 uint64x2_t val[4]; 366} uint64x2x4_t; 367 368typedef struct float32x2x4_t 369{ 370 float32x2_t val[4]; 371} float32x2x4_t; 372 373typedef struct float32x4x4_t 374{ 375 float32x4_t val[4]; 376} float32x4x4_t; 377 378typedef struct poly8x8x4_t 379{ 380 poly8x8_t val[4]; 381} poly8x8x4_t; 382 383typedef struct poly8x16x4_t 384{ 385 poly8x16_t val[4]; 386} poly8x16x4_t; 387 388typedef struct poly16x4x4_t 389{ 390 poly16x4_t val[4]; 391} poly16x4x4_t; 392 393typedef struct poly16x8x4_t 394{ 395 poly16x8_t val[4]; 396} poly16x8x4_t; 397 398 399__extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) 400vadd_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__)) 406vadd_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__)) 412vadd_s32 (int32x2_t __a, int32x2_t __b) 413{ 414 return (int32x2_t)__builtin_neon_vaddv2si (__a, __b, 1); 415} 416 417__extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 418vadd_f32 (float32x2_t __a, float32x2_t __b) 419{ 420 return (float32x2_t)__builtin_neon_vaddv2sf (__a, __b, 3); 421} 422 423__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 424vadd_u8 (uint8x8_t __a, uint8x8_t __b) 425{ 426 return (uint8x8_t)__builtin_neon_vaddv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 427} 428 429__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 430vadd_u16 (uint16x4_t __a, uint16x4_t __b) 431{ 432 return (uint16x4_t)__builtin_neon_vaddv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 433} 434 435__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 436vadd_u32 (uint32x2_t __a, uint32x2_t __b) 437{ 438 return (uint32x2_t)__builtin_neon_vaddv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 439} 440 441__extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 442vadd_s64 (int64x1_t __a, int64x1_t __b) 443{ 444 return (int64x1_t)__builtin_neon_vadddi (__a, __b, 1); 445} 446 447__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 448vadd_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__)) 454vaddq_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__)) 460vaddq_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__)) 466vaddq_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__)) 472vaddq_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__)) 478vaddq_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__)) 484vaddq_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__)) 490vaddq_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__)) 496vaddq_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__)) 502vaddq_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__)) 508vaddl_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__)) 514vaddl_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__)) 520vaddl_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__)) 526vaddl_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__)) 532vaddl_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__)) 538vaddl_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__)) 544vaddw_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__)) 550vaddw_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__)) 556vaddw_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__)) 562vaddw_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__)) 568vaddw_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__)) 574vaddw_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__)) 580vhadd_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__)) 586vhadd_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__)) 592vhadd_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__)) 598vhadd_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__)) 604vhadd_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__)) 610vhadd_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__)) 616vhaddq_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__)) 622vhaddq_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__)) 628vhaddq_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__)) 634vhaddq_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__)) 640vhaddq_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__)) 646vhaddq_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__)) 652vrhadd_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__)) 658vrhadd_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__)) 664vrhadd_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__)) 670vrhadd_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__)) 676vrhadd_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__)) 682vrhadd_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__)) 688vrhaddq_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__)) 694vrhaddq_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__)) 700vrhaddq_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__)) 706vrhaddq_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__)) 712vrhaddq_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__)) 718vrhaddq_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__)) 724vqadd_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__)) 730vqadd_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__)) 736vqadd_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__)) 742vqadd_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__)) 748vqadd_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__)) 754vqadd_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__)) 760vqadd_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__)) 766vqadd_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__)) 772vqaddq_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__)) 778vqaddq_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__)) 784vqaddq_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__)) 790vqaddq_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__)) 796vqaddq_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__)) 802vqaddq_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__)) 808vqaddq_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__)) 814vqaddq_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__)) 820vaddhn_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__)) 826vaddhn_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__)) 832vaddhn_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__)) 838vaddhn_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__)) 844vaddhn_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__)) 850vaddhn_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__)) 856vraddhn_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__)) 862vraddhn_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__)) 868vraddhn_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__)) 874vraddhn_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__)) 880vraddhn_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__)) 886vraddhn_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__)) 892vmul_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__)) 898vmul_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__)) 904vmul_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__)) 910vmul_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__)) 916vmul_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__)) 922vmul_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__)) 928vmul_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__)) 934vmul_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__)) 940vmulq_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__)) 946vmulq_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__)) 952vmulq_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__)) 958vmulq_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__)) 964vmulq_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__)) 970vmulq_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__)) 976vmulq_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__)) 982vmulq_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__)) 988vqdmulh_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__)) 994vqdmulh_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__)) 1000vqdmulhq_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__)) 1006vqdmulhq_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__)) 1012vqrdmulh_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__)) 1018vqrdmulh_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__)) 1024vqrdmulhq_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__)) 1030vqrdmulhq_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__)) 1036vmull_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__)) 1042vmull_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__)) 1048vmull_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__)) 1054vmull_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__)) 1060vmull_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__)) 1066vmull_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__)) 1072vmull_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__)) 1078vqdmull_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__)) 1084vqdmull_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__)) 1090vmla_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__)) 1096vmla_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__)) 1102vmla_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__)) 1108vmla_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__)) 1114vmla_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__)) 1120vmla_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__)) 1126vmla_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__)) 1132vmlaq_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__)) 1138vmlaq_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__)) 1144vmlaq_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__)) 1150vmlaq_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__)) 1156vmlaq_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__)) 1162vmlaq_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__)) 1168vmlaq_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__)) 1174vmlal_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__)) 1180vmlal_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__)) 1186vmlal_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__)) 1192vmlal_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__)) 1198vmlal_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__)) 1204vmlal_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__)) 1210vqdmlal_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__)) 1216vqdmlal_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__)) 1222vmls_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__)) 1228vmls_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__)) 1234vmls_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__)) 1240vmls_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__)) 1246vmls_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__)) 1252vmls_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__)) 1258vmls_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__)) 1264vmlsq_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__)) 1270vmlsq_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__)) 1276vmlsq_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__)) 1282vmlsq_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__)) 1288vmlsq_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__)) 1294vmlsq_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__)) 1300vmlsq_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__)) 1306vmlsl_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__)) 1312vmlsl_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__)) 1318vmlsl_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__)) 1324vmlsl_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__)) 1330vmlsl_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__)) 1336vmlsl_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__)) 1342vqdmlsl_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__)) 1348vqdmlsl_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__)) 1354vsub_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__)) 1360vsub_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__)) 1366vsub_s32 (int32x2_t __a, int32x2_t __b) 1367{ 1368 return (int32x2_t)__builtin_neon_vsubv2si (__a, __b, 1); 1369} 1370 1371__extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) 1372vsub_f32 (float32x2_t __a, float32x2_t __b) 1373{ 1374 return (float32x2_t)__builtin_neon_vsubv2sf (__a, __b, 3); 1375} 1376 1377__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) 1378vsub_u8 (uint8x8_t __a, uint8x8_t __b) 1379{ 1380 return (uint8x8_t)__builtin_neon_vsubv8qi ((int8x8_t) __a, (int8x8_t) __b, 0); 1381} 1382 1383__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) 1384vsub_u16 (uint16x4_t __a, uint16x4_t __b) 1385{ 1386 return (uint16x4_t)__builtin_neon_vsubv4hi ((int16x4_t) __a, (int16x4_t) __b, 0); 1387} 1388 1389__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) 1390vsub_u32 (uint32x2_t __a, uint32x2_t __b) 1391{ 1392 return (uint32x2_t)__builtin_neon_vsubv2si ((int32x2_t) __a, (int32x2_t) __b, 0); 1393} 1394 1395__extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) 1396vsub_s64 (int64x1_t __a, int64x1_t __b) 1397{ 1398 return (int64x1_t)__builtin_neon_vsubdi (__a, __b, 1); 1399} 1400 1401__extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) 1402vsub_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__)) 1408vsubq_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__)) 1414vsubq_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__)) 1420vsubq_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__)) 1426vsubq_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__)) 1432vsubq_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__)) 1438vsubq_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__)) 1444vsubq_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__)) 1450vsubq_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__)) 1456vsubq_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__)) 1462vsubl_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__)) 1468vsubl_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__)) 1474vsubl_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__)) 1480vsubl_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__)) 1486vsubl_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__)) 1492vsubl_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__)) 1498vsubw_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__)) 1504vsubw_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__)) 1510vsubw_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__)) 1516vsubw_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__)) 1522vsubw_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__)) 1528vsubw_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__)) 1534vhsub_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__)) 1540vhsub_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__)) 1546vhsub_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__)) 1552vhsub_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__)) 1558vhsub_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__)) 1564vhsub_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__)) 1570vhsubq_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__)) 1576vhsubq_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__)) 1582vhsubq_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__)) 1588vhsubq_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__)) 1594vhsubq_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__)) 1600vhsubq_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__)) 1606vqsub_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__)) 1612vqsub_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__)) 1618vqsub_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__)) 1624vqsub_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__)) 1630vqsub_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__)) 1636vqsub_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__)) 1642vqsub_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__)) 1648vqsub_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__)) 1654vqsubq_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__)) 1660vqsubq_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__)) 1666vqsubq_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__)) 1672vqsubq_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__)) 1678vqsubq_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__)) 1684vqsubq_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__)) 1690vqsubq_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__)) 1696vqsubq_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__)) 1702vsubhn_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__)) 1708vsubhn_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__)) 1714vsubhn_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__)) 1720vsubhn_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__)) 1726vsubhn_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__)) 1732vsubhn_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__)) 1738vrsubhn_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__)) 1744vrsubhn_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__)) 1750vrsubhn_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__)) 1756vrsubhn_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__)) 1762vrsubhn_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__)) 1768vrsubhn_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__)) 1774vceq_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__)) 1780vceq_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__)) 1786vceq_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__)) 1792vceq_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__)) 1798vceq_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__)) 1804vceq_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__)) 1810vceq_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__)) 1816vceq_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__)) 1822vceqq_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__)) 1828vceqq_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__)) 1834vceqq_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__)) 1840vceqq_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__)) 1846vceqq_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__)) 1852vceqq_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__)) 1858vceqq_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__)) 1864vceqq_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__)) 1870vcge_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__)) 1876vcge_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__)) 1882vcge_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__)) 1888vcge_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__)) 1894vcge_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__)) 1900vcge_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__)) 1906vcge_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__)) 1912vcgeq_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__)) 1918vcgeq_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__)) 1924vcgeq_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__)) 1930vcgeq_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__)) 1936vcgeq_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__)) 1942vcgeq_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__)) 1948vcgeq_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__)) 1954vcle_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__)) 1960vcle_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__)) 1966vcle_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__)) 1972vcle_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__)) 1978vcle_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__)) 1984vcle_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__)) 1990vcle_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__)) 1996vcleq_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__)) 2002vcleq_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__)) 2008vcleq_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__)) 2014vcleq_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__)) 2020vcleq_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__)) 2026vcleq_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__)) 2032vcleq_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__)) 2038vcgt_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__)) 2044vcgt_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__)) 2050vcgt_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__)) 2056vcgt_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__)) 2062vcgt_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__)) 2068vcgt_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__)) 2074vcgt_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__)) 2080vcgtq_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__)) 2086vcgtq_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__)) 2092vcgtq_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__)) 2098vcgtq_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__)) 2104vcgtq_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__)) 2110vcgtq_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__)) 2116vcgtq_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__)) 2122vclt_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__)) 2128vclt_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__)) 2134vclt_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__)) 2140vclt_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__)) 2146vclt_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__)) 2152vclt_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__)) 2158vclt_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__)) 2164vcltq_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__)) 2170vcltq_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__)) 2176vcltq_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__)) 2182vcltq_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__)) 2188vcltq_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__)) 2194vcltq_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__)) 2200vcltq_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__)) 2206vcage_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__)) 2212vcageq_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__)) 2218vcale_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__)) 2224vcaleq_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__)) 2230vcagt_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__)) 2236vcagtq_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__)) 2242vcalt_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__)) 2248vcaltq_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__)) 2254vtst_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__)) 2260vtst_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__)) 2266vtst_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__)) 2272vtst_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__)) 2278vtst_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__)) 2284vtst_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__)) 2290vtst_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__)) 2296vtstq_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__)) 2302vtstq_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__)) 2308vtstq_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__)) 2314vtstq_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__)) 2320vtstq_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__)) 2326vtstq_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__)) 2332vtstq_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__)) 2338vabd_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__)) 2344vabd_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__)) 2350vabd_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__)) 2356vabd_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__)) 2362vabd_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__)) 2368vabd_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__)) 2374vabd_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__)) 2380vabdq_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__)) 2386vabdq_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__)) 2392vabdq_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__)) 2398vabdq_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__)) 2404vabdq_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__)) 2410vabdq_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__)) 2416vabdq_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__)) 2422vabdl_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__)) 2428vabdl_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__)) 2434vabdl_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__)) 2440vabdl_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__)) 2446vabdl_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__)) 2452vabdl_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__)) 2458vaba_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__)) 2464vaba_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__)) 2470vaba_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__)) 2476vaba_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__)) 2482vaba_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__)) 2488vaba_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__)) 2494vabaq_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__)) 2500vabaq_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__)) 2506vabaq_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__)) 2512vabaq_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__)) 2518vabaq_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__)) 2524vabaq_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__)) 2530vabal_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__)) 2536vabal_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__)) 2542vabal_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__)) 2548vabal_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__)) 2554vabal_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__)) 2560vabal_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__)) 2566vmax_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__)) 2572vmax_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__)) 2578vmax_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__)) 2584vmax_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__)) 2590vmax_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__)) 2596vmax_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__)) 2602vmax_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__)) 2608vmaxq_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__)) 2614vmaxq_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__)) 2620vmaxq_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__)) 2626vmaxq_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__)) 2632vmaxq_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__)) 2638vmaxq_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__)) 2644vmaxq_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__)) 2650vmin_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__)) 2656vmin_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__)) 2662vmin_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__)) 2668vmin_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__)) 2674vmin_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__)) 2680vmin_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__)) 2686vmin_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__)) 2692vminq_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__)) 2698vminq_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__)) 2704vminq_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__)) 2710vminq_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__)) 2716vminq_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__)) 2722vminq_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__)) 2728vminq_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__)) 2734vpadd_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__)) 2740vpadd_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__)) 2746vpadd_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__)) 2752vpadd_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__)) 2758vpadd_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__)) 2764vpadd_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__)) 2770vpadd_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__)) 2776vpaddl_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__)) 2782vpaddl_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__)) 2788vpaddl_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__)) 2794vpaddl_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__)) 2800vpaddl_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__)) 2806vpaddl_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__)) 2812vpaddlq_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__)) 2818vpaddlq_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__)) 2824vpaddlq_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__)) 2830vpaddlq_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__)) 2836vpaddlq_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__)) 2842vpaddlq_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__)) 2848vpadal_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__)) 2854vpadal_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__)) 2860vpadal_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__)) 2866vpadal_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__)) 2872vpadal_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__)) 2878vpadal_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__)) 2884vpadalq_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__)) 2890vpadalq_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__)) 2896vpadalq_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__)) 2902vpadalq_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__)) 2908vpadalq_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__)) 2914vpadalq_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__)) 2920vpmax_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__)) 2926vpmax_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__)) 2932vpmax_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__)) 2938vpmax_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__)) 2944vpmax_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__)) 2950vpmax_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__)) 2956vpmax_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__)) 2962vpmin_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__)) 2968vpmin_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__)) 2974vpmin_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__)) 2980vpmin_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__)) 2986vpmin_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__)) 2992vpmin_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__)) 2998vpmin_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__)) 3004vrecps_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__)) 3010vrecpsq_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__)) 3016vrsqrts_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__)) 3022vrsqrtsq_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__)) 3028vshl_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__)) 3034vshl_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__)) 3040vshl_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__)) 3046vshl_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__)) 3052vshl_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__)) 3058vshl_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__)) 3064vshl_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__)) 3070vshl_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__)) 3076vshlq_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__)) 3082vshlq_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__)) 3088vshlq_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__)) 3094vshlq_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__)) 3100vshlq_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__)) 3106vshlq_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__)) 3112vshlq_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__)) 3118vshlq_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__)) 3124vrshl_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__)) 3130vrshl_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__)) 3136vrshl_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__)) 3142vrshl_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__)) 3148vrshl_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__)) 3154vrshl_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__)) 3160vrshl_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__)) 3166vrshl_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__)) 3172vrshlq_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__)) 3178vrshlq_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__)) 3184vrshlq_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__)) 3190vrshlq_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__)) 3196vrshlq_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__)) 3202vrshlq_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__)) 3208vrshlq_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__)) 3214vrshlq_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__)) 3220vqshl_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__)) 3226vqshl_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__)) 3232vqshl_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__)) 3238vqshl_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__)) 3244vqshl_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__)) 3250vqshl_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__)) 3256vqshl_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__)) 3262vqshl_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__)) 3268vqshlq_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__)) 3274vqshlq_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__)) 3280vqshlq_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__)) 3286vqshlq_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__)) 3292vqshlq_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__)) 3298vqshlq_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__)) 3304vqshlq_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__)) 3310vqshlq_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__)) 3316vqrshl_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__)) 3322vqrshl_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__)) 3328vqrshl_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__)) 3334vqrshl_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__)) 3340vqrshl_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__)) 3346vqrshl_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__)) 3352vqrshl_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__)) 3358vqrshl_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__)) 3364vqrshlq_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__)) 3370vqrshlq_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__)) 3376vqrshlq_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__)) 3382vqrshlq_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__)) 3388vqrshlq_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__)) 3394vqrshlq_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__)) 3400vqrshlq_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__)) 3406vqrshlq_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__)) 3412vshr_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__)) 3418vshr_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__)) 3424vshr_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__)) 3430vshr_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__)) 3436vshr_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__)) 3442vshr_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__)) 3448vshr_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__)) 3454vshr_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__)) 3460vshrq_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__)) 3466vshrq_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__)) 3472vshrq_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__)) 3478vshrq_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__)) 3484vshrq_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__)) 3490vshrq_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__)) 3496vshrq_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__)) 3502vshrq_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__)) 3508vrshr_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__)) 3514vrshr_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__)) 3520vrshr_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__)) 3526vrshr_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__)) 3532vrshr_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__)) 3538vrshr_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__)) 3544vrshr_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__)) 3550vrshr_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__)) 3556vrshrq_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__)) 3562vrshrq_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__)) 3568vrshrq_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__)) 3574vrshrq_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__)) 3580vrshrq_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__)) 3586vrshrq_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__)) 3592vrshrq_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__)) 3598vrshrq_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__)) 3604vshrn_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__)) 3610vshrn_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__)) 3616vshrn_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__)) 3622vshrn_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__)) 3628vshrn_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__)) 3634vshrn_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__)) 3640vrshrn_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__)) 3646vrshrn_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__)) 3652vrshrn_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__)) 3658vrshrn_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__)) 3664vrshrn_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__)) 3670vrshrn_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__)) 3676vqshrn_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__)) 3682vqshrn_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__)) 3688vqshrn_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__)) 3694vqshrn_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__)) 3700vqshrn_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__)) 3706vqshrn_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__)) 3712vqrshrn_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__)) 3718vqrshrn_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__)) 3724vqrshrn_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__)) 3730vqrshrn_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__)) 3736vqrshrn_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__)) 3742vqrshrn_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__)) 3748vqshrun_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__)) 3754vqshrun_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__)) 3760vqshrun_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__)) 3766vqrshrun_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__)) 3772vqrshrun_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__)) 3778vqrshrun_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__)) 3784vshl_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__)) 3790vshl_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__)) 3796vshl_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__)) 3802vshl_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__)) 3808vshl_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__)) 3814vshl_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__)) 3820vshl_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__)) 3826vshl_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__)) 3832vshlq_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__)) 3838vshlq_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__)) 3844vshlq_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__)) 3850vshlq_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__)) 3856vshlq_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__)) 3862vshlq_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__)) 3868vshlq_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__)) 3874vshlq_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__)) 3880vqshl_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__)) 3886vqshl_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__)) 3892vqshl_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__)) 3898vqshl_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__)) 3904vqshl_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__)) 3910vqshl_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__)) 3916vqshl_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__)) 3922vqshl_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__)) 3928vqshlq_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__)) 3934vqshlq_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__)) 3940vqshlq_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__)) 3946vqshlq_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__)) 3952vqshlq_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__)) 3958vqshlq_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__)) 3964vqshlq_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__)) 3970vqshlq_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__)) 3976vqshlu_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__)) 3982vqshlu_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__)) 3988vqshlu_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__)) 3994vqshlu_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__)) 4000vqshluq_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__)) 4006vqshluq_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__)) 4012vqshluq_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__)) 4018vqshluq_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__)) 4024vshll_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__)) 4030vshll_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__)) 4036vshll_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__)) 4042vshll_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__)) 4048vshll_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__)) 4054vshll_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__)) 4060vsra_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__)) 4066vsra_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__)) 4072vsra_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__)) 4078vsra_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__)) 4084vsra_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__)) 4090vsra_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__)) 4096vsra_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__)) 4102vsra_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__)) 4108vsraq_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__)) 4114vsraq_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__)) 4120vsraq_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__)) 4126vsraq_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__)) 4132vsraq_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__)) 4138vsraq_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__)) 4144vsraq_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__)) 4150vsraq_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__)) 4156vrsra_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__)) 4162vrsra_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__)) 4168vrsra_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__)) 4174vrsra_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__)) 4180vrsra_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__)) 4186vrsra_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__)) 4192vrsra_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__)) 4198vrsra_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__)) 4204vrsraq_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__)) 4210vrsraq_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__)) 4216vrsraq_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__)) 4222vrsraq_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__)) 4228vrsraq_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__)) 4234vrsraq_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__)) 4240vrsraq_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__)) 4246vrsraq_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__)) 4252vsri_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__)) 4258vsri_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__)) 4264vsri_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__)) 4270vsri_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__)) 4276vsri_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__)) 4282vsri_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__)) 4288vsri_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__)) 4294vsri_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__)) 4300vsri_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