comparison gcc/config/aarch64/arm_neon.h @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
1 /* ARM NEON intrinsics include file. 1 /* ARM NEON intrinsics include file.
2 2
3 Copyright (C) 2011-2017 Free Software Foundation, Inc. 3 Copyright (C) 2011-2018 Free Software Foundation, Inc.
4 Contributed by ARM Ltd. 4 Contributed by ARM Ltd.
5 5
6 This file is part of GCC. 6 This file is part of GCC.
7 7
8 GCC is free software; you can redistribute it and/or modify it 8 GCC is free software; you can redistribute it and/or modify it
11820 vabsq_s64 (int64x2_t __a) 11820 vabsq_s64 (int64x2_t __a)
11821 { 11821 {
11822 return __builtin_aarch64_absv2di (__a); 11822 return __builtin_aarch64_absv2di (__a);
11823 } 11823 }
11824 11824
11825 /* Try to avoid moving between integer and vector registers.
11826 For why the cast to unsigned is needed check the vnegd_s64 intrinsic.
11827 There is a testcase related to this issue:
11828 gcc.target/aarch64/vabsd_s64.c. */
11829
11830 __extension__ extern __inline int64_t
11831 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11832 vabsd_s64 (int64_t __a)
11833 {
11834 return __a < 0 ? - (uint64_t) __a : __a;
11835 }
11836
11825 /* vadd */ 11837 /* vadd */
11826 11838
11827 __extension__ extern __inline int64_t 11839 __extension__ extern __inline int64_t
11828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) 11840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
11829 vaddd_s64 (int64_t __a, int64_t __b) 11841 vaddd_s64 (int64_t __a, int64_t __b)
17143 vld1_u64 (const uint64_t *a) 17155 vld1_u64 (const uint64_t *a)
17144 { 17156 {
17145 return (uint64x1_t) {*a}; 17157 return (uint64x1_t) {*a};
17146 } 17158 }
17147 17159
17160 /* vld1x3 */
17161
17162 __extension__ extern __inline uint8x8x3_t
17163 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17164 vld1_u8_x3 (const uint8_t *__a)
17165 {
17166 uint8x8x3_t __i;
17167 __builtin_aarch64_simd_ci __o;
17168 __o = (__builtin_aarch64_simd_ci)__builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17169 __i.val[0] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
17170 __i.val[1] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
17171 __i.val[2] = (uint8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
17172 return __i;
17173 }
17174
17175 __extension__ extern __inline int8x8x3_t
17176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17177 vld1_s8_x3 (const uint8_t *__a)
17178 {
17179 int8x8x3_t __i;
17180 __builtin_aarch64_simd_ci __o;
17181 __o = __builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17182 __i.val[0] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
17183 __i.val[1] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
17184 __i.val[2] = (int8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
17185 return __i;
17186 }
17187
17188 __extension__ extern __inline uint16x4x3_t
17189 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17190 vld1_u16_x3 (const uint16_t *__a)
17191 {
17192 uint16x4x3_t __i;
17193 __builtin_aarch64_simd_ci __o;
17194 __o = __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17195 __i.val[0] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
17196 __i.val[1] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
17197 __i.val[2] = (uint16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
17198 return __i;
17199 }
17200
17201 __extension__ extern __inline int16x4x3_t
17202 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17203 vld1_s16_x3 (const int16_t *__a)
17204 {
17205 int16x4x3_t __i;
17206 __builtin_aarch64_simd_ci __o;
17207 __o = __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17208 __i.val[0] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
17209 __i.val[1] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
17210 __i.val[2] = (int16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
17211 return __i;
17212 }
17213
17214 __extension__ extern __inline uint32x2x3_t
17215 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17216 vld1_u32_x3 (const uint32_t *__a)
17217 {
17218 uint32x2x3_t __i;
17219 __builtin_aarch64_simd_ci __o;
17220 __o = __builtin_aarch64_ld1x3v2si ((const __builtin_aarch64_simd_si *) __a);
17221 __i.val[0] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
17222 __i.val[1] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
17223 __i.val[2] = (uint32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
17224 return __i;
17225 }
17226
17227 __extension__ extern __inline int32x2x3_t
17228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17229 vld1_s32_x3 (const uint32_t *__a)
17230 {
17231 int32x2x3_t __i;
17232 __builtin_aarch64_simd_ci __o;
17233 __o = __builtin_aarch64_ld1x3v2si ((const __builtin_aarch64_simd_si *) __a);
17234 __i.val[0] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 0);
17235 __i.val[1] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 1);
17236 __i.val[2] = (int32x2_t) __builtin_aarch64_get_dregciv2si (__o, 2);
17237 return __i;
17238 }
17239
17240 __extension__ extern __inline uint64x1x3_t
17241 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17242 vld1_u64_x3 (const uint64_t *__a)
17243 {
17244 uint64x1x3_t __i;
17245 __builtin_aarch64_simd_ci __o;
17246 __o = __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
17247 __i.val[0] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17248 __i.val[1] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17249 __i.val[2] = (uint64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17250 return __i;
17251 }
17252
17253 __extension__ extern __inline int64x1x3_t
17254 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17255 vld1_s64_x3 (const int64_t *__a)
17256 {
17257 int64x1x3_t __i;
17258 __builtin_aarch64_simd_ci __o;
17259 __o = __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
17260 __i.val[0] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17261 __i.val[1] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17262 __i.val[2] = (int64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17263
17264 return __i;
17265 }
17266
17267 __extension__ extern __inline float16x4x3_t
17268 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17269 vld1_f16_x3 (const float16_t *__a)
17270 {
17271 float16x4x3_t __i;
17272 __builtin_aarch64_simd_ci __o;
17273 __o = __builtin_aarch64_ld1x3v4hf ((const __builtin_aarch64_simd_hf *) __a);
17274 __i.val[0] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 0);
17275 __i.val[1] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 1);
17276 __i.val[2] = (float16x4_t) __builtin_aarch64_get_dregciv4hf (__o, 2);
17277 return __i;
17278 }
17279
17280 __extension__ extern __inline float32x2x3_t
17281 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17282 vld1_f32_x3 (const float32_t *__a)
17283 {
17284 float32x2x3_t __i;
17285 __builtin_aarch64_simd_ci __o;
17286 __o = __builtin_aarch64_ld1x3v2sf ((const __builtin_aarch64_simd_sf *) __a);
17287 __i.val[0] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 0);
17288 __i.val[1] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 1);
17289 __i.val[2] = (float32x2_t) __builtin_aarch64_get_dregciv2sf (__o, 2);
17290 return __i;
17291 }
17292
17293 __extension__ extern __inline float64x1x3_t
17294 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17295 vld1_f64_x3 (const float64_t *__a)
17296 {
17297 float64x1x3_t __i;
17298 __builtin_aarch64_simd_ci __o;
17299 __o = __builtin_aarch64_ld1x3df ((const __builtin_aarch64_simd_df *) __a);
17300 __i.val[0] = (float64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17301 __i.val[1] = (float64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17302 __i.val[2] = (float64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17303 return __i;
17304 }
17305
17306 __extension__ extern __inline poly8x8x3_t
17307 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17308 vld1_p8_x3 (const poly8_t *__a)
17309 {
17310 poly8x8x3_t __i;
17311 __builtin_aarch64_simd_ci __o;
17312 __o = __builtin_aarch64_ld1x3v8qi ((const __builtin_aarch64_simd_qi *) __a);
17313 __i.val[0] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 0);
17314 __i.val[1] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 1);
17315 __i.val[2] = (poly8x8_t) __builtin_aarch64_get_dregciv8qi (__o, 2);
17316 return __i;
17317 }
17318
17319 __extension__ extern __inline poly16x4x3_t
17320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17321 vld1_p16_x3 (const poly16_t *__a)
17322 {
17323 poly16x4x3_t __i;
17324 __builtin_aarch64_simd_ci __o;
17325 __o = __builtin_aarch64_ld1x3v4hi ((const __builtin_aarch64_simd_hi *) __a);
17326 __i.val[0] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 0);
17327 __i.val[1] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 1);
17328 __i.val[2] = (poly16x4_t) __builtin_aarch64_get_dregciv4hi (__o, 2);
17329 return __i;
17330 }
17331
17332 __extension__ extern __inline poly64x1x3_t
17333 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17334 vld1_p64_x3 (const poly64_t *__a)
17335 {
17336 poly64x1x3_t __i;
17337 __builtin_aarch64_simd_ci __o;
17338 __o = __builtin_aarch64_ld1x3di ((const __builtin_aarch64_simd_di *) __a);
17339 __i.val[0] = (poly64x1_t) __builtin_aarch64_get_dregcidi (__o, 0);
17340 __i.val[1] = (poly64x1_t) __builtin_aarch64_get_dregcidi (__o, 1);
17341 __i.val[2] = (poly64x1_t) __builtin_aarch64_get_dregcidi (__o, 2);
17342
17343 return __i;
17344 }
17345
17346 __extension__ extern __inline uint8x16x3_t
17347 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17348 vld1q_u8_x3 (const uint8_t *__a)
17349 {
17350 uint8x16x3_t __i;
17351 __builtin_aarch64_simd_ci __o;
17352 __o = __builtin_aarch64_ld1x3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17353 __i.val[0] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
17354 __i.val[1] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
17355 __i.val[2] = (uint8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
17356 return __i;
17357 }
17358
17359 __extension__ extern __inline int8x16x3_t
17360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17361 vld1q_s8_x3 (const int8_t *__a)
17362 {
17363 int8x16x3_t __i;
17364 __builtin_aarch64_simd_ci __o;
17365 __o = __builtin_aarch64_ld1x3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17366 __i.val[0] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
17367 __i.val[1] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
17368 __i.val[2] = (int8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
17369 return __i;
17370 }
17371
17372 __extension__ extern __inline uint16x8x3_t
17373 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17374 vld1q_u16_x3 (const uint16_t *__a)
17375 {
17376 uint16x8x3_t __i;
17377 __builtin_aarch64_simd_ci __o;
17378 __o = __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17379 __i.val[0] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
17380 __i.val[1] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
17381 __i.val[2] = (uint16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
17382 return __i;
17383 }
17384
17385 __extension__ extern __inline int16x8x3_t
17386 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17387 vld1q_s16_x3 (const int16_t *__a)
17388 {
17389 int16x8x3_t __i;
17390 __builtin_aarch64_simd_ci __o;
17391 __o = __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17392 __i.val[0] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
17393 __i.val[1] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
17394 __i.val[2] = (int16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
17395 return __i;
17396 }
17397
17398 __extension__ extern __inline uint32x4x3_t
17399 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17400 vld1q_u32_x3 (const uint32_t *__a)
17401 {
17402 uint32x4x3_t __i;
17403 __builtin_aarch64_simd_ci __o;
17404 __o = __builtin_aarch64_ld1x3v4si ((const __builtin_aarch64_simd_si *) __a);
17405 __i.val[0] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
17406 __i.val[1] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
17407 __i.val[2] = (uint32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
17408 return __i;
17409 }
17410
17411 __extension__ extern __inline int32x4x3_t
17412 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17413 vld1q_s32_x3 (const int32_t *__a)
17414 {
17415 int32x4x3_t __i;
17416 __builtin_aarch64_simd_ci __o;
17417 __o = __builtin_aarch64_ld1x3v4si ((const __builtin_aarch64_simd_si *) __a);
17418 __i.val[0] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 0);
17419 __i.val[1] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 1);
17420 __i.val[2] = (int32x4_t) __builtin_aarch64_get_qregciv4si (__o, 2);
17421 return __i;
17422 }
17423
17424 __extension__ extern __inline uint64x2x3_t
17425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17426 vld1q_u64_x3 (const uint64_t *__a)
17427 {
17428 uint64x2x3_t __i;
17429 __builtin_aarch64_simd_ci __o;
17430 __o = __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
17431 __i.val[0] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
17432 __i.val[1] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
17433 __i.val[2] = (uint64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
17434 return __i;
17435 }
17436
17437 __extension__ extern __inline int64x2x3_t
17438 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17439 vld1q_s64_x3 (const int64_t *__a)
17440 {
17441 int64x2x3_t __i;
17442 __builtin_aarch64_simd_ci __o;
17443 __o = __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
17444 __i.val[0] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
17445 __i.val[1] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
17446 __i.val[2] = (int64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
17447 return __i;
17448 }
17449
17450 __extension__ extern __inline float16x8x3_t
17451 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17452 vld1q_f16_x3 (const float16_t *__a)
17453 {
17454 float16x8x3_t __i;
17455 __builtin_aarch64_simd_ci __o;
17456 __o = __builtin_aarch64_ld1x3v8hf ((const __builtin_aarch64_simd_hf *) __a);
17457 __i.val[0] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 0);
17458 __i.val[1] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 1);
17459 __i.val[2] = (float16x8_t) __builtin_aarch64_get_qregciv8hf (__o, 2);
17460 return __i;
17461 }
17462
17463 __extension__ extern __inline float32x4x3_t
17464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17465 vld1q_f32_x3 (const float32_t *__a)
17466 {
17467 float32x4x3_t __i;
17468 __builtin_aarch64_simd_ci __o;
17469 __o = __builtin_aarch64_ld1x3v4sf ((const __builtin_aarch64_simd_sf *) __a);
17470 __i.val[0] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 0);
17471 __i.val[1] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 1);
17472 __i.val[2] = (float32x4_t) __builtin_aarch64_get_qregciv4sf (__o, 2);
17473 return __i;
17474 }
17475
17476 __extension__ extern __inline float64x2x3_t
17477 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17478 vld1q_f64_x3 (const float64_t *__a)
17479 {
17480 float64x2x3_t __i;
17481 __builtin_aarch64_simd_ci __o;
17482 __o = __builtin_aarch64_ld1x3v2df ((const __builtin_aarch64_simd_df *) __a);
17483 __i.val[0] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 0);
17484 __i.val[1] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 1);
17485 __i.val[2] = (float64x2_t) __builtin_aarch64_get_qregciv2df (__o, 2);
17486 return __i;
17487 }
17488
17489 __extension__ extern __inline poly8x16x3_t
17490 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17491 vld1q_p8_x3 (const poly8_t *__a)
17492 {
17493 poly8x16x3_t __i;
17494 __builtin_aarch64_simd_ci __o;
17495 __o = __builtin_aarch64_ld1x3v16qi ((const __builtin_aarch64_simd_qi *) __a);
17496 __i.val[0] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 0);
17497 __i.val[1] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 1);
17498 __i.val[2] = (poly8x16_t) __builtin_aarch64_get_qregciv16qi (__o, 2);
17499 return __i;
17500 }
17501
17502 __extension__ extern __inline poly16x8x3_t
17503 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17504 vld1q_p16_x3 (const poly16_t *__a)
17505 {
17506 poly16x8x3_t __i;
17507 __builtin_aarch64_simd_ci __o;
17508 __o = __builtin_aarch64_ld1x3v8hi ((const __builtin_aarch64_simd_hi *) __a);
17509 __i.val[0] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 0);
17510 __i.val[1] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 1);
17511 __i.val[2] = (poly16x8_t) __builtin_aarch64_get_qregciv8hi (__o, 2);
17512 return __i;
17513 }
17514
17515 __extension__ extern __inline poly64x2x3_t
17516 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17517 vld1q_p64_x3 (const poly64_t *__a)
17518 {
17519 poly64x2x3_t __i;
17520 __builtin_aarch64_simd_ci __o;
17521 __o = __builtin_aarch64_ld1x3v2di ((const __builtin_aarch64_simd_di *) __a);
17522 __i.val[0] = (poly64x2_t) __builtin_aarch64_get_qregciv2di (__o, 0);
17523 __i.val[1] = (poly64x2_t) __builtin_aarch64_get_qregciv2di (__o, 1);
17524 __i.val[2] = (poly64x2_t) __builtin_aarch64_get_qregciv2di (__o, 2);
17525 return __i;
17526 }
17527
17148 /* vld1q */ 17528 /* vld1q */
17149 17529
17150 __extension__ extern __inline float16x8_t 17530 __extension__ extern __inline float16x8_t
17151 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) 17531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17152 vld1q_f16 (const float16_t *__a) 17532 vld1q_f16 (const float16_t *__a)
17224 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) 17604 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17225 vld1q_u8 (const uint8_t *a) 17605 vld1q_u8 (const uint8_t *a)
17226 { 17606 {
17227 return (uint8x16_t) 17607 return (uint8x16_t)
17228 __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a); 17608 __builtin_aarch64_ld1v16qi ((const __builtin_aarch64_simd_qi *) a);
17609 }
17610
17611 __extension__ extern __inline uint8x8x2_t
17612 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17613 vld1_u8_x2 (const uint8_t *__a)
17614 {
17615 uint8x8x2_t ret;
17616 __builtin_aarch64_simd_oi __o;
17617 __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17618 ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17619 ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17620 return ret;
17621 }
17622
17623 __extension__ extern __inline int8x8x2_t
17624 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17625 vld1_s8_x2 (const int8_t *__a)
17626 {
17627 int8x8x2_t ret;
17628 __builtin_aarch64_simd_oi __o;
17629 __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17630 ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17631 ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17632 return ret;
17633 }
17634
17635 __extension__ extern __inline uint16x4x2_t
17636 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17637 vld1_u16_x2 (const uint16_t *__a)
17638 {
17639 uint16x4x2_t ret;
17640 __builtin_aarch64_simd_oi __o;
17641 __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17642 ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17643 ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17644 return ret;
17645 }
17646
17647 __extension__ extern __inline int16x4x2_t
17648 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17649 vld1_s16_x2 (const int16_t *__a)
17650 {
17651 int16x4x2_t ret;
17652 __builtin_aarch64_simd_oi __o;
17653 __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17654 ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17655 ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17656 return ret;
17657 }
17658
17659 __extension__ extern __inline uint32x2x2_t
17660 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17661 vld1_u32_x2 (const uint32_t *__a)
17662 {
17663 uint32x2x2_t ret;
17664 __builtin_aarch64_simd_oi __o;
17665 __o = __builtin_aarch64_ld1x2v2si ((const __builtin_aarch64_simd_si *) __a);
17666 ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17667 ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17668 return ret;
17669 }
17670
17671 __extension__ extern __inline int32x2x2_t
17672 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17673 vld1_s32_x2 (const int32_t *__a)
17674 {
17675 int32x2x2_t ret;
17676 __builtin_aarch64_simd_oi __o;
17677 __o = __builtin_aarch64_ld1x2v2si ((const __builtin_aarch64_simd_si *) __a);
17678 ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 0);
17679 ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregoiv2si (__o, 1);
17680 return ret;
17681 }
17682
17683 __extension__ extern __inline uint64x1x2_t
17684 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17685 vld1_u64_x2 (const uint64_t *__a)
17686 {
17687 uint64x1x2_t ret;
17688 __builtin_aarch64_simd_oi __o;
17689 __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17690 ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17691 ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17692 return ret;
17693 }
17694
17695 __extension__ extern __inline int64x1x2_t
17696 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17697 vld1_s64_x2 (const int64_t *__a)
17698 {
17699 int64x1x2_t ret;
17700 __builtin_aarch64_simd_oi __o;
17701 __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17702 ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17703 ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17704 return ret;
17705 }
17706
17707 __extension__ extern __inline float16x4x2_t
17708 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17709 vld1_f16_x2 (const float16_t *__a)
17710 {
17711 float16x4x2_t ret;
17712 __builtin_aarch64_simd_oi __o;
17713 __o = __builtin_aarch64_ld1x2v4hf ((const __builtin_aarch64_simd_hf *) __a);
17714 ret.val[0] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 0);
17715 ret.val[1] = (float16x4_t) __builtin_aarch64_get_dregoiv4hf (__o, 1);
17716 return ret;
17717 }
17718
17719 __extension__ extern __inline float32x2x2_t
17720 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17721 vld1_f32_x2 (const float32_t *__a)
17722 {
17723 float32x2x2_t ret;
17724 __builtin_aarch64_simd_oi __o;
17725 __o = __builtin_aarch64_ld1x2v2sf ((const __builtin_aarch64_simd_sf *) __a);
17726 ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 0);
17727 ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregoiv2sf (__o, 1);
17728 return ret;
17729 }
17730
17731 __extension__ extern __inline float64x1x2_t
17732 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17733 vld1_f64_x2 (const float64_t *__a)
17734 {
17735 float64x1x2_t ret;
17736 __builtin_aarch64_simd_oi __o;
17737 __o = __builtin_aarch64_ld1x2df ((const __builtin_aarch64_simd_df *) __a);
17738 ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 0)};
17739 ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregoidf (__o, 1)};
17740 return ret;
17741 }
17742
17743 __extension__ extern __inline poly8x8x2_t
17744 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17745 vld1_p8_x2 (const poly8_t *__a)
17746 {
17747 poly8x8x2_t ret;
17748 __builtin_aarch64_simd_oi __o;
17749 __o = __builtin_aarch64_ld1x2v8qi ((const __builtin_aarch64_simd_qi *) __a);
17750 ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 0);
17751 ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregoiv8qi (__o, 1);
17752 return ret;
17753 }
17754
17755 __extension__ extern __inline poly16x4x2_t
17756 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17757 vld1_p16_x2 (const poly16_t *__a)
17758 {
17759 poly16x4x2_t ret;
17760 __builtin_aarch64_simd_oi __o;
17761 __o = __builtin_aarch64_ld1x2v4hi ((const __builtin_aarch64_simd_hi *) __a);
17762 ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 0);
17763 ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregoiv4hi (__o, 1);
17764 return ret;
17765 }
17766
17767 __extension__ extern __inline poly64x1x2_t
17768 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17769 vld1_p64_x2 (const poly64_t *__a)
17770 {
17771 poly64x1x2_t ret;
17772 __builtin_aarch64_simd_oi __o;
17773 __o = __builtin_aarch64_ld1x2di ((const __builtin_aarch64_simd_di *) __a);
17774 ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregoidi (__o, 0);
17775 ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregoidi (__o, 1);
17776 return ret;
17777 }
17778
17779 __extension__ extern __inline uint8x16x2_t
17780 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17781 vld1q_u8_x2 (const uint8_t *__a)
17782 {
17783 uint8x16x2_t ret;
17784 __builtin_aarch64_simd_oi __o;
17785 __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17786 ret.val[0] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17787 ret.val[1] = (uint8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17788 return ret;
17789 }
17790
17791 __extension__ extern __inline int8x16x2_t
17792 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17793 vld1q_s8_x2 (const int8_t *__a)
17794 {
17795 int8x16x2_t ret;
17796 __builtin_aarch64_simd_oi __o;
17797 __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17798 ret.val[0] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17799 ret.val[1] = (int8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17800 return ret;
17801 }
17802
17803 __extension__ extern __inline uint16x8x2_t
17804 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17805 vld1q_u16_x2 (const uint16_t *__a)
17806 {
17807 uint16x8x2_t ret;
17808 __builtin_aarch64_simd_oi __o;
17809 __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17810 ret.val[0] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17811 ret.val[1] = (uint16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17812 return ret;
17813 }
17814
17815 __extension__ extern __inline int16x8x2_t
17816 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17817 vld1q_s16_x2 (const int16_t *__a)
17818 {
17819 int16x8x2_t ret;
17820 __builtin_aarch64_simd_oi __o;
17821 __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17822 ret.val[0] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17823 ret.val[1] = (int16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17824 return ret;
17825 }
17826
17827 __extension__ extern __inline uint32x4x2_t
17828 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17829 vld1q_u32_x2 (const uint32_t *__a)
17830 {
17831 uint32x4x2_t ret;
17832 __builtin_aarch64_simd_oi __o;
17833 __o = __builtin_aarch64_ld1x2v4si ((const __builtin_aarch64_simd_si *) __a);
17834 ret.val[0] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17835 ret.val[1] = (uint32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17836 return ret;
17837 }
17838
17839 __extension__ extern __inline int32x4x2_t
17840 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17841 vld1q_s32_x2 (const int32_t *__a)
17842 {
17843 int32x4x2_t ret;
17844 __builtin_aarch64_simd_oi __o;
17845 __o = __builtin_aarch64_ld1x2v4si ((const __builtin_aarch64_simd_si *) __a);
17846 ret.val[0] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 0);
17847 ret.val[1] = (int32x4_t) __builtin_aarch64_get_qregoiv4si (__o, 1);
17848 return ret;
17849 }
17850
17851 __extension__ extern __inline uint64x2x2_t
17852 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17853 vld1q_u64_x2 (const uint64_t *__a)
17854 {
17855 uint64x2x2_t ret;
17856 __builtin_aarch64_simd_oi __o;
17857 __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17858 ret.val[0] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17859 ret.val[1] = (uint64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17860 return ret;
17861 }
17862
17863 __extension__ extern __inline int64x2x2_t
17864 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17865 vld1q_s64_x2 (const int64_t *__a)
17866 {
17867 int64x2x2_t ret;
17868 __builtin_aarch64_simd_oi __o;
17869 __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17870 ret.val[0] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17871 ret.val[1] = (int64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17872 return ret;
17873 }
17874
17875 __extension__ extern __inline float16x8x2_t
17876 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17877 vld1q_f16_x2 (const float16_t *__a)
17878 {
17879 float16x8x2_t ret;
17880 __builtin_aarch64_simd_oi __o;
17881 __o = __builtin_aarch64_ld1x2v8hf ((const __builtin_aarch64_simd_hf *) __a);
17882 ret.val[0] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 0);
17883 ret.val[1] = (float16x8_t) __builtin_aarch64_get_qregoiv8hf (__o, 1);
17884 return ret;
17885 }
17886
17887 __extension__ extern __inline float32x4x2_t
17888 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17889 vld1q_f32_x2 (const float32_t *__a)
17890 {
17891 float32x4x2_t ret;
17892 __builtin_aarch64_simd_oi __o;
17893 __o = __builtin_aarch64_ld1x2v4sf ((const __builtin_aarch64_simd_sf *) __a);
17894 ret.val[0] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 0);
17895 ret.val[1] = (float32x4_t) __builtin_aarch64_get_qregoiv4sf (__o, 1);
17896 return ret;
17897 }
17898
17899 __extension__ extern __inline float64x2x2_t
17900 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17901 vld1q_f64_x2 (const float64_t *__a)
17902 {
17903 float64x2x2_t ret;
17904 __builtin_aarch64_simd_oi __o;
17905 __o = __builtin_aarch64_ld1x2v2df ((const __builtin_aarch64_simd_df *) __a);
17906 ret.val[0] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 0);
17907 ret.val[1] = (float64x2_t) __builtin_aarch64_get_qregoiv2df (__o, 1);
17908 return ret;
17909 }
17910
17911 __extension__ extern __inline poly8x16x2_t
17912 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17913 vld1q_p8_x2 (const poly8_t *__a)
17914 {
17915 poly8x16x2_t ret;
17916 __builtin_aarch64_simd_oi __o;
17917 __o = __builtin_aarch64_ld1x2v16qi ((const __builtin_aarch64_simd_qi *) __a);
17918 ret.val[0] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 0);
17919 ret.val[1] = (poly8x16_t) __builtin_aarch64_get_qregoiv16qi (__o, 1);
17920 return ret;
17921 }
17922
17923 __extension__ extern __inline poly16x8x2_t
17924 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17925 vld1q_p16_x2 (const poly16_t *__a)
17926 {
17927 poly16x8x2_t ret;
17928 __builtin_aarch64_simd_oi __o;
17929 __o = __builtin_aarch64_ld1x2v8hi ((const __builtin_aarch64_simd_hi *) __a);
17930 ret.val[0] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 0);
17931 ret.val[1] = (poly16x8_t) __builtin_aarch64_get_qregoiv8hi (__o, 1);
17932 return ret;
17933 }
17934
17935 __extension__ extern __inline poly64x2x2_t
17936 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17937 vld1q_p64_x2 (const poly64_t *__a)
17938 {
17939 poly64x2x2_t ret;
17940 __builtin_aarch64_simd_oi __o;
17941 __o = __builtin_aarch64_ld1x2v2di ((const __builtin_aarch64_simd_di *) __a);
17942 ret.val[0] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 0);
17943 ret.val[1] = (poly64x2_t) __builtin_aarch64_get_qregoiv2di (__o, 1);
17944 return ret;
17229 } 17945 }
17230 17946
17231 __extension__ extern __inline uint16x8_t 17947 __extension__ extern __inline uint16x8_t
17232 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) 17948 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
17233 vld1q_u16 (const uint16_t *a) 17949 vld1q_u16 (const uint16_t *a)
22201 vneg_s64 (int64x1_t __a) 22917 vneg_s64 (int64x1_t __a)
22202 { 22918 {
22203 return -__a; 22919 return -__a;
22204 } 22920 }
22205 22921
22922 /* According to the ACLE, the negative of the minimum (signed)
22923 value is itself. This leads to a semantics mismatch, as this is
22924 undefined behaviour in C. The value range predictor is not
22925 aware that the negation of a negative number can still be negative
22926 and it may try to fold the expression. See the test in
22927 gcc.target/aarch64/vnegd_s64.c for an example.
22928
22929 The cast below tricks the value range predictor to include
22930 INT64_MIN in the range it computes. So for x in the range
22931 [INT64_MIN, y] the range prediction after vnegd_s64 (x) will
22932 be ~[INT64_MIN + 1, y]. */
22933
22934 __extension__ extern __inline int64_t
22935 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22936 vnegd_s64 (int64_t __a)
22937 {
22938 return - (uint64_t) __a;
22939 }
22940
22206 __extension__ extern __inline float32x4_t 22941 __extension__ extern __inline float32x4_t
22207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) 22942 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
22208 vnegq_f32 (float32x4_t __a) 22943 vnegq_f32 (float32x4_t __a)
22209 { 22944 {
22210 return -__a; 22945 return -__a;
27157 __extension__ extern __inline void 27892 __extension__ extern __inline void
27158 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) 27893 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27159 vst1q_lane_u64 (uint64_t *__a, uint64x2_t __b, const int __lane) 27894 vst1q_lane_u64 (uint64_t *__a, uint64x2_t __b, const int __lane)
27160 { 27895 {
27161 *__a = __aarch64_vget_lane_any (__b, __lane); 27896 *__a = __aarch64_vget_lane_any (__b, __lane);
27897 }
27898
27899 /* vst1x2 */
27900
27901 __extension__ extern __inline void
27902 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27903 vst1_s64_x2 (int64_t * __a, int64x1x2_t val)
27904 {
27905 __builtin_aarch64_simd_oi __o;
27906 int64x2x2_t temp;
27907 temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
27908 temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
27909 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
27910 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
27911 __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __o);
27912 }
27913
27914 __extension__ extern __inline void
27915 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27916 vst1_u64_x2 (uint64_t * __a, uint64x1x2_t val)
27917 {
27918 __builtin_aarch64_simd_oi __o;
27919 uint64x2x2_t temp;
27920 temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
27921 temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
27922 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[0], 0);
27923 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) temp.val[1], 1);
27924 __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __o);
27925 }
27926
27927 __extension__ extern __inline void
27928 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27929 vst1_f64_x2 (float64_t * __a, float64x1x2_t val)
27930 {
27931 __builtin_aarch64_simd_oi __o;
27932 float64x2x2_t temp;
27933 temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
27934 temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
27935 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[0], 0);
27936 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) temp.val[1], 1);
27937 __builtin_aarch64_st1x2df ((__builtin_aarch64_simd_df *) __a, __o);
27938 }
27939
27940 __extension__ extern __inline void
27941 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27942 vst1_s8_x2 (int8_t * __a, int8x8x2_t val)
27943 {
27944 __builtin_aarch64_simd_oi __o;
27945 int8x16x2_t temp;
27946 temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
27947 temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
27948 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
27949 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
27950 __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27951 }
27952
27953 __extension__ extern __inline void
27954 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27955 vst1_p8_x2 (poly8_t * __a, poly8x8x2_t val)
27956 {
27957 __builtin_aarch64_simd_oi __o;
27958 poly8x16x2_t temp;
27959 temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
27960 temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
27961 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
27962 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
27963 __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
27964 }
27965
27966 __extension__ extern __inline void
27967 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27968 vst1_s16_x2 (int16_t * __a, int16x4x2_t val)
27969 {
27970 __builtin_aarch64_simd_oi __o;
27971 int16x8x2_t temp;
27972 temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
27973 temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
27974 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
27975 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
27976 __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27977 }
27978
27979 __extension__ extern __inline void
27980 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27981 vst1_p16_x2 (poly16_t * __a, poly16x4x2_t val)
27982 {
27983 __builtin_aarch64_simd_oi __o;
27984 poly16x8x2_t temp;
27985 temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
27986 temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
27987 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
27988 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
27989 __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
27990 }
27991
27992 __extension__ extern __inline void
27993 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
27994 vst1_s32_x2 (int32_t * __a, int32x2x2_t val)
27995 {
27996 __builtin_aarch64_simd_oi __o;
27997 int32x4x2_t temp;
27998 temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
27999 temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
28000 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
28001 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
28002 __builtin_aarch64_st1x2v2si ((__builtin_aarch64_simd_si *) __a, __o);
28003 }
28004
28005 __extension__ extern __inline void
28006 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28007 vst1_u8_x2 (uint8_t * __a, uint8x8x2_t val)
28008 {
28009 __builtin_aarch64_simd_oi __o;
28010 uint8x16x2_t temp;
28011 temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
28012 temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
28013 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[0], 0);
28014 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) temp.val[1], 1);
28015 __builtin_aarch64_st1x2v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28016 }
28017
28018 __extension__ extern __inline void
28019 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28020 vst1_u16_x2 (uint16_t * __a, uint16x4x2_t val)
28021 {
28022 __builtin_aarch64_simd_oi __o;
28023 uint16x8x2_t temp;
28024 temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
28025 temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
28026 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[0], 0);
28027 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) temp.val[1], 1);
28028 __builtin_aarch64_st1x2v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28029 }
28030
28031 __extension__ extern __inline void
28032 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28033 vst1_u32_x2 (uint32_t * __a, uint32x2x2_t val)
28034 {
28035 __builtin_aarch64_simd_oi __o;
28036 uint32x4x2_t temp;
28037 temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
28038 temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
28039 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[0], 0);
28040 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) temp.val[1], 1);
28041 __builtin_aarch64_st1x2v2si ((__builtin_aarch64_simd_si *) __a, __o);
28042 }
28043
28044 __extension__ extern __inline void
28045 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28046 vst1_f16_x2 (float16_t * __a, float16x4x2_t val)
28047 {
28048 __builtin_aarch64_simd_oi __o;
28049 float16x8x2_t temp;
28050 temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
28051 temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
28052 __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[0], 0);
28053 __o = __builtin_aarch64_set_qregoiv8hf (__o, temp.val[1], 1);
28054 __builtin_aarch64_st1x2v4hf (__a, __o);
28055 }
28056
28057 __extension__ extern __inline void
28058 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28059 vst1_f32_x2 (float32_t * __a, float32x2x2_t val)
28060 {
28061 __builtin_aarch64_simd_oi __o;
28062 float32x4x2_t temp;
28063 temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
28064 temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
28065 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[0], 0);
28066 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) temp.val[1], 1);
28067 __builtin_aarch64_st1x2v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
28068 }
28069
28070 __extension__ extern __inline void
28071 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28072 vst1_p64_x2 (poly64_t * __a, poly64x1x2_t val)
28073 {
28074 __builtin_aarch64_simd_oi __o;
28075 poly64x2x2_t temp;
28076 temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
28077 temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
28078 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28079 (poly64x2_t) temp.val[0], 0);
28080 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28081 (poly64x2_t) temp.val[1], 1);
28082 __builtin_aarch64_st1x2di ((__builtin_aarch64_simd_di *) __a, __o);
28083 }
28084
28085 __extension__ extern __inline void
28086 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28087 vst1q_s8_x2 (int8_t * __a, int8x16x2_t val)
28088 {
28089 __builtin_aarch64_simd_oi __o;
28090 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
28091 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
28092 __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28093 }
28094
28095 __extension__ extern __inline void
28096 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28097 vst1q_p8_x2 (poly8_t * __a, poly8x16x2_t val)
28098 {
28099 __builtin_aarch64_simd_oi __o;
28100 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
28101 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
28102 __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28103 }
28104
28105 __extension__ extern __inline void
28106 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28107 vst1q_s16_x2 (int16_t * __a, int16x8x2_t val)
28108 {
28109 __builtin_aarch64_simd_oi __o;
28110 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
28111 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
28112 __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28113 }
28114
28115 __extension__ extern __inline void
28116 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28117 vst1q_p16_x2 (poly16_t * __a, poly16x8x2_t val)
28118 {
28119 __builtin_aarch64_simd_oi __o;
28120 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
28121 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
28122 __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28123 }
28124
28125 __extension__ extern __inline void
28126 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28127 vst1q_s32_x2 (int32_t * __a, int32x4x2_t val)
28128 {
28129 __builtin_aarch64_simd_oi __o;
28130 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
28131 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
28132 __builtin_aarch64_st1x2v4si ((__builtin_aarch64_simd_si *) __a, __o);
28133 }
28134
28135 __extension__ extern __inline void
28136 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28137 vst1q_s64_x2 (int64_t * __a, int64x2x2_t val)
28138 {
28139 __builtin_aarch64_simd_oi __o;
28140 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
28141 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
28142 __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28143 }
28144
28145 __extension__ extern __inline void
28146 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28147 vst1q_u8_x2 (uint8_t * __a, uint8x16x2_t val)
28148 {
28149 __builtin_aarch64_simd_oi __o;
28150 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
28151 __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
28152 __builtin_aarch64_st1x2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28153 }
28154
28155 __extension__ extern __inline void
28156 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28157 vst1q_u16_x2 (uint16_t * __a, uint16x8x2_t val)
28158 {
28159 __builtin_aarch64_simd_oi __o;
28160 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
28161 __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
28162 __builtin_aarch64_st1x2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28163 }
28164
28165 __extension__ extern __inline void
28166 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28167 vst1q_u32_x2 (uint32_t * __a, uint32x4x2_t val)
28168 {
28169 __builtin_aarch64_simd_oi __o;
28170 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
28171 __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
28172 __builtin_aarch64_st1x2v4si ((__builtin_aarch64_simd_si *) __a, __o);
28173 }
28174
28175 __extension__ extern __inline void
28176 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28177 vst1q_u64_x2 (uint64_t * __a, uint64x2x2_t val)
28178 {
28179 __builtin_aarch64_simd_oi __o;
28180 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
28181 __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
28182 __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28183 }
28184
28185 __extension__ extern __inline void
28186 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28187 vst1q_f16_x2 (float16_t * __a, float16x8x2_t val)
28188 {
28189 __builtin_aarch64_simd_oi __o;
28190 __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[0], 0);
28191 __o = __builtin_aarch64_set_qregoiv8hf (__o, val.val[1], 1);
28192 __builtin_aarch64_st1x2v8hf (__a, __o);
28193 }
28194
28195 __extension__ extern __inline void
28196 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28197 vst1q_f32_x2 (float32_t * __a, float32x4x2_t val)
28198 {
28199 __builtin_aarch64_simd_oi __o;
28200 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[0], 0);
28201 __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[1], 1);
28202 __builtin_aarch64_st1x2v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
28203 }
28204
28205 __extension__ extern __inline void
28206 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28207 vst1q_f64_x2 (float64_t * __a, float64x2x2_t val)
28208 {
28209 __builtin_aarch64_simd_oi __o;
28210 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[0], 0);
28211 __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[1], 1);
28212 __builtin_aarch64_st1x2v2df ((__builtin_aarch64_simd_df *) __a, __o);
28213 }
28214
28215 __extension__ extern __inline void
28216 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28217 vst1q_p64_x2 (poly64_t * __a, poly64x2x2_t val)
28218 {
28219 __builtin_aarch64_simd_oi __o;
28220 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28221 (poly64x2_t) val.val[0], 0);
28222 __o = __builtin_aarch64_set_qregoiv2di_ssps (__o,
28223 (poly64x2_t) val.val[1], 1);
28224 __builtin_aarch64_st1x2v2di ((__builtin_aarch64_simd_di *) __a, __o);
28225 }
28226
28227 /* vst1x3 */
28228
28229 __extension__ extern __inline void
28230 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28231 vst1_s64_x3 (int64_t * __a, int64x1x3_t val)
28232 {
28233 __builtin_aarch64_simd_ci __o;
28234 int64x2x3_t temp;
28235 temp.val[0] = vcombine_s64 (val.val[0], vcreate_s64 (__AARCH64_INT64_C (0)));
28236 temp.val[1] = vcombine_s64 (val.val[1], vcreate_s64 (__AARCH64_INT64_C (0)));
28237 temp.val[2] = vcombine_s64 (val.val[2], vcreate_s64 (__AARCH64_INT64_C (0)));
28238 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
28239 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
28240 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
28241 __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __o);
28242 }
28243
28244 __extension__ extern __inline void
28245 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28246 vst1_u64_x3 (uint64_t * __a, uint64x1x3_t val)
28247 {
28248 __builtin_aarch64_simd_ci __o;
28249 uint64x2x3_t temp;
28250 temp.val[0] = vcombine_u64 (val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0)));
28251 temp.val[1] = vcombine_u64 (val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0)));
28252 temp.val[2] = vcombine_u64 (val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0)));
28253 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[0], 0);
28254 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[1], 1);
28255 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) temp.val[2], 2);
28256 __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __o);
28257 }
28258
28259 __extension__ extern __inline void
28260 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28261 vst1_f64_x3 (float64_t * __a, float64x1x3_t val)
28262 {
28263 __builtin_aarch64_simd_ci __o;
28264 float64x2x3_t temp;
28265 temp.val[0] = vcombine_f64 (val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0)));
28266 temp.val[1] = vcombine_f64 (val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0)));
28267 temp.val[2] = vcombine_f64 (val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0)));
28268 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[0], 0);
28269 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[1], 1);
28270 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) temp.val[2], 2);
28271 __builtin_aarch64_st1x3df ((__builtin_aarch64_simd_df *) __a, __o);
28272 }
28273
28274 __extension__ extern __inline void
28275 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28276 vst1_s8_x3 (int8_t * __a, int8x8x3_t val)
28277 {
28278 __builtin_aarch64_simd_ci __o;
28279 int8x16x3_t temp;
28280 temp.val[0] = vcombine_s8 (val.val[0], vcreate_s8 (__AARCH64_INT64_C (0)));
28281 temp.val[1] = vcombine_s8 (val.val[1], vcreate_s8 (__AARCH64_INT64_C (0)));
28282 temp.val[2] = vcombine_s8 (val.val[2], vcreate_s8 (__AARCH64_INT64_C (0)));
28283 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
28284 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
28285 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
28286 __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28287 }
28288
28289 __extension__ extern __inline void
28290 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28291 vst1_p8_x3 (poly8_t * __a, poly8x8x3_t val)
28292 {
28293 __builtin_aarch64_simd_ci __o;
28294 poly8x16x3_t temp;
28295 temp.val[0] = vcombine_p8 (val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0)));
28296 temp.val[1] = vcombine_p8 (val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0)));
28297 temp.val[2] = vcombine_p8 (val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0)));
28298 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
28299 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
28300 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
28301 __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28302 }
28303
28304 __extension__ extern __inline void
28305 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28306 vst1_s16_x3 (int16_t * __a, int16x4x3_t val)
28307 {
28308 __builtin_aarch64_simd_ci __o;
28309 int16x8x3_t temp;
28310 temp.val[0] = vcombine_s16 (val.val[0], vcreate_s16 (__AARCH64_INT64_C (0)));
28311 temp.val[1] = vcombine_s16 (val.val[1], vcreate_s16 (__AARCH64_INT64_C (0)));
28312 temp.val[2] = vcombine_s16 (val.val[2], vcreate_s16 (__AARCH64_INT64_C (0)));
28313 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
28314 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
28315 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
28316 __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28317 }
28318
28319 __extension__ extern __inline void
28320 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28321 vst1_p16_x3 (poly16_t * __a, poly16x4x3_t val)
28322 {
28323 __builtin_aarch64_simd_ci __o;
28324 poly16x8x3_t temp;
28325 temp.val[0] = vcombine_p16 (val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0)));
28326 temp.val[1] = vcombine_p16 (val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0)));
28327 temp.val[2] = vcombine_p16 (val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0)));
28328 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
28329 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
28330 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
28331 __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28332 }
28333
28334 __extension__ extern __inline void
28335 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28336 vst1_s32_x3 (int32_t * __a, int32x2x3_t val)
28337 {
28338 __builtin_aarch64_simd_ci __o;
28339 int32x4x3_t temp;
28340 temp.val[0] = vcombine_s32 (val.val[0], vcreate_s32 (__AARCH64_INT64_C (0)));
28341 temp.val[1] = vcombine_s32 (val.val[1], vcreate_s32 (__AARCH64_INT64_C (0)));
28342 temp.val[2] = vcombine_s32 (val.val[2], vcreate_s32 (__AARCH64_INT64_C (0)));
28343 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
28344 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
28345 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
28346 __builtin_aarch64_st1x3v2si ((__builtin_aarch64_simd_si *) __a, __o);
28347 }
28348
28349 __extension__ extern __inline void
28350 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28351 vst1_u8_x3 (uint8_t * __a, uint8x8x3_t val)
28352 {
28353 __builtin_aarch64_simd_ci __o;
28354 uint8x16x3_t temp;
28355 temp.val[0] = vcombine_u8 (val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0)));
28356 temp.val[1] = vcombine_u8 (val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0)));
28357 temp.val[2] = vcombine_u8 (val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0)));
28358 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[0], 0);
28359 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[1], 1);
28360 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) temp.val[2], 2);
28361 __builtin_aarch64_st1x3v8qi ((__builtin_aarch64_simd_qi *) __a, __o);
28362 }
28363
28364 __extension__ extern __inline void
28365 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28366 vst1_u16_x3 (uint16_t * __a, uint16x4x3_t val)
28367 {
28368 __builtin_aarch64_simd_ci __o;
28369 uint16x8x3_t temp;
28370 temp.val[0] = vcombine_u16 (val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0)));
28371 temp.val[1] = vcombine_u16 (val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0)));
28372 temp.val[2] = vcombine_u16 (val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0)));
28373 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[0], 0);
28374 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[1], 1);
28375 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) temp.val[2], 2);
28376 __builtin_aarch64_st1x3v4hi ((__builtin_aarch64_simd_hi *) __a, __o);
28377 }
28378
28379 __extension__ extern __inline void
28380 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28381 vst1_u32_x3 (uint32_t * __a, uint32x2x3_t val)
28382 {
28383 __builtin_aarch64_simd_ci __o;
28384 uint32x4x3_t temp;
28385 temp.val[0] = vcombine_u32 (val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0)));
28386 temp.val[1] = vcombine_u32 (val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0)));
28387 temp.val[2] = vcombine_u32 (val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0)));
28388 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[0], 0);
28389 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[1], 1);
28390 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) temp.val[2], 2);
28391 __builtin_aarch64_st1x3v2si ((__builtin_aarch64_simd_si *) __a, __o);
28392 }
28393
28394 __extension__ extern __inline void
28395 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28396 vst1_f16_x3 (float16_t * __a, float16x4x3_t val)
28397 {
28398 __builtin_aarch64_simd_ci __o;
28399 float16x8x3_t temp;
28400 temp.val[0] = vcombine_f16 (val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0)));
28401 temp.val[1] = vcombine_f16 (val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0)));
28402 temp.val[2] = vcombine_f16 (val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0)));
28403 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[0], 0);
28404 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[1], 1);
28405 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) temp.val[2], 2);
28406 __builtin_aarch64_st1x3v4hf ((__builtin_aarch64_simd_hf *) __a, __o);
28407 }
28408
28409 __extension__ extern __inline void
28410 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28411 vst1_f32_x3 (float32_t * __a, float32x2x3_t val)
28412 {
28413 __builtin_aarch64_simd_ci __o;
28414 float32x4x3_t temp;
28415 temp.val[0] = vcombine_f32 (val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0)));
28416 temp.val[1] = vcombine_f32 (val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0)));
28417 temp.val[2] = vcombine_f32 (val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0)));
28418 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[0], 0);
28419 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[1], 1);
28420 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) temp.val[2], 2);
28421 __builtin_aarch64_st1x3v2sf ((__builtin_aarch64_simd_sf *) __a, __o);
28422 }
28423
28424 __extension__ extern __inline void
28425 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28426 vst1_p64_x3 (poly64_t * __a, poly64x1x3_t val)
28427 {
28428 __builtin_aarch64_simd_ci __o;
28429 poly64x2x3_t temp;
28430 temp.val[0] = vcombine_p64 (val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0)));
28431 temp.val[1] = vcombine_p64 (val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0)));
28432 temp.val[2] = vcombine_p64 (val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0)));
28433 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28434 (poly64x2_t) temp.val[0], 0);
28435 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28436 (poly64x2_t) temp.val[1], 1);
28437 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28438 (poly64x2_t) temp.val[2], 2);
28439 __builtin_aarch64_st1x3di ((__builtin_aarch64_simd_di *) __a, __o);
28440 }
28441
28442 __extension__ extern __inline void
28443 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28444 vst1q_s8_x3 (int8_t * __a, int8x16x3_t val)
28445 {
28446 __builtin_aarch64_simd_ci __o;
28447 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
28448 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
28449 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
28450 __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28451 }
28452
28453 __extension__ extern __inline void
28454 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28455 vst1q_p8_x3 (poly8_t * __a, poly8x16x3_t val)
28456 {
28457 __builtin_aarch64_simd_ci __o;
28458 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
28459 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
28460 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
28461 __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28462 }
28463
28464 __extension__ extern __inline void
28465 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28466 vst1q_s16_x3 (int16_t * __a, int16x8x3_t val)
28467 {
28468 __builtin_aarch64_simd_ci __o;
28469 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
28470 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
28471 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
28472 __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28473 }
28474
28475 __extension__ extern __inline void
28476 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28477 vst1q_p16_x3 (poly16_t * __a, poly16x8x3_t val)
28478 {
28479 __builtin_aarch64_simd_ci __o;
28480 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
28481 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
28482 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
28483 __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28484 }
28485
28486 __extension__ extern __inline void
28487 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28488 vst1q_s32_x3 (int32_t * __a, int32x4x3_t val)
28489 {
28490 __builtin_aarch64_simd_ci __o;
28491 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
28492 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
28493 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
28494 __builtin_aarch64_st1x3v4si ((__builtin_aarch64_simd_si *) __a, __o);
28495 }
28496
28497 __extension__ extern __inline void
28498 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28499 vst1q_s64_x3 (int64_t * __a, int64x2x3_t val)
28500 {
28501 __builtin_aarch64_simd_ci __o;
28502 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
28503 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
28504 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
28505 __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28506 }
28507
28508 __extension__ extern __inline void
28509 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28510 vst1q_u8_x3 (uint8_t * __a, uint8x16x3_t val)
28511 {
28512 __builtin_aarch64_simd_ci __o;
28513 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
28514 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
28515 __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
28516 __builtin_aarch64_st1x3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
28517 }
28518
28519 __extension__ extern __inline void
28520 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28521 vst1q_u16_x3 (uint16_t * __a, uint16x8x3_t val)
28522 {
28523 __builtin_aarch64_simd_ci __o;
28524 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
28525 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
28526 __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
28527 __builtin_aarch64_st1x3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
28528 }
28529
28530 __extension__ extern __inline void
28531 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28532 vst1q_u32_x3 (uint32_t * __a, uint32x4x3_t val)
28533 {
28534 __builtin_aarch64_simd_ci __o;
28535 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
28536 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
28537 __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
28538 __builtin_aarch64_st1x3v4si ((__builtin_aarch64_simd_si *) __a, __o);
28539 }
28540
28541 __extension__ extern __inline void
28542 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28543 vst1q_u64_x3 (uint64_t * __a, uint64x2x3_t val)
28544 {
28545 __builtin_aarch64_simd_ci __o;
28546 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
28547 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
28548 __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
28549 __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a, __o);
28550 }
28551
28552 __extension__ extern __inline void
28553 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28554 vst1q_f16_x3 (float16_t * __a, float16x8x3_t val)
28555 {
28556 __builtin_aarch64_simd_ci __o;
28557 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[0], 0);
28558 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[1], 1);
28559 __o = __builtin_aarch64_set_qregciv8hf (__o, (float16x8_t) val.val[2], 2);
28560 __builtin_aarch64_st1x3v8hf ((__builtin_aarch64_simd_hf *) __a, __o);
28561 }
28562
28563 __extension__ extern __inline void
28564 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28565 vst1q_f32_x3 (float32_t * __a, float32x4x3_t val)
28566 {
28567 __builtin_aarch64_simd_ci __o;
28568 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[0], 0);
28569 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[1], 1);
28570 __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[2], 2);
28571 __builtin_aarch64_st1x3v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
28572 }
28573
28574 __extension__ extern __inline void
28575 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28576 vst1q_f64_x3 (float64_t * __a, float64x2x3_t val)
28577 {
28578 __builtin_aarch64_simd_ci __o;
28579 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[0], 0);
28580 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[1], 1);
28581 __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[2], 2);
28582 __builtin_aarch64_st1x3v2df ((__builtin_aarch64_simd_df *) __a, __o);
28583 }
28584
28585 __extension__ extern __inline void
28586 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
28587 vst1q_p64_x3 (poly64_t * __a, poly64x2x3_t val)
28588 {
28589 __builtin_aarch64_simd_ci __o;
28590 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28591 (poly64x2_t) val.val[0], 0);
28592 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28593 (poly64x2_t) val.val[1], 1);
28594 __o = __builtin_aarch64_set_qregciv2di_ssps (__o,
28595 (poly64x2_t) val.val[2], 2);
28596 __builtin_aarch64_st1x3v2di ((__builtin_aarch64_simd_di *) __a, __o);
27162 } 28597 }
27163 28598
27164 /* vstn */ 28599 /* vstn */
27165 28600
27166 __extension__ extern __inline void 28601 __extension__ extern __inline void
31630 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) 33065 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
31631 vdotq_laneq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b, const int __index) 33066 vdotq_laneq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b, const int __index)
31632 { 33067 {
31633 return __builtin_aarch64_sdot_laneqv16qi (__r, __a, __b, __index); 33068 return __builtin_aarch64_sdot_laneqv16qi (__r, __a, __b, __index);
31634 } 33069 }
33070 #pragma GCC pop_options
33071
33072 #pragma GCC push_options
33073 #pragma GCC target(("arch=armv8.2-a+sm4"))
33074
33075 __extension__ extern __inline uint32x4_t
33076 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33077 vsm3ss1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33078 {
33079 return __builtin_aarch64_sm3ss1qv4si_uuuu (__a, __b, __c);
33080 }
33081
33082 __extension__ extern __inline uint32x4_t
33083 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33084 vsm3tt1aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33085 {
33086 return __builtin_aarch64_sm3tt1aqv4si_uuuus (__a, __b, __c, __imm2);
33087 }
33088
33089 __extension__ extern __inline uint32x4_t
33090 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33091 vsm3tt1bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33092 {
33093 return __builtin_aarch64_sm3tt1bqv4si_uuuus (__a, __b, __c, __imm2);
33094 }
33095
33096 __extension__ extern __inline uint32x4_t
33097 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33098 vsm3tt2aq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33099 {
33100 return __builtin_aarch64_sm3tt2aqv4si_uuuus (__a, __b, __c, __imm2);
33101 }
33102
33103 __extension__ extern __inline uint32x4_t
33104 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33105 vsm3tt2bq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c, const int __imm2)
33106 {
33107 return __builtin_aarch64_sm3tt2bqv4si_uuuus (__a, __b, __c, __imm2);
33108 }
33109
33110 __extension__ extern __inline uint32x4_t
33111 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33112 vsm3partw1q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33113 {
33114 return __builtin_aarch64_sm3partw1qv4si_uuuu (__a, __b, __c);
33115 }
33116 __extension__ extern __inline uint32x4_t
33117 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33118 vsm3partw2q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33119 {
33120 return __builtin_aarch64_sm3partw2qv4si_uuuu (__a, __b, __c);
33121 }
33122
33123 __extension__ extern __inline uint32x4_t
33124 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33125 vsm4eq_u32 (uint32x4_t __a, uint32x4_t __b)
33126 {
33127 return __builtin_aarch64_sm4eqv4si_uuu (__a, __b);
33128 }
33129
33130 __extension__ extern __inline uint32x4_t
33131 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33132 vsm4ekeyq_u32 (uint32x4_t __a, uint32x4_t __b)
33133 {
33134 return __builtin_aarch64_sm4ekeyqv4si_uuu (__a, __b);
33135 }
33136
33137 #pragma GCC pop_options
33138
33139 #pragma GCC push_options
33140 #pragma GCC target(("arch=armv8.2-a+crypto"))
33141
33142 __extension__ extern __inline uint64x2_t
33143 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33144 vsha512hq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33145 {
33146 return __builtin_aarch64_crypto_sha512hqv2di_uuuu (__a, __b, __c);
33147 }
33148
33149 __extension__ extern __inline uint64x2_t
33150 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33151 vsha512h2q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33152 {
33153 return __builtin_aarch64_crypto_sha512h2qv2di_uuuu (__a, __b, __c);
33154 }
33155
33156 __extension__ extern __inline uint64x2_t
33157 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33158 vsha512su0q_u64 (uint64x2_t __a, uint64x2_t __b)
33159 {
33160 return __builtin_aarch64_crypto_sha512su0qv2di_uuu (__a, __b);
33161 }
33162
33163 __extension__ extern __inline uint64x2_t
33164 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33165 vsha512su1q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33166 {
33167 return __builtin_aarch64_crypto_sha512su1qv2di_uuuu (__a, __b, __c);
33168 }
33169
33170 __extension__ extern __inline uint8x16_t
33171 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33172 veor3q_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
33173 {
33174 return __builtin_aarch64_eor3qv16qi_uuuu (__a, __b, __c);
33175 }
33176
33177 __extension__ extern __inline uint16x8_t
33178 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33179 veor3q_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
33180 {
33181 return __builtin_aarch64_eor3qv8hi_uuuu (__a, __b, __c);
33182 }
33183
33184 __extension__ extern __inline uint32x4_t
33185 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33186 veor3q_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33187 {
33188 return __builtin_aarch64_eor3qv4si_uuuu (__a, __b, __c);
33189 }
33190
33191 __extension__ extern __inline uint64x2_t
33192 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33193 veor3q_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33194 {
33195 return __builtin_aarch64_eor3qv2di_uuuu (__a, __b, __c);
33196 }
33197
33198
33199 __extension__ extern __inline int8x16_t
33200 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33201 veor3q_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
33202 {
33203 return __builtin_aarch64_eor3qv16qi (__a, __b, __c);
33204 }
33205
33206 __extension__ extern __inline int16x8_t
33207 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33208 veor3q_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
33209 {
33210 return __builtin_aarch64_eor3qv8hi (__a, __b, __c);
33211 }
33212
33213 __extension__ extern __inline int32x4_t
33214 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33215 veor3q_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
33216 {
33217 return __builtin_aarch64_eor3qv4si (__a, __b, __c);
33218 }
33219
33220 __extension__ extern __inline int64x2_t
33221 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33222 veor3q_s64 (int64x2_t __a, int64x2_t __b, int64x2_t __c)
33223 {
33224 return __builtin_aarch64_eor3qv2di (__a, __b, __c);
33225 }
33226
33227 __extension__ extern __inline uint64x2_t
33228 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33229 vrax1q_u64 (uint64x2_t __a, uint64x2_t __b)
33230 {
33231 return __builtin_aarch64_rax1qv2di_uuu (__a, __b);
33232 }
33233
33234 __extension__ extern __inline uint64x2_t
33235 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33236 vxarq_u64 (uint64x2_t __a, uint64x2_t __b, const int imm6)
33237 {
33238 return __builtin_aarch64_xarqv2di_uuus (__a, __b,imm6);
33239 }
33240
33241 __extension__ extern __inline uint8x16_t
33242 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33243 vbcaxq_u8 (uint8x16_t __a, uint8x16_t __b, uint8x16_t __c)
33244 {
33245 return __builtin_aarch64_bcaxqv16qi_uuuu (__a, __b, __c);
33246 }
33247
33248 __extension__ extern __inline uint16x8_t
33249 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33250 vbcaxq_u16 (uint16x8_t __a, uint16x8_t __b, uint16x8_t __c)
33251 {
33252 return __builtin_aarch64_bcaxqv8hi_uuuu (__a, __b, __c);
33253 }
33254
33255 __extension__ extern __inline uint32x4_t
33256 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33257 vbcaxq_u32 (uint32x4_t __a, uint32x4_t __b, uint32x4_t __c)
33258 {
33259 return __builtin_aarch64_bcaxqv4si_uuuu (__a, __b, __c);
33260 }
33261
33262 __extension__ extern __inline uint64x2_t
33263 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33264 vbcaxq_u64 (uint64x2_t __a, uint64x2_t __b, uint64x2_t __c)
33265 {
33266 return __builtin_aarch64_bcaxqv2di_uuuu (__a, __b, __c);
33267 }
33268
33269 __extension__ extern __inline int8x16_t
33270 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33271 vbcaxq_s8 (int8x16_t __a, int8x16_t __b, int8x16_t __c)
33272 {
33273 return __builtin_aarch64_bcaxqv16qi (__a, __b, __c);
33274 }
33275
33276 __extension__ extern __inline int16x8_t
33277 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33278 vbcaxq_s16 (int16x8_t __a, int16x8_t __b, int16x8_t __c)
33279 {
33280 return __builtin_aarch64_bcaxqv8hi (__a, __b, __c);
33281 }
33282
33283 __extension__ extern __inline int32x4_t
33284 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33285 vbcaxq_s32 (int32x4_t __a, int32x4_t __b, int32x4_t __c)
33286 {
33287 return __builtin_aarch64_bcaxqv4si (__a, __b, __c);
33288 }
33289
33290 __extension__ extern __inline int64x2_t
33291 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33292 vbcaxq_s64 (int64x2_t __a, int64x2_t __b, int64x2_t __c)
33293 {
33294 return __builtin_aarch64_bcaxqv2di (__a, __b, __c);
33295 }
33296
33297
33298 #pragma GCC pop_options
33299
33300 #pragma GCC push_options
33301 #pragma GCC target(("arch=armv8.2-a+fp16fml"))
33302
33303 __extension__ extern __inline float32x2_t
33304 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33305 vfmlal_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
33306 {
33307 return __builtin_aarch64_fmlal_lowv2sf (__r, __a, __b);
33308 }
33309
33310 __extension__ extern __inline float32x2_t
33311 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33312 vfmlsl_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
33313 {
33314 return __builtin_aarch64_fmlsl_lowv2sf (__r, __a, __b);
33315 }
33316
33317 __extension__ extern __inline float32x4_t
33318 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33319 vfmlalq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
33320 {
33321 return __builtin_aarch64_fmlalq_lowv4sf (__r, __a, __b);
33322 }
33323
33324 __extension__ extern __inline float32x4_t
33325 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33326 vfmlslq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
33327 {
33328 return __builtin_aarch64_fmlslq_lowv4sf (__r, __a, __b);
33329 }
33330
33331 __extension__ extern __inline float32x2_t
33332 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33333 vfmlal_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
33334 {
33335 return __builtin_aarch64_fmlal_highv2sf (__r, __a, __b);
33336 }
33337
33338 __extension__ extern __inline float32x2_t
33339 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33340 vfmlsl_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b)
33341 {
33342 return __builtin_aarch64_fmlsl_highv2sf (__r, __a, __b);
33343 }
33344
33345 __extension__ extern __inline float32x4_t
33346 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33347 vfmlalq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
33348 {
33349 return __builtin_aarch64_fmlalq_highv4sf (__r, __a, __b);
33350 }
33351
33352 __extension__ extern __inline float32x4_t
33353 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33354 vfmlslq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b)
33355 {
33356 return __builtin_aarch64_fmlslq_highv4sf (__r, __a, __b);
33357 }
33358
33359 __extension__ extern __inline float32x2_t
33360 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33361 vfmlal_lane_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
33362 const int __lane)
33363 {
33364 return __builtin_aarch64_fmlal_lane_lowv2sf (__r, __a, __b, __lane);
33365 }
33366
33367 __extension__ extern __inline float32x2_t
33368 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33369 vfmlsl_lane_low_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
33370 const int __lane)
33371 {
33372 return __builtin_aarch64_fmlsl_lane_lowv2sf (__r, __a, __b, __lane);
33373 }
33374
33375 __extension__ extern __inline float32x2_t
33376 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33377 vfmlal_laneq_low_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
33378 const int __lane)
33379 {
33380 return __builtin_aarch64_fmlal_laneq_lowv2sf (__r, __a, __b, __lane);
33381 }
33382
33383 __extension__ extern __inline float32x2_t
33384 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33385 vfmlsl_laneq_low_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
33386 const int __lane)
33387 {
33388 return __builtin_aarch64_fmlsl_laneq_lowv2sf (__r, __a, __b, __lane);
33389 }
33390
33391 __extension__ extern __inline float32x4_t
33392 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33393 vfmlalq_lane_low_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
33394 const int __lane)
33395 {
33396 return __builtin_aarch64_fmlalq_lane_lowv4sf (__r, __a, __b, __lane);
33397 }
33398
33399 __extension__ extern __inline float32x4_t
33400 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33401 vfmlslq_lane_low_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
33402 const int __lane)
33403 {
33404 return __builtin_aarch64_fmlslq_lane_lowv4sf (__r, __a, __b, __lane);
33405 }
33406
33407 __extension__ extern __inline float32x4_t
33408 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33409 vfmlalq_laneq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
33410 const int __lane)
33411 {
33412 return __builtin_aarch64_fmlalq_laneq_lowv4sf (__r, __a, __b, __lane);
33413 }
33414
33415 __extension__ extern __inline float32x4_t
33416 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33417 vfmlslq_laneq_low_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
33418 const int __lane)
33419 {
33420 return __builtin_aarch64_fmlslq_laneq_lowv4sf (__r, __a, __b, __lane);
33421 }
33422
33423 __extension__ extern __inline float32x2_t
33424 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33425 vfmlal_lane_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
33426 const int __lane)
33427 {
33428 return __builtin_aarch64_fmlal_lane_highv2sf (__r, __a, __b, __lane);
33429 }
33430
33431 __extension__ extern __inline float32x2_t
33432 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33433 vfmlsl_lane_high_u32 (float32x2_t __r, float16x4_t __a, float16x4_t __b,
33434 const int __lane)
33435 {
33436 return __builtin_aarch64_fmlsl_lane_highv2sf (__r, __a, __b, __lane);
33437 }
33438
33439 __extension__ extern __inline float32x2_t
33440 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33441 vfmlal_laneq_high_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
33442 const int __lane)
33443 {
33444 return __builtin_aarch64_fmlal_laneq_highv2sf (__r, __a, __b, __lane);
33445 }
33446
33447 __extension__ extern __inline float32x2_t
33448 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33449 vfmlsl_laneq_high_u32 (float32x2_t __r, float16x4_t __a, float16x8_t __b,
33450 const int __lane)
33451 {
33452 return __builtin_aarch64_fmlsl_laneq_highv2sf (__r, __a, __b, __lane);
33453 }
33454
33455 __extension__ extern __inline float32x4_t
33456 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33457 vfmlalq_lane_high_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
33458 const int __lane)
33459 {
33460 return __builtin_aarch64_fmlalq_lane_highv4sf (__r, __a, __b, __lane);
33461 }
33462
33463 __extension__ extern __inline float32x4_t
33464 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33465 vfmlslq_lane_high_u32 (float32x4_t __r, float16x8_t __a, float16x4_t __b,
33466 const int __lane)
33467 {
33468 return __builtin_aarch64_fmlslq_lane_highv4sf (__r, __a, __b, __lane);
33469 }
33470
33471 __extension__ extern __inline float32x4_t
33472 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33473 vfmlalq_laneq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
33474 const int __lane)
33475 {
33476 return __builtin_aarch64_fmlalq_laneq_highv4sf (__r, __a, __b, __lane);
33477 }
33478
33479 __extension__ extern __inline float32x4_t
33480 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
33481 vfmlslq_laneq_high_u32 (float32x4_t __r, float16x8_t __a, float16x8_t __b,
33482 const int __lane)
33483 {
33484 return __builtin_aarch64_fmlslq_laneq_highv4sf (__r, __a, __b, __lane);
33485 }
33486
31635 #pragma GCC pop_options 33487 #pragma GCC pop_options
31636 33488
31637 #undef __aarch64_vget_lane_any 33489 #undef __aarch64_vget_lane_any
31638 33490
31639 #undef __aarch64_vdup_lane_any 33491 #undef __aarch64_vdup_lane_any