authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-02-07 18:49:42-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-02-07 18:49:42-05:00
log48c1e235cb620dacc30254d0898390b4d97f3e73
tree7c61685b609041e3a2bce0ba8db1ea71b62ba24b
parent00902ff9b0931a85ab87649efc8b4e4027ab8358
signaturelock-open Commit is signed but in an unrecognized format.

update clang headers to 8.0.0rc2


24 files changed, 4290 insertions(+), 2548 deletions(-)

c_headers/__clang_cuda_runtime_wrapper.h+7-1
......@@ -62,10 +62,15 @@
6262#include "cuda.h"
6363#if !defined(CUDA_VERSION)
6464#error "cuda.h did not define CUDA_VERSION"
65#elif CUDA_VERSION < 7000 || CUDA_VERSION > 9020
65#elif CUDA_VERSION < 7000 || CUDA_VERSION > 10000
6666#error "Unsupported CUDA version!"
6767#endif
6868
69#pragma push_macro("__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__")
70#if CUDA_VERSION >= 10000
71#define __CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__
72#endif
73
6974// Make largest subset of device functions available during host
7075// compilation -- SM_35 for the time being.
7176#ifndef __CUDA_ARCH__
......@@ -419,6 +424,7 @@ __device__ inline __cuda_builtin_gridDim_t::operator dim3() const {
419424#pragma pop_macro("dim3")
420425#pragma pop_macro("uint3")
421426#pragma pop_macro("__USE_FAST_MATH__")
427#pragma pop_macro("__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__")
422428
423429#endif // __CUDA__
424430#endif // __CLANG_CUDA_RUNTIME_WRAPPER_H__
c_headers/adxintrin.h+2-2
......@@ -53,7 +53,7 @@ static __inline unsigned char __DEFAULT_FN_ATTRS
5353_addcarry_u32(unsigned char __cf, unsigned int __x, unsigned int __y,
5454 unsigned int *__p)
5555{
56 return __builtin_ia32_addcarry_u32(__cf, __x, __y, __p);
56 return __builtin_ia32_addcarryx_u32(__cf, __x, __y, __p);
5757}
5858
5959#ifdef __x86_64__
......@@ -61,7 +61,7 @@ static __inline unsigned char __DEFAULT_FN_ATTRS
6161_addcarry_u64(unsigned char __cf, unsigned long long __x,
6262 unsigned long long __y, unsigned long long *__p)
6363{
64 return __builtin_ia32_addcarry_u64(__cf, __x, __y, __p);
64 return __builtin_ia32_addcarryx_u64(__cf, __x, __y, __p);
6565}
6666#endif
6767
c_headers/altivec.h+70-53
......@@ -9492,49 +9492,51 @@ vec_splat_u32(signed char __a) {
94929492
94939493/* vec_sr */
94949494
9495static __inline__ vector signed char __ATTRS_o_ai
9496vec_sr(vector signed char __a, vector unsigned char __b) {
9497 vector unsigned char __res = (vector unsigned char)__a >> __b;
9498 return (vector signed char)__res;
9499}
9500
9495// vec_sr does modulo arithmetic on __b first, so __b is allowed to be more
9496// than the length of __a.
95019497static __inline__ vector unsigned char __ATTRS_o_ai
95029498vec_sr(vector unsigned char __a, vector unsigned char __b) {
9503 return __a >> __b;
9499 return __a >>
9500 (__b % (vector unsigned char)(sizeof(unsigned char) * __CHAR_BIT__));
95049501}
95059502
9506static __inline__ vector signed short __ATTRS_o_ai
9507vec_sr(vector signed short __a, vector unsigned short __b) {
9508 vector unsigned short __res = (vector unsigned short)__a >> __b;
9509 return (vector signed short)__res;
9503static __inline__ vector signed char __ATTRS_o_ai
9504vec_sr(vector signed char __a, vector unsigned char __b) {
9505 return (vector signed char)vec_sr((vector unsigned char)__a, __b);
95109506}
95119507
95129508static __inline__ vector unsigned short __ATTRS_o_ai
95139509vec_sr(vector unsigned short __a, vector unsigned short __b) {
9514 return __a >> __b;
9510 return __a >>
9511 (__b % (vector unsigned short)(sizeof(unsigned short) * __CHAR_BIT__));
95159512}
95169513
9517static __inline__ vector signed int __ATTRS_o_ai
9518vec_sr(vector signed int __a, vector unsigned int __b) {
9519 vector unsigned int __res = (vector unsigned int)__a >> __b;
9520 return (vector signed int)__res;
9514static __inline__ vector short __ATTRS_o_ai vec_sr(vector short __a,
9515 vector unsigned short __b) {
9516 return (vector short)vec_sr((vector unsigned short)__a, __b);
95219517}
95229518
95239519static __inline__ vector unsigned int __ATTRS_o_ai
95249520vec_sr(vector unsigned int __a, vector unsigned int __b) {
9525 return __a >> __b;
9521 return __a >>
9522 (__b % (vector unsigned int)(sizeof(unsigned int) * __CHAR_BIT__));
95269523}
95279524
9528#ifdef __POWER8_VECTOR__
9529static __inline__ vector signed long long __ATTRS_o_ai
9530vec_sr(vector signed long long __a, vector unsigned long long __b) {
9531 vector unsigned long long __res = (vector unsigned long long)__a >> __b;
9532 return (vector signed long long)__res;
9525static __inline__ vector int __ATTRS_o_ai vec_sr(vector int __a,
9526 vector unsigned int __b) {
9527 return (vector int)vec_sr((vector unsigned int)__a, __b);
95339528}
95349529
9530#ifdef __POWER8_VECTOR__
95359531static __inline__ vector unsigned long long __ATTRS_o_ai
95369532vec_sr(vector unsigned long long __a, vector unsigned long long __b) {
9537 return __a >> __b;
9533 return __a >> (__b % (vector unsigned long long)(sizeof(unsigned long long) *
9534 __CHAR_BIT__));
9535}
9536
9537static __inline__ vector long long __ATTRS_o_ai
9538vec_sr(vector long long __a, vector unsigned long long __b) {
9539 return (vector long long)vec_sr((vector unsigned long long)__a, __b);
95389540}
95399541#endif
95409542
......@@ -9544,12 +9546,12 @@ vec_sr(vector unsigned long long __a, vector unsigned long long __b) {
95449546
95459547static __inline__ vector signed char __ATTRS_o_ai
95469548vec_vsrb(vector signed char __a, vector unsigned char __b) {
9547 return __a >> (vector signed char)__b;
9549 return vec_sr(__a, __b);
95489550}
95499551
95509552static __inline__ vector unsigned char __ATTRS_o_ai
95519553vec_vsrb(vector unsigned char __a, vector unsigned char __b) {
9552 return __a >> __b;
9554 return vec_sr(__a, __b);
95539555}
95549556
95559557/* vec_vsrh */
......@@ -9558,12 +9560,12 @@ vec_vsrb(vector unsigned char __a, vector unsigned char __b) {
95589560
95599561static __inline__ vector short __ATTRS_o_ai
95609562vec_vsrh(vector short __a, vector unsigned short __b) {
9561 return __a >> (vector short)__b;
9563 return vec_sr(__a, __b);
95629564}
95639565
95649566static __inline__ vector unsigned short __ATTRS_o_ai
95659567vec_vsrh(vector unsigned short __a, vector unsigned short __b) {
9566 return __a >> __b;
9568 return vec_sr(__a, __b);
95679569}
95689570
95699571/* vec_vsrw */
......@@ -9572,12 +9574,12 @@ vec_vsrh(vector unsigned short __a, vector unsigned short __b) {
95729574
95739575static __inline__ vector int __ATTRS_o_ai vec_vsrw(vector int __a,
95749576 vector unsigned int __b) {
9575 return __a >> (vector int)__b;
9577 return vec_sr(__a, __b);
95769578}
95779579
95789580static __inline__ vector unsigned int __ATTRS_o_ai
95799581vec_vsrw(vector unsigned int __a, vector unsigned int __b) {
9580 return __a >> __b;
9582 return vec_sr(__a, __b);
95819583}
95829584
95839585/* vec_sra */
......@@ -16353,67 +16355,82 @@ vec_revb(vector unsigned __int128 __a) {
1635316355
1635416356/* vec_xl */
1635516357
16358typedef vector signed char unaligned_vec_schar __attribute__((aligned(1)));
16359typedef vector unsigned char unaligned_vec_uchar __attribute__((aligned(1)));
16360typedef vector signed short unaligned_vec_sshort __attribute__((aligned(1)));
16361typedef vector unsigned short unaligned_vec_ushort __attribute__((aligned(1)));
16362typedef vector signed int unaligned_vec_sint __attribute__((aligned(1)));
16363typedef vector unsigned int unaligned_vec_uint __attribute__((aligned(1)));
16364typedef vector float unaligned_vec_float __attribute__((aligned(1)));
16365
1635616366static inline __ATTRS_o_ai vector signed char vec_xl(signed long long __offset,
1635716367 signed char *__ptr) {
16358 return *(vector signed char *)(__ptr + __offset);
16368 return *(unaligned_vec_schar *)(__ptr + __offset);
1635916369}
1636016370
1636116371static inline __ATTRS_o_ai vector unsigned char
1636216372vec_xl(signed long long __offset, unsigned char *__ptr) {
16363 return *(vector unsigned char *)(__ptr + __offset);
16373 return *(unaligned_vec_uchar*)(__ptr + __offset);
1636416374}
1636516375
1636616376static inline __ATTRS_o_ai vector signed short vec_xl(signed long long __offset,
1636716377 signed short *__ptr) {
16368 return *(vector signed short *)(__ptr + __offset);
16378 return *(unaligned_vec_sshort *)(__ptr + __offset);
1636916379}
1637016380
1637116381static inline __ATTRS_o_ai vector unsigned short
1637216382vec_xl(signed long long __offset, unsigned short *__ptr) {
16373 return *(vector unsigned short *)(__ptr + __offset);
16383 return *(unaligned_vec_ushort *)(__ptr + __offset);
1637416384}
1637516385
1637616386static inline __ATTRS_o_ai vector signed int vec_xl(signed long long __offset,
1637716387 signed int *__ptr) {
16378 return *(vector signed int *)(__ptr + __offset);
16388 return *(unaligned_vec_sint *)(__ptr + __offset);
1637916389}
1638016390
1638116391static inline __ATTRS_o_ai vector unsigned int vec_xl(signed long long __offset,
1638216392 unsigned int *__ptr) {
16383 return *(vector unsigned int *)(__ptr + __offset);
16393 return *(unaligned_vec_uint *)(__ptr + __offset);
1638416394}
1638516395
1638616396static inline __ATTRS_o_ai vector float vec_xl(signed long long __offset,
1638716397 float *__ptr) {
16388 return *(vector float *)(__ptr + __offset);
16398 return *(unaligned_vec_float *)(__ptr + __offset);
1638916399}
1639016400
1639116401#ifdef __VSX__
16402typedef vector signed long long unaligned_vec_sll __attribute__((aligned(1)));
16403typedef vector unsigned long long unaligned_vec_ull __attribute__((aligned(1)));
16404typedef vector double unaligned_vec_double __attribute__((aligned(1)));
16405
1639216406static inline __ATTRS_o_ai vector signed long long
1639316407vec_xl(signed long long __offset, signed long long *__ptr) {
16394 return *(vector signed long long *)(__ptr + __offset);
16408 return *(unaligned_vec_sll *)(__ptr + __offset);
1639516409}
1639616410
1639716411static inline __ATTRS_o_ai vector unsigned long long
1639816412vec_xl(signed long long __offset, unsigned long long *__ptr) {
16399 return *(vector unsigned long long *)(__ptr + __offset);
16413 return *(unaligned_vec_ull *)(__ptr + __offset);
1640016414}
1640116415
1640216416static inline __ATTRS_o_ai vector double vec_xl(signed long long __offset,
1640316417 double *__ptr) {
16404 return *(vector double *)(__ptr + __offset);
16418 return *(unaligned_vec_double *)(__ptr + __offset);
1640516419}
1640616420#endif
1640716421
1640816422#if defined(__POWER8_VECTOR__) && defined(__powerpc64__)
16423typedef vector signed __int128 unaligned_vec_si128 __attribute__((aligned(1)));
16424typedef vector unsigned __int128 unaligned_vec_ui128
16425 __attribute__((aligned(1)));
1640916426static inline __ATTRS_o_ai vector signed __int128
1641016427vec_xl(signed long long __offset, signed __int128 *__ptr) {
16411 return *(vector signed __int128 *)(__ptr + __offset);
16428 return *(unaligned_vec_si128 *)(__ptr + __offset);
1641216429}
1641316430
1641416431static inline __ATTRS_o_ai vector unsigned __int128
1641516432vec_xl(signed long long __offset, unsigned __int128 *__ptr) {
16416 return *(vector unsigned __int128 *)(__ptr + __offset);
16433 return *(unaligned_vec_ui128 *)(__ptr + __offset);
1641716434}
1641816435#endif
1641916436
......@@ -16498,62 +16515,62 @@ vec_xl_be(signed long long __offset, unsigned __int128 *__ptr) {
1649816515static inline __ATTRS_o_ai void vec_xst(vector signed char __vec,
1649916516 signed long long __offset,
1650016517 signed char *__ptr) {
16501 *(vector signed char *)(__ptr + __offset) = __vec;
16518 *(unaligned_vec_schar *)(__ptr + __offset) = __vec;
1650216519}
1650316520
1650416521static inline __ATTRS_o_ai void vec_xst(vector unsigned char __vec,
1650516522 signed long long __offset,
1650616523 unsigned char *__ptr) {
16507 *(vector unsigned char *)(__ptr + __offset) = __vec;
16524 *(unaligned_vec_uchar *)(__ptr + __offset) = __vec;
1650816525}
1650916526
1651016527static inline __ATTRS_o_ai void vec_xst(vector signed short __vec,
1651116528 signed long long __offset,
1651216529 signed short *__ptr) {
16513 *(vector signed short *)(__ptr + __offset) = __vec;
16530 *(unaligned_vec_sshort *)(__ptr + __offset) = __vec;
1651416531}
1651516532
1651616533static inline __ATTRS_o_ai void vec_xst(vector unsigned short __vec,
1651716534 signed long long __offset,
1651816535 unsigned short *__ptr) {
16519 *(vector unsigned short *)(__ptr + __offset) = __vec;
16536 *(unaligned_vec_ushort *)(__ptr + __offset) = __vec;
1652016537}
1652116538
1652216539static inline __ATTRS_o_ai void vec_xst(vector signed int __vec,
1652316540 signed long long __offset,
1652416541 signed int *__ptr) {
16525 *(vector signed int *)(__ptr + __offset) = __vec;
16542 *(unaligned_vec_sint *)(__ptr + __offset) = __vec;
1652616543}
1652716544
1652816545static inline __ATTRS_o_ai void vec_xst(vector unsigned int __vec,
1652916546 signed long long __offset,
1653016547 unsigned int *__ptr) {
16531 *(vector unsigned int *)(__ptr + __offset) = __vec;
16548 *(unaligned_vec_uint *)(__ptr + __offset) = __vec;
1653216549}
1653316550
1653416551static inline __ATTRS_o_ai void vec_xst(vector float __vec,
1653516552 signed long long __offset,
1653616553 float *__ptr) {
16537 *(vector float *)(__ptr + __offset) = __vec;
16554 *(unaligned_vec_float *)(__ptr + __offset) = __vec;
1653816555}
1653916556
1654016557#ifdef __VSX__
1654116558static inline __ATTRS_o_ai void vec_xst(vector signed long long __vec,
1654216559 signed long long __offset,
1654316560 signed long long *__ptr) {
16544 *(vector signed long long *)(__ptr + __offset) = __vec;
16561 *(unaligned_vec_sll *)(__ptr + __offset) = __vec;
1654516562}
1654616563
1654716564static inline __ATTRS_o_ai void vec_xst(vector unsigned long long __vec,
1654816565 signed long long __offset,
1654916566 unsigned long long *__ptr) {
16550 *(vector unsigned long long *)(__ptr + __offset) = __vec;
16567 *(unaligned_vec_ull *)(__ptr + __offset) = __vec;
1655116568}
1655216569
1655316570static inline __ATTRS_o_ai void vec_xst(vector double __vec,
1655416571 signed long long __offset,
1655516572 double *__ptr) {
16556 *(vector double *)(__ptr + __offset) = __vec;
16573 *(unaligned_vec_double *)(__ptr + __offset) = __vec;
1655716574}
1655816575#endif
1655916576
......@@ -16561,13 +16578,13 @@ static inline __ATTRS_o_ai void vec_xst(vector double __vec,
1656116578static inline __ATTRS_o_ai void vec_xst(vector signed __int128 __vec,
1656216579 signed long long __offset,
1656316580 signed __int128 *__ptr) {
16564 *(vector signed __int128 *)(__ptr + __offset) = __vec;
16581 *(unaligned_vec_si128 *)(__ptr + __offset) = __vec;
1656516582}
1656616583
1656716584static inline __ATTRS_o_ai void vec_xst(vector unsigned __int128 __vec,
1656816585 signed long long __offset,
1656916586 unsigned __int128 *__ptr) {
16570 *(vector unsigned __int128 *)(__ptr + __offset) = __vec;
16587 *(unaligned_vec_ui128 *)(__ptr + __offset) = __vec;
1657116588}
1657216589#endif
1657316590
c_headers/arm_fp16.h+1-1
......@@ -27,7 +27,7 @@
2727#include <stdint.h>
2828
2929typedef __fp16 float16_t;
30#define __ai static inline __attribute__((__always_inline__, __nodebug__))
30#define __ai static __inline__ __attribute__((__always_inline__, __nodebug__))
3131
3232#if defined(__ARM_FEATURE_FP16_SCALAR_ARITHMETIC) && defined(__aarch64__)
3333#ifdef __LITTLE_ENDIAN__
c_headers/arm_neon.h+1765-1193
......@@ -427,7 +427,7 @@ typedef struct poly64x2x4_t {
427427
428428#endif
429429
430#define __ai static inline __attribute__((__always_inline__, __nodebug__))
430#define __ai static __inline__ __attribute__((__always_inline__, __nodebug__))
431431
432432#ifdef __LITTLE_ENDIAN__
433433__ai uint8x16_t vabdq_u8(uint8x16_t __p0, uint8x16_t __p1) {
......@@ -7592,21 +7592,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
75927592})
75937593#endif
75947594
7595#ifdef __LITTLE_ENDIAN__
7596#define vld1q_f16(__p0) __extension__ ({ \
7597 float16x8_t __ret; \
7598 __ret = (float16x8_t) __builtin_neon_vld1q_v(__p0, 40); \
7599 __ret; \
7600})
7601#else
7602#define vld1q_f16(__p0) __extension__ ({ \
7603 float16x8_t __ret; \
7604 __ret = (float16x8_t) __builtin_neon_vld1q_v(__p0, 40); \
7605 __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
7606 __ret; \
7607})
7608#endif
7609
76107595#ifdef __LITTLE_ENDIAN__
76117596#define vld1q_s32(__p0) __extension__ ({ \
76127597 int32x4_t __ret; \
......@@ -7741,21 +7726,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
77417726})
77427727#endif
77437728
7744#ifdef __LITTLE_ENDIAN__
7745#define vld1_f16(__p0) __extension__ ({ \
7746 float16x4_t __ret; \
7747 __ret = (float16x4_t) __builtin_neon_vld1_v(__p0, 8); \
7748 __ret; \
7749})
7750#else
7751#define vld1_f16(__p0) __extension__ ({ \
7752 float16x4_t __ret; \
7753 __ret = (float16x4_t) __builtin_neon_vld1_v(__p0, 8); \
7754 __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
7755 __ret; \
7756})
7757#endif
7758
77597729#ifdef __LITTLE_ENDIAN__
77607730#define vld1_s32(__p0) __extension__ ({ \
77617731 int32x2_t __ret; \
......@@ -7950,21 +7920,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
79507920})
79517921#endif
79527922
7953#ifdef __LITTLE_ENDIAN__
7954#define vld1q_dup_f16(__p0) __extension__ ({ \
7955 float16x8_t __ret; \
7956 __ret = (float16x8_t) __builtin_neon_vld1q_dup_v(__p0, 40); \
7957 __ret; \
7958})
7959#else
7960#define vld1q_dup_f16(__p0) __extension__ ({ \
7961 float16x8_t __ret; \
7962 __ret = (float16x8_t) __builtin_neon_vld1q_dup_v(__p0, 40); \
7963 __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
7964 __ret; \
7965})
7966#endif
7967
79687923#ifdef __LITTLE_ENDIAN__
79697924#define vld1q_dup_s32(__p0) __extension__ ({ \
79707925 int32x4_t __ret; \
......@@ -8099,21 +8054,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
80998054})
81008055#endif
81018056
8102#ifdef __LITTLE_ENDIAN__
8103#define vld1_dup_f16(__p0) __extension__ ({ \
8104 float16x4_t __ret; \
8105 __ret = (float16x4_t) __builtin_neon_vld1_dup_v(__p0, 8); \
8106 __ret; \
8107})
8108#else
8109#define vld1_dup_f16(__p0) __extension__ ({ \
8110 float16x4_t __ret; \
8111 __ret = (float16x4_t) __builtin_neon_vld1_dup_v(__p0, 8); \
8112 __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
8113 __ret; \
8114})
8115#endif
8116
81178057#ifdef __LITTLE_ENDIAN__
81188058#define vld1_dup_s32(__p0) __extension__ ({ \
81198059 int32x2_t __ret; \
......@@ -8338,24 +8278,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
83388278})
83398279#endif
83408280
8341#ifdef __LITTLE_ENDIAN__
8342#define vld1q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
8343 float16x8_t __s1 = __p1; \
8344 float16x8_t __ret; \
8345 __ret = (float16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 40); \
8346 __ret; \
8347})
8348#else
8349#define vld1q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
8350 float16x8_t __s1 = __p1; \
8351 float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
8352 float16x8_t __ret; \
8353 __ret = (float16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 40); \
8354 __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
8355 __ret; \
8356})
8357#endif
8358
83598281#ifdef __LITTLE_ENDIAN__
83608282#define vld1q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
83618283 int32x4_t __s1 = __p1; \
......@@ -8516,24 +8438,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
85168438})
85178439#endif
85188440
8519#ifdef __LITTLE_ENDIAN__
8520#define vld1_lane_f16(__p0, __p1, __p2) __extension__ ({ \
8521 float16x4_t __s1 = __p1; \
8522 float16x4_t __ret; \
8523 __ret = (float16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 8); \
8524 __ret; \
8525})
8526#else
8527#define vld1_lane_f16(__p0, __p1, __p2) __extension__ ({ \
8528 float16x4_t __s1 = __p1; \
8529 float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
8530 float16x4_t __ret; \
8531 __ret = (float16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 8); \
8532 __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
8533 __ret; \
8534})
8535#endif
8536
85378441#ifdef __LITTLE_ENDIAN__
85388442#define vld1_lane_s32(__p0, __p1, __p2) __extension__ ({ \
85398443 int32x2_t __s1 = __p1; \
......@@ -8756,23 +8660,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
87568660})
87578661#endif
87588662
8759#ifdef __LITTLE_ENDIAN__
8760#define vld1q_f16_x2(__p0) __extension__ ({ \
8761 float16x8x2_t __ret; \
8762 __builtin_neon_vld1q_x2_v(&__ret, __p0, 40); \
8763 __ret; \
8764})
8765#else
8766#define vld1q_f16_x2(__p0) __extension__ ({ \
8767 float16x8x2_t __ret; \
8768 __builtin_neon_vld1q_x2_v(&__ret, __p0, 40); \
8769 \
8770 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
8771 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
8772 __ret; \
8773})
8774#endif
8775
87768663#ifdef __LITTLE_ENDIAN__
87778664#define vld1q_s32_x2(__p0) __extension__ ({ \
87788665 int32x4x2_t __ret; \
......@@ -8923,23 +8810,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
89238810})
89248811#endif
89258812
8926#ifdef __LITTLE_ENDIAN__
8927#define vld1_f16_x2(__p0) __extension__ ({ \
8928 float16x4x2_t __ret; \
8929 __builtin_neon_vld1_x2_v(&__ret, __p0, 8); \
8930 __ret; \
8931})
8932#else
8933#define vld1_f16_x2(__p0) __extension__ ({ \
8934 float16x4x2_t __ret; \
8935 __builtin_neon_vld1_x2_v(&__ret, __p0, 8); \
8936 \
8937 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
8938 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
8939 __ret; \
8940})
8941#endif
8942
89438813#ifdef __LITTLE_ENDIAN__
89448814#define vld1_s32_x2(__p0) __extension__ ({ \
89458815 int32x2x2_t __ret; \
......@@ -9168,24 +9038,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
91689038})
91699039#endif
91709040
9171#ifdef __LITTLE_ENDIAN__
9172#define vld1q_f16_x3(__p0) __extension__ ({ \
9173 float16x8x3_t __ret; \
9174 __builtin_neon_vld1q_x3_v(&__ret, __p0, 40); \
9175 __ret; \
9176})
9177#else
9178#define vld1q_f16_x3(__p0) __extension__ ({ \
9179 float16x8x3_t __ret; \
9180 __builtin_neon_vld1q_x3_v(&__ret, __p0, 40); \
9181 \
9182 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
9183 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
9184 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
9185 __ret; \
9186})
9187#endif
9188
91899041#ifdef __LITTLE_ENDIAN__
91909042#define vld1q_s32_x3(__p0) __extension__ ({ \
91919043 int32x4x3_t __ret; \
......@@ -9344,24 +9196,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
93449196})
93459197#endif
93469198
9347#ifdef __LITTLE_ENDIAN__
9348#define vld1_f16_x3(__p0) __extension__ ({ \
9349 float16x4x3_t __ret; \
9350 __builtin_neon_vld1_x3_v(&__ret, __p0, 8); \
9351 __ret; \
9352})
9353#else
9354#define vld1_f16_x3(__p0) __extension__ ({ \
9355 float16x4x3_t __ret; \
9356 __builtin_neon_vld1_x3_v(&__ret, __p0, 8); \
9357 \
9358 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
9359 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
9360 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
9361 __ret; \
9362})
9363#endif
9364
93659199#ifdef __LITTLE_ENDIAN__
93669200#define vld1_s32_x3(__p0) __extension__ ({ \
93679201 int32x2x3_t __ret; \
......@@ -9602,25 +9436,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
96029436})
96039437#endif
96049438
9605#ifdef __LITTLE_ENDIAN__
9606#define vld1q_f16_x4(__p0) __extension__ ({ \
9607 float16x8x4_t __ret; \
9608 __builtin_neon_vld1q_x4_v(&__ret, __p0, 40); \
9609 __ret; \
9610})
9611#else
9612#define vld1q_f16_x4(__p0) __extension__ ({ \
9613 float16x8x4_t __ret; \
9614 __builtin_neon_vld1q_x4_v(&__ret, __p0, 40); \
9615 \
9616 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
9617 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
9618 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
9619 __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
9620 __ret; \
9621})
9622#endif
9623
96249439#ifdef __LITTLE_ENDIAN__
96259440#define vld1q_s32_x4(__p0) __extension__ ({ \
96269441 int32x4x4_t __ret; \
......@@ -9787,25 +9602,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
97879602})
97889603#endif
97899604
9790#ifdef __LITTLE_ENDIAN__
9791#define vld1_f16_x4(__p0) __extension__ ({ \
9792 float16x4x4_t __ret; \
9793 __builtin_neon_vld1_x4_v(&__ret, __p0, 8); \
9794 __ret; \
9795})
9796#else
9797#define vld1_f16_x4(__p0) __extension__ ({ \
9798 float16x4x4_t __ret; \
9799 __builtin_neon_vld1_x4_v(&__ret, __p0, 8); \
9800 \
9801 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
9802 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
9803 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
9804 __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
9805 __ret; \
9806})
9807#endif
9808
98099605#ifdef __LITTLE_ENDIAN__
98109606#define vld1_s32_x4(__p0) __extension__ ({ \
98119607 int32x2x4_t __ret; \
......@@ -10011,23 +9807,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
100119807})
100129808#endif
100139809
10014#ifdef __LITTLE_ENDIAN__
10015#define vld2q_f16(__p0) __extension__ ({ \
10016 float16x8x2_t __ret; \
10017 __builtin_neon_vld2q_v(&__ret, __p0, 40); \
10018 __ret; \
10019})
10020#else
10021#define vld2q_f16(__p0) __extension__ ({ \
10022 float16x8x2_t __ret; \
10023 __builtin_neon_vld2q_v(&__ret, __p0, 40); \
10024 \
10025 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
10026 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
10027 __ret; \
10028})
10029#endif
10030
100319810#ifdef __LITTLE_ENDIAN__
100329811#define vld2q_s32(__p0) __extension__ ({ \
100339812 int32x4x2_t __ret; \
......@@ -10161,23 +9940,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
101619940})
101629941#endif
101639942
10164#ifdef __LITTLE_ENDIAN__
10165#define vld2_f16(__p0) __extension__ ({ \
10166 float16x4x2_t __ret; \
10167 __builtin_neon_vld2_v(&__ret, __p0, 8); \
10168 __ret; \
10169})
10170#else
10171#define vld2_f16(__p0) __extension__ ({ \
10172 float16x4x2_t __ret; \
10173 __builtin_neon_vld2_v(&__ret, __p0, 8); \
10174 \
10175 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
10176 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
10177 __ret; \
10178})
10179#endif
10180
101819943#ifdef __LITTLE_ENDIAN__
101829944#define vld2_s32(__p0) __extension__ ({ \
101839945 int32x2x2_t __ret; \
......@@ -10396,23 +10158,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
1039610158})
1039710159#endif
1039810160
10399#ifdef __LITTLE_ENDIAN__
10400#define vld2q_dup_f16(__p0) __extension__ ({ \
10401 float16x8x2_t __ret; \
10402 __builtin_neon_vld2q_dup_v(&__ret, __p0, 40); \
10403 __ret; \
10404})
10405#else
10406#define vld2q_dup_f16(__p0) __extension__ ({ \
10407 float16x8x2_t __ret; \
10408 __builtin_neon_vld2q_dup_v(&__ret, __p0, 40); \
10409 \
10410 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
10411 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
10412 __ret; \
10413})
10414#endif
10415
1041610161#ifdef __LITTLE_ENDIAN__
1041710162#define vld2q_dup_s32(__p0) __extension__ ({ \
1041810163 int32x4x2_t __ret; \
......@@ -10563,23 +10308,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
1056310308})
1056410309#endif
1056510310
10566#ifdef __LITTLE_ENDIAN__
10567#define vld2_dup_f16(__p0) __extension__ ({ \
10568 float16x4x2_t __ret; \
10569 __builtin_neon_vld2_dup_v(&__ret, __p0, 8); \
10570 __ret; \
10571})
10572#else
10573#define vld2_dup_f16(__p0) __extension__ ({ \
10574 float16x4x2_t __ret; \
10575 __builtin_neon_vld2_dup_v(&__ret, __p0, 8); \
10576 \
10577 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
10578 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
10579 __ret; \
10580})
10581#endif
10582
1058310311#ifdef __LITTLE_ENDIAN__
1058410312#define vld2_dup_s32(__p0) __extension__ ({ \
1058510313 int32x2x2_t __ret; \
......@@ -10760,28 +10488,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
1076010488})
1076110489#endif
1076210490
10763#ifdef __LITTLE_ENDIAN__
10764#define vld2q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
10765 float16x8x2_t __s1 = __p1; \
10766 float16x8x2_t __ret; \
10767 __builtin_neon_vld2q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 40); \
10768 __ret; \
10769})
10770#else
10771#define vld2q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
10772 float16x8x2_t __s1 = __p1; \
10773 float16x8x2_t __rev1; \
10774 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
10775 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
10776 float16x8x2_t __ret; \
10777 __builtin_neon_vld2q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 40); \
10778 \
10779 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
10780 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
10781 __ret; \
10782})
10783#endif
10784
1078510491#ifdef __LITTLE_ENDIAN__
1078610492#define vld2q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
1078710493 int32x4x2_t __s1 = __p1; \
......@@ -10936,28 +10642,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
1093610642})
1093710643#endif
1093810644
10939#ifdef __LITTLE_ENDIAN__
10940#define vld2_lane_f16(__p0, __p1, __p2) __extension__ ({ \
10941 float16x4x2_t __s1 = __p1; \
10942 float16x4x2_t __ret; \
10943 __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 8); \
10944 __ret; \
10945})
10946#else
10947#define vld2_lane_f16(__p0, __p1, __p2) __extension__ ({ \
10948 float16x4x2_t __s1 = __p1; \
10949 float16x4x2_t __rev1; \
10950 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
10951 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
10952 float16x4x2_t __ret; \
10953 __builtin_neon_vld2_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 8); \
10954 \
10955 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
10956 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
10957 __ret; \
10958})
10959#endif
10960
1096110645#ifdef __LITTLE_ENDIAN__
1096210646#define vld2_lane_s32(__p0, __p1, __p2) __extension__ ({ \
1096310647 int32x2x2_t __s1 = __p1; \
......@@ -11164,24 +10848,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
1116410848})
1116510849#endif
1116610850
11167#ifdef __LITTLE_ENDIAN__
11168#define vld3q_f16(__p0) __extension__ ({ \
11169 float16x8x3_t __ret; \
11170 __builtin_neon_vld3q_v(&__ret, __p0, 40); \
11171 __ret; \
11172})
11173#else
11174#define vld3q_f16(__p0) __extension__ ({ \
11175 float16x8x3_t __ret; \
11176 __builtin_neon_vld3q_v(&__ret, __p0, 40); \
11177 \
11178 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
11179 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
11180 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
11181 __ret; \
11182})
11183#endif
11184
1118510851#ifdef __LITTLE_ENDIAN__
1118610852#define vld3q_s32(__p0) __extension__ ({ \
1118710853 int32x4x3_t __ret; \
......@@ -11322,24 +10988,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
1132210988})
1132310989#endif
1132410990
11325#ifdef __LITTLE_ENDIAN__
11326#define vld3_f16(__p0) __extension__ ({ \
11327 float16x4x3_t __ret; \
11328 __builtin_neon_vld3_v(&__ret, __p0, 8); \
11329 __ret; \
11330})
11331#else
11332#define vld3_f16(__p0) __extension__ ({ \
11333 float16x4x3_t __ret; \
11334 __builtin_neon_vld3_v(&__ret, __p0, 8); \
11335 \
11336 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
11337 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
11338 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
11339 __ret; \
11340})
11341#endif
11342
1134310991#ifdef __LITTLE_ENDIAN__
1134410992#define vld3_s32(__p0) __extension__ ({ \
1134510993 int32x2x3_t __ret; \
......@@ -11570,24 +11218,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
1157011218})
1157111219#endif
1157211220
11573#ifdef __LITTLE_ENDIAN__
11574#define vld3q_dup_f16(__p0) __extension__ ({ \
11575 float16x8x3_t __ret; \
11576 __builtin_neon_vld3q_dup_v(&__ret, __p0, 40); \
11577 __ret; \
11578})
11579#else
11580#define vld3q_dup_f16(__p0) __extension__ ({ \
11581 float16x8x3_t __ret; \
11582 __builtin_neon_vld3q_dup_v(&__ret, __p0, 40); \
11583 \
11584 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
11585 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
11586 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
11587 __ret; \
11588})
11589#endif
11590
1159111221#ifdef __LITTLE_ENDIAN__
1159211222#define vld3q_dup_s32(__p0) __extension__ ({ \
1159311223 int32x4x3_t __ret; \
......@@ -11746,24 +11376,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
1174611376})
1174711377#endif
1174811378
11749#ifdef __LITTLE_ENDIAN__
11750#define vld3_dup_f16(__p0) __extension__ ({ \
11751 float16x4x3_t __ret; \
11752 __builtin_neon_vld3_dup_v(&__ret, __p0, 8); \
11753 __ret; \
11754})
11755#else
11756#define vld3_dup_f16(__p0) __extension__ ({ \
11757 float16x4x3_t __ret; \
11758 __builtin_neon_vld3_dup_v(&__ret, __p0, 8); \
11759 \
11760 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
11761 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
11762 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
11763 __ret; \
11764})
11765#endif
11766
1176711379#ifdef __LITTLE_ENDIAN__
1176811380#define vld3_dup_s32(__p0) __extension__ ({ \
1176911381 int32x2x3_t __ret; \
......@@ -11958,30 +11570,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
1195811570})
1195911571#endif
1196011572
11961#ifdef __LITTLE_ENDIAN__
11962#define vld3q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
11963 float16x8x3_t __s1 = __p1; \
11964 float16x8x3_t __ret; \
11965 __builtin_neon_vld3q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 40); \
11966 __ret; \
11967})
11968#else
11969#define vld3q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
11970 float16x8x3_t __s1 = __p1; \
11971 float16x8x3_t __rev1; \
11972 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
11973 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
11974 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
11975 float16x8x3_t __ret; \
11976 __builtin_neon_vld3q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 40); \
11977 \
11978 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
11979 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
11980 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
11981 __ret; \
11982})
11983#endif
11984
1198511573#ifdef __LITTLE_ENDIAN__
1198611574#define vld3q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
1198711575 int32x4x3_t __s1 = __p1; \
......@@ -12150,30 +11738,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
1215011738})
1215111739#endif
1215211740
12153#ifdef __LITTLE_ENDIAN__
12154#define vld3_lane_f16(__p0, __p1, __p2) __extension__ ({ \
12155 float16x4x3_t __s1 = __p1; \
12156 float16x4x3_t __ret; \
12157 __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 8); \
12158 __ret; \
12159})
12160#else
12161#define vld3_lane_f16(__p0, __p1, __p2) __extension__ ({ \
12162 float16x4x3_t __s1 = __p1; \
12163 float16x4x3_t __rev1; \
12164 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
12165 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
12166 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
12167 float16x4x3_t __ret; \
12168 __builtin_neon_vld3_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 8); \
12169 \
12170 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
12171 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
12172 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
12173 __ret; \
12174})
12175#endif
12176
1217711741#ifdef __LITTLE_ENDIAN__
1217811742#define vld3_lane_s32(__p0, __p1, __p2) __extension__ ({ \
1217911743 int32x2x3_t __s1 = __p1; \
......@@ -12393,25 +11957,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
1239311957})
1239411958#endif
1239511959
12396#ifdef __LITTLE_ENDIAN__
12397#define vld4q_f16(__p0) __extension__ ({ \
12398 float16x8x4_t __ret; \
12399 __builtin_neon_vld4q_v(&__ret, __p0, 40); \
12400 __ret; \
12401})
12402#else
12403#define vld4q_f16(__p0) __extension__ ({ \
12404 float16x8x4_t __ret; \
12405 __builtin_neon_vld4q_v(&__ret, __p0, 40); \
12406 \
12407 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
12408 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
12409 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
12410 __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
12411 __ret; \
12412})
12413#endif
12414
1241511960#ifdef __LITTLE_ENDIAN__
1241611961#define vld4q_s32(__p0) __extension__ ({ \
1241711962 int32x4x4_t __ret; \
......@@ -12559,25 +12104,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
1255912104})
1256012105#endif
1256112106
12562#ifdef __LITTLE_ENDIAN__
12563#define vld4_f16(__p0) __extension__ ({ \
12564 float16x4x4_t __ret; \
12565 __builtin_neon_vld4_v(&__ret, __p0, 8); \
12566 __ret; \
12567})
12568#else
12569#define vld4_f16(__p0) __extension__ ({ \
12570 float16x4x4_t __ret; \
12571 __builtin_neon_vld4_v(&__ret, __p0, 8); \
12572 \
12573 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
12574 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
12575 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
12576 __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
12577 __ret; \
12578})
12579#endif
12580
1258112107#ifdef __LITTLE_ENDIAN__
1258212108#define vld4_s32(__p0) __extension__ ({ \
1258312109 int32x2x4_t __ret; \
......@@ -12820,25 +12346,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
1282012346})
1282112347#endif
1282212348
12823#ifdef __LITTLE_ENDIAN__
12824#define vld4q_dup_f16(__p0) __extension__ ({ \
12825 float16x8x4_t __ret; \
12826 __builtin_neon_vld4q_dup_v(&__ret, __p0, 40); \
12827 __ret; \
12828})
12829#else
12830#define vld4q_dup_f16(__p0) __extension__ ({ \
12831 float16x8x4_t __ret; \
12832 __builtin_neon_vld4q_dup_v(&__ret, __p0, 40); \
12833 \
12834 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
12835 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
12836 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
12837 __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
12838 __ret; \
12839})
12840#endif
12841
1284212349#ifdef __LITTLE_ENDIAN__
1284312350#define vld4q_dup_s32(__p0) __extension__ ({ \
1284412351 int32x4x4_t __ret; \
......@@ -13005,25 +12512,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
1300512512})
1300612513#endif
1300712514
13008#ifdef __LITTLE_ENDIAN__
13009#define vld4_dup_f16(__p0) __extension__ ({ \
13010 float16x4x4_t __ret; \
13011 __builtin_neon_vld4_dup_v(&__ret, __p0, 8); \
13012 __ret; \
13013})
13014#else
13015#define vld4_dup_f16(__p0) __extension__ ({ \
13016 float16x4x4_t __ret; \
13017 __builtin_neon_vld4_dup_v(&__ret, __p0, 8); \
13018 \
13019 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
13020 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
13021 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
13022 __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
13023 __ret; \
13024})
13025#endif
13026
1302712515#ifdef __LITTLE_ENDIAN__
1302812516#define vld4_dup_s32(__p0) __extension__ ({ \
1302912517 int32x2x4_t __ret; \
......@@ -13232,32 +12720,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
1323212720})
1323312721#endif
1323412722
13235#ifdef __LITTLE_ENDIAN__
13236#define vld4q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
13237 float16x8x4_t __s1 = __p1; \
13238 float16x8x4_t __ret; \
13239 __builtin_neon_vld4q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 40); \
13240 __ret; \
13241})
13242#else
13243#define vld4q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
13244 float16x8x4_t __s1 = __p1; \
13245 float16x8x4_t __rev1; \
13246 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
13247 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
13248 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
13249 __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
13250 float16x8x4_t __ret; \
13251 __builtin_neon_vld4q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 40); \
13252 \
13253 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
13254 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
13255 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
13256 __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
13257 __ret; \
13258})
13259#endif
13260
1326112723#ifdef __LITTLE_ENDIAN__
1326212724#define vld4q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
1326312725 int32x4x4_t __s1 = __p1; \
......@@ -13440,32 +12902,6 @@ __ai int16x4_t vhsub_s16(int16x4_t __p0, int16x4_t __p1) {
1344012902})
1344112903#endif
1344212904
13443#ifdef __LITTLE_ENDIAN__
13444#define vld4_lane_f16(__p0, __p1, __p2) __extension__ ({ \
13445 float16x4x4_t __s1 = __p1; \
13446 float16x4x4_t __ret; \
13447 __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 8); \
13448 __ret; \
13449})
13450#else
13451#define vld4_lane_f16(__p0, __p1, __p2) __extension__ ({ \
13452 float16x4x4_t __s1 = __p1; \
13453 float16x4x4_t __rev1; \
13454 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
13455 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
13456 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
13457 __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
13458 float16x4x4_t __ret; \
13459 __builtin_neon_vld4_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 8); \
13460 \
13461 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
13462 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
13463 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
13464 __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
13465 __ret; \
13466})
13467#endif
13468
1346912905#ifdef __LITTLE_ENDIAN__
1347012906#define vld4_lane_s32(__p0, __p1, __p2) __extension__ ({ \
1347112907 int32x2x4_t __s1 = __p1; \
......@@ -27010,19 +26446,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2701026446})
2701126447#endif
2701226448
27013#ifdef __LITTLE_ENDIAN__
27014#define vst1q_f16(__p0, __p1) __extension__ ({ \
27015 float16x8_t __s1 = __p1; \
27016 __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 40); \
27017})
27018#else
27019#define vst1q_f16(__p0, __p1) __extension__ ({ \
27020 float16x8_t __s1 = __p1; \
27021 float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
27022 __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 40); \
27023})
27024#endif
27025
2702626449#ifdef __LITTLE_ENDIAN__
2702726450#define vst1q_s32(__p0, __p1) __extension__ ({ \
2702826451 int32x4_t __s1 = __p1; \
......@@ -27139,19 +26562,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2713926562})
2714026563#endif
2714126564
27142#ifdef __LITTLE_ENDIAN__
27143#define vst1_f16(__p0, __p1) __extension__ ({ \
27144 float16x4_t __s1 = __p1; \
27145 __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 8); \
27146})
27147#else
27148#define vst1_f16(__p0, __p1) __extension__ ({ \
27149 float16x4_t __s1 = __p1; \
27150 float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
27151 __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 8); \
27152})
27153#endif
27154
2715526565#ifdef __LITTLE_ENDIAN__
2715626566#define vst1_s32(__p0, __p1) __extension__ ({ \
2715726567 int32x2_t __s1 = __p1; \
......@@ -27320,19 +26730,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2732026730})
2732126731#endif
2732226732
27323#ifdef __LITTLE_ENDIAN__
27324#define vst1q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
27325 float16x8_t __s1 = __p1; \
27326 __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 40); \
27327})
27328#else
27329#define vst1q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
27330 float16x8_t __s1 = __p1; \
27331 float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
27332 __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 40); \
27333})
27334#endif
27335
2733626733#ifdef __LITTLE_ENDIAN__
2733726734#define vst1q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
2733826735 int32x4_t __s1 = __p1; \
......@@ -27449,19 +26846,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2744926846})
2745026847#endif
2745126848
27452#ifdef __LITTLE_ENDIAN__
27453#define vst1_lane_f16(__p0, __p1, __p2) __extension__ ({ \
27454 float16x4_t __s1 = __p1; \
27455 __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 8); \
27456})
27457#else
27458#define vst1_lane_f16(__p0, __p1, __p2) __extension__ ({ \
27459 float16x4_t __s1 = __p1; \
27460 float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
27461 __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 8); \
27462})
27463#endif
27464
2746526849#ifdef __LITTLE_ENDIAN__
2746626850#define vst1_lane_s32(__p0, __p1, __p2) __extension__ ({ \
2746726851 int32x2_t __s1 = __p1; \
......@@ -27650,21 +27034,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2765027034})
2765127035#endif
2765227036
27653#ifdef __LITTLE_ENDIAN__
27654#define vst1q_f16_x2(__p0, __p1) __extension__ ({ \
27655 float16x8x2_t __s1 = __p1; \
27656 __builtin_neon_vst1q_x2_v(__p0, __s1.val[0], __s1.val[1], 40); \
27657})
27658#else
27659#define vst1q_f16_x2(__p0, __p1) __extension__ ({ \
27660 float16x8x2_t __s1 = __p1; \
27661 float16x8x2_t __rev1; \
27662 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
27663 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
27664 __builtin_neon_vst1q_x2_v(__p0, __rev1.val[0], __rev1.val[1], 40); \
27665})
27666#endif
27667
2766827037#ifdef __LITTLE_ENDIAN__
2766927038#define vst1q_s32_x2(__p0, __p1) __extension__ ({ \
2767027039 int32x4x2_t __s1 = __p1; \
......@@ -27797,21 +27166,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2779727166})
2779827167#endif
2779927168
27800#ifdef __LITTLE_ENDIAN__
27801#define vst1_f16_x2(__p0, __p1) __extension__ ({ \
27802 float16x4x2_t __s1 = __p1; \
27803 __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 8); \
27804})
27805#else
27806#define vst1_f16_x2(__p0, __p1) __extension__ ({ \
27807 float16x4x2_t __s1 = __p1; \
27808 float16x4x2_t __rev1; \
27809 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
27810 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
27811 __builtin_neon_vst1_x2_v(__p0, __rev1.val[0], __rev1.val[1], 8); \
27812})
27813#endif
27814
2781527169#ifdef __LITTLE_ENDIAN__
2781627170#define vst1_s32_x2(__p0, __p1) __extension__ ({ \
2781727171 int32x2x2_t __s1 = __p1; \
......@@ -28014,22 +27368,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2801427368})
2801527369#endif
2801627370
28017#ifdef __LITTLE_ENDIAN__
28018#define vst1q_f16_x3(__p0, __p1) __extension__ ({ \
28019 float16x8x3_t __s1 = __p1; \
28020 __builtin_neon_vst1q_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 40); \
28021})
28022#else
28023#define vst1q_f16_x3(__p0, __p1) __extension__ ({ \
28024 float16x8x3_t __s1 = __p1; \
28025 float16x8x3_t __rev1; \
28026 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
28027 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
28028 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
28029 __builtin_neon_vst1q_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 40); \
28030})
28031#endif
28032
2803327371#ifdef __LITTLE_ENDIAN__
2803427372#define vst1q_s32_x3(__p0, __p1) __extension__ ({ \
2803527373 int32x4x3_t __s1 = __p1; \
......@@ -28170,22 +27508,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2817027508})
2817127509#endif
2817227510
28173#ifdef __LITTLE_ENDIAN__
28174#define vst1_f16_x3(__p0, __p1) __extension__ ({ \
28175 float16x4x3_t __s1 = __p1; \
28176 __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 8); \
28177})
28178#else
28179#define vst1_f16_x3(__p0, __p1) __extension__ ({ \
28180 float16x4x3_t __s1 = __p1; \
28181 float16x4x3_t __rev1; \
28182 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
28183 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
28184 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
28185 __builtin_neon_vst1_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 8); \
28186})
28187#endif
28188
2818927511#ifdef __LITTLE_ENDIAN__
2819027512#define vst1_s32_x3(__p0, __p1) __extension__ ({ \
2819127513 int32x2x3_t __s1 = __p1; \
......@@ -28400,23 +27722,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2840027722})
2840127723#endif
2840227724
28403#ifdef __LITTLE_ENDIAN__
28404#define vst1q_f16_x4(__p0, __p1) __extension__ ({ \
28405 float16x8x4_t __s1 = __p1; \
28406 __builtin_neon_vst1q_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 40); \
28407})
28408#else
28409#define vst1q_f16_x4(__p0, __p1) __extension__ ({ \
28410 float16x8x4_t __s1 = __p1; \
28411 float16x8x4_t __rev1; \
28412 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
28413 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
28414 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
28415 __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
28416 __builtin_neon_vst1q_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 40); \
28417})
28418#endif
28419
2842027725#ifdef __LITTLE_ENDIAN__
2842127726#define vst1q_s32_x4(__p0, __p1) __extension__ ({ \
2842227727 int32x4x4_t __s1 = __p1; \
......@@ -28565,23 +27870,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2856527870})
2856627871#endif
2856727872
28568#ifdef __LITTLE_ENDIAN__
28569#define vst1_f16_x4(__p0, __p1) __extension__ ({ \
28570 float16x4x4_t __s1 = __p1; \
28571 __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 8); \
28572})
28573#else
28574#define vst1_f16_x4(__p0, __p1) __extension__ ({ \
28575 float16x4x4_t __s1 = __p1; \
28576 float16x4x4_t __rev1; \
28577 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
28578 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
28579 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
28580 __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
28581 __builtin_neon_vst1_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 8); \
28582})
28583#endif
28584
2858527873#ifdef __LITTLE_ENDIAN__
2858627874#define vst1_s32_x4(__p0, __p1) __extension__ ({ \
2858727875 int32x2x4_t __s1 = __p1; \
......@@ -28763,21 +28051,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2876328051})
2876428052#endif
2876528053
28766#ifdef __LITTLE_ENDIAN__
28767#define vst2q_f16(__p0, __p1) __extension__ ({ \
28768 float16x8x2_t __s1 = __p1; \
28769 __builtin_neon_vst2q_v(__p0, __s1.val[0], __s1.val[1], 40); \
28770})
28771#else
28772#define vst2q_f16(__p0, __p1) __extension__ ({ \
28773 float16x8x2_t __s1 = __p1; \
28774 float16x8x2_t __rev1; \
28775 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
28776 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
28777 __builtin_neon_vst2q_v(__p0, __rev1.val[0], __rev1.val[1], 40); \
28778})
28779#endif
28780
2878128054#ifdef __LITTLE_ENDIAN__
2878228055#define vst2q_s32(__p0, __p1) __extension__ ({ \
2878328056 int32x4x2_t __s1 = __p1; \
......@@ -28895,21 +28168,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2889528168})
2889628169#endif
2889728170
28898#ifdef __LITTLE_ENDIAN__
28899#define vst2_f16(__p0, __p1) __extension__ ({ \
28900 float16x4x2_t __s1 = __p1; \
28901 __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 8); \
28902})
28903#else
28904#define vst2_f16(__p0, __p1) __extension__ ({ \
28905 float16x4x2_t __s1 = __p1; \
28906 float16x4x2_t __rev1; \
28907 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
28908 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
28909 __builtin_neon_vst2_v(__p0, __rev1.val[0], __rev1.val[1], 8); \
28910})
28911#endif
28912
2891328171#ifdef __LITTLE_ENDIAN__
2891428172#define vst2_s32(__p0, __p1) __extension__ ({ \
2891528173 int32x2x2_t __s1 = __p1; \
......@@ -29042,21 +28300,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2904228300})
2904328301#endif
2904428302
29045#ifdef __LITTLE_ENDIAN__
29046#define vst2q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
29047 float16x8x2_t __s1 = __p1; \
29048 __builtin_neon_vst2q_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 40); \
29049})
29050#else
29051#define vst2q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
29052 float16x8x2_t __s1 = __p1; \
29053 float16x8x2_t __rev1; \
29054 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
29055 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
29056 __builtin_neon_vst2q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 40); \
29057})
29058#endif
29059
2906028303#ifdef __LITTLE_ENDIAN__
2906128304#define vst2q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
2906228305 int32x4x2_t __s1 = __p1; \
......@@ -29162,21 +28405,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2916228405})
2916328406#endif
2916428407
29165#ifdef __LITTLE_ENDIAN__
29166#define vst2_lane_f16(__p0, __p1, __p2) __extension__ ({ \
29167 float16x4x2_t __s1 = __p1; \
29168 __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 8); \
29169})
29170#else
29171#define vst2_lane_f16(__p0, __p1, __p2) __extension__ ({ \
29172 float16x4x2_t __s1 = __p1; \
29173 float16x4x2_t __rev1; \
29174 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
29175 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
29176 __builtin_neon_vst2_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 8); \
29177})
29178#endif
29179
2918028408#ifdef __LITTLE_ENDIAN__
2918128409#define vst2_lane_s32(__p0, __p1, __p2) __extension__ ({ \
2918228410 int32x2x2_t __s1 = __p1; \
......@@ -29351,22 +28579,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2935128579})
2935228580#endif
2935328581
29354#ifdef __LITTLE_ENDIAN__
29355#define vst3q_f16(__p0, __p1) __extension__ ({ \
29356 float16x8x3_t __s1 = __p1; \
29357 __builtin_neon_vst3q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 40); \
29358})
29359#else
29360#define vst3q_f16(__p0, __p1) __extension__ ({ \
29361 float16x8x3_t __s1 = __p1; \
29362 float16x8x3_t __rev1; \
29363 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
29364 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
29365 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
29366 __builtin_neon_vst3q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 40); \
29367})
29368#endif
29369
2937028582#ifdef __LITTLE_ENDIAN__
2937128583#define vst3q_s32(__p0, __p1) __extension__ ({ \
2937228584 int32x4x3_t __s1 = __p1; \
......@@ -29491,22 +28703,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2949128703})
2949228704#endif
2949328705
29494#ifdef __LITTLE_ENDIAN__
29495#define vst3_f16(__p0, __p1) __extension__ ({ \
29496 float16x4x3_t __s1 = __p1; \
29497 __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 8); \
29498})
29499#else
29500#define vst3_f16(__p0, __p1) __extension__ ({ \
29501 float16x4x3_t __s1 = __p1; \
29502 float16x4x3_t __rev1; \
29503 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
29504 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
29505 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
29506 __builtin_neon_vst3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 8); \
29507})
29508#endif
29509
2951028706#ifdef __LITTLE_ENDIAN__
2951128707#define vst3_s32(__p0, __p1) __extension__ ({ \
2951228708 int32x2x3_t __s1 = __p1; \
......@@ -29647,22 +28843,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2964728843})
2964828844#endif
2964928845
29650#ifdef __LITTLE_ENDIAN__
29651#define vst3q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
29652 float16x8x3_t __s1 = __p1; \
29653 __builtin_neon_vst3q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 40); \
29654})
29655#else
29656#define vst3q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
29657 float16x8x3_t __s1 = __p1; \
29658 float16x8x3_t __rev1; \
29659 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
29660 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
29661 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
29662 __builtin_neon_vst3q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 40); \
29663})
29664#endif
29665
2966628846#ifdef __LITTLE_ENDIAN__
2966728847#define vst3q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
2966828848 int32x4x3_t __s1 = __p1; \
......@@ -29775,22 +28955,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2977528955})
2977628956#endif
2977728957
29778#ifdef __LITTLE_ENDIAN__
29779#define vst3_lane_f16(__p0, __p1, __p2) __extension__ ({ \
29780 float16x4x3_t __s1 = __p1; \
29781 __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 8); \
29782})
29783#else
29784#define vst3_lane_f16(__p0, __p1, __p2) __extension__ ({ \
29785 float16x4x3_t __s1 = __p1; \
29786 float16x4x3_t __rev1; \
29787 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
29788 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
29789 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
29790 __builtin_neon_vst3_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 8); \
29791})
29792#endif
29793
2979428958#ifdef __LITTLE_ENDIAN__
2979528959#define vst3_lane_s32(__p0, __p1, __p2) __extension__ ({ \
2979628960 int32x2x3_t __s1 = __p1; \
......@@ -29976,23 +29140,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
2997629140})
2997729141#endif
2997829142
29979#ifdef __LITTLE_ENDIAN__
29980#define vst4q_f16(__p0, __p1) __extension__ ({ \
29981 float16x8x4_t __s1 = __p1; \
29982 __builtin_neon_vst4q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 40); \
29983})
29984#else
29985#define vst4q_f16(__p0, __p1) __extension__ ({ \
29986 float16x8x4_t __s1 = __p1; \
29987 float16x8x4_t __rev1; \
29988 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
29989 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
29990 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
29991 __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
29992 __builtin_neon_vst4q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 40); \
29993})
29994#endif
29995
2999629143#ifdef __LITTLE_ENDIAN__
2999729144#define vst4q_s32(__p0, __p1) __extension__ ({ \
2999829145 int32x4x4_t __s1 = __p1; \
......@@ -30124,23 +29271,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
3012429271})
3012529272#endif
3012629273
30127#ifdef __LITTLE_ENDIAN__
30128#define vst4_f16(__p0, __p1) __extension__ ({ \
30129 float16x4x4_t __s1 = __p1; \
30130 __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 8); \
30131})
30132#else
30133#define vst4_f16(__p0, __p1) __extension__ ({ \
30134 float16x4x4_t __s1 = __p1; \
30135 float16x4x4_t __rev1; \
30136 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
30137 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
30138 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
30139 __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
30140 __builtin_neon_vst4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 8); \
30141})
30142#endif
30143
3014429274#ifdef __LITTLE_ENDIAN__
3014529275#define vst4_s32(__p0, __p1) __extension__ ({ \
3014629276 int32x2x4_t __s1 = __p1; \
......@@ -30289,23 +29419,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
3028929419})
3029029420#endif
3029129421
30292#ifdef __LITTLE_ENDIAN__
30293#define vst4q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
30294 float16x8x4_t __s1 = __p1; \
30295 __builtin_neon_vst4q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 40); \
30296})
30297#else
30298#define vst4q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
30299 float16x8x4_t __s1 = __p1; \
30300 float16x8x4_t __rev1; \
30301 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
30302 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
30303 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
30304 __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
30305 __builtin_neon_vst4q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 40); \
30306})
30307#endif
30308
3030929422#ifdef __LITTLE_ENDIAN__
3031029423#define vst4q_lane_s32(__p0, __p1, __p2) __extension__ ({ \
3031129424 int32x4x4_t __s1 = __p1; \
......@@ -30425,23 +29538,6 @@ __ai int16x4_t vshl_s16(int16x4_t __p0, int16x4_t __p1) {
3042529538})
3042629539#endif
3042729540
30428#ifdef __LITTLE_ENDIAN__
30429#define vst4_lane_f16(__p0, __p1, __p2) __extension__ ({ \
30430 float16x4x4_t __s1 = __p1; \
30431 __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 8); \
30432})
30433#else
30434#define vst4_lane_f16(__p0, __p1, __p2) __extension__ ({ \
30435 float16x4x4_t __s1 = __p1; \
30436 float16x4x4_t __rev1; \
30437 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
30438 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
30439 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
30440 __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
30441 __builtin_neon_vst4_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 8); \
30442})
30443#endif
30444
3044529541#ifdef __LITTLE_ENDIAN__
3044629542#define vst4_lane_s32(__p0, __p1, __p2) __extension__ ({ \
3044729543 int32x2x4_t __s1 = __p1; \
......@@ -36729,6 +35825,910 @@ __ai float32x4_t __noswap_vcvt_f32_f16(float16x4_t __p0) {
3672935825}
3673035826#endif
3673135827
35828#ifdef __LITTLE_ENDIAN__
35829#define vld1q_f16(__p0) __extension__ ({ \
35830 float16x8_t __ret; \
35831 __ret = (float16x8_t) __builtin_neon_vld1q_v(__p0, 40); \
35832 __ret; \
35833})
35834#else
35835#define vld1q_f16(__p0) __extension__ ({ \
35836 float16x8_t __ret; \
35837 __ret = (float16x8_t) __builtin_neon_vld1q_v(__p0, 40); \
35838 __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
35839 __ret; \
35840})
35841#endif
35842
35843#ifdef __LITTLE_ENDIAN__
35844#define vld1_f16(__p0) __extension__ ({ \
35845 float16x4_t __ret; \
35846 __ret = (float16x4_t) __builtin_neon_vld1_v(__p0, 8); \
35847 __ret; \
35848})
35849#else
35850#define vld1_f16(__p0) __extension__ ({ \
35851 float16x4_t __ret; \
35852 __ret = (float16x4_t) __builtin_neon_vld1_v(__p0, 8); \
35853 __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
35854 __ret; \
35855})
35856#endif
35857
35858#ifdef __LITTLE_ENDIAN__
35859#define vld1q_dup_f16(__p0) __extension__ ({ \
35860 float16x8_t __ret; \
35861 __ret = (float16x8_t) __builtin_neon_vld1q_dup_v(__p0, 40); \
35862 __ret; \
35863})
35864#else
35865#define vld1q_dup_f16(__p0) __extension__ ({ \
35866 float16x8_t __ret; \
35867 __ret = (float16x8_t) __builtin_neon_vld1q_dup_v(__p0, 40); \
35868 __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
35869 __ret; \
35870})
35871#endif
35872
35873#ifdef __LITTLE_ENDIAN__
35874#define vld1_dup_f16(__p0) __extension__ ({ \
35875 float16x4_t __ret; \
35876 __ret = (float16x4_t) __builtin_neon_vld1_dup_v(__p0, 8); \
35877 __ret; \
35878})
35879#else
35880#define vld1_dup_f16(__p0) __extension__ ({ \
35881 float16x4_t __ret; \
35882 __ret = (float16x4_t) __builtin_neon_vld1_dup_v(__p0, 8); \
35883 __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
35884 __ret; \
35885})
35886#endif
35887
35888#ifdef __LITTLE_ENDIAN__
35889#define vld1q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
35890 float16x8_t __s1 = __p1; \
35891 float16x8_t __ret; \
35892 __ret = (float16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__s1, __p2, 40); \
35893 __ret; \
35894})
35895#else
35896#define vld1q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
35897 float16x8_t __s1 = __p1; \
35898 float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
35899 float16x8_t __ret; \
35900 __ret = (float16x8_t) __builtin_neon_vld1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 40); \
35901 __ret = __builtin_shufflevector(__ret, __ret, 7, 6, 5, 4, 3, 2, 1, 0); \
35902 __ret; \
35903})
35904#endif
35905
35906#ifdef __LITTLE_ENDIAN__
35907#define vld1_lane_f16(__p0, __p1, __p2) __extension__ ({ \
35908 float16x4_t __s1 = __p1; \
35909 float16x4_t __ret; \
35910 __ret = (float16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__s1, __p2, 8); \
35911 __ret; \
35912})
35913#else
35914#define vld1_lane_f16(__p0, __p1, __p2) __extension__ ({ \
35915 float16x4_t __s1 = __p1; \
35916 float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
35917 float16x4_t __ret; \
35918 __ret = (float16x4_t) __builtin_neon_vld1_lane_v(__p0, (int8x8_t)__rev1, __p2, 8); \
35919 __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0); \
35920 __ret; \
35921})
35922#endif
35923
35924#ifdef __LITTLE_ENDIAN__
35925#define vld1q_f16_x2(__p0) __extension__ ({ \
35926 float16x8x2_t __ret; \
35927 __builtin_neon_vld1q_x2_v(&__ret, __p0, 40); \
35928 __ret; \
35929})
35930#else
35931#define vld1q_f16_x2(__p0) __extension__ ({ \
35932 float16x8x2_t __ret; \
35933 __builtin_neon_vld1q_x2_v(&__ret, __p0, 40); \
35934 \
35935 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
35936 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
35937 __ret; \
35938})
35939#endif
35940
35941#ifdef __LITTLE_ENDIAN__
35942#define vld1_f16_x2(__p0) __extension__ ({ \
35943 float16x4x2_t __ret; \
35944 __builtin_neon_vld1_x2_v(&__ret, __p0, 8); \
35945 __ret; \
35946})
35947#else
35948#define vld1_f16_x2(__p0) __extension__ ({ \
35949 float16x4x2_t __ret; \
35950 __builtin_neon_vld1_x2_v(&__ret, __p0, 8); \
35951 \
35952 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
35953 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
35954 __ret; \
35955})
35956#endif
35957
35958#ifdef __LITTLE_ENDIAN__
35959#define vld1q_f16_x3(__p0) __extension__ ({ \
35960 float16x8x3_t __ret; \
35961 __builtin_neon_vld1q_x3_v(&__ret, __p0, 40); \
35962 __ret; \
35963})
35964#else
35965#define vld1q_f16_x3(__p0) __extension__ ({ \
35966 float16x8x3_t __ret; \
35967 __builtin_neon_vld1q_x3_v(&__ret, __p0, 40); \
35968 \
35969 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
35970 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
35971 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
35972 __ret; \
35973})
35974#endif
35975
35976#ifdef __LITTLE_ENDIAN__
35977#define vld1_f16_x3(__p0) __extension__ ({ \
35978 float16x4x3_t __ret; \
35979 __builtin_neon_vld1_x3_v(&__ret, __p0, 8); \
35980 __ret; \
35981})
35982#else
35983#define vld1_f16_x3(__p0) __extension__ ({ \
35984 float16x4x3_t __ret; \
35985 __builtin_neon_vld1_x3_v(&__ret, __p0, 8); \
35986 \
35987 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
35988 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
35989 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
35990 __ret; \
35991})
35992#endif
35993
35994#ifdef __LITTLE_ENDIAN__
35995#define vld1q_f16_x4(__p0) __extension__ ({ \
35996 float16x8x4_t __ret; \
35997 __builtin_neon_vld1q_x4_v(&__ret, __p0, 40); \
35998 __ret; \
35999})
36000#else
36001#define vld1q_f16_x4(__p0) __extension__ ({ \
36002 float16x8x4_t __ret; \
36003 __builtin_neon_vld1q_x4_v(&__ret, __p0, 40); \
36004 \
36005 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36006 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36007 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
36008 __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
36009 __ret; \
36010})
36011#endif
36012
36013#ifdef __LITTLE_ENDIAN__
36014#define vld1_f16_x4(__p0) __extension__ ({ \
36015 float16x4x4_t __ret; \
36016 __builtin_neon_vld1_x4_v(&__ret, __p0, 8); \
36017 __ret; \
36018})
36019#else
36020#define vld1_f16_x4(__p0) __extension__ ({ \
36021 float16x4x4_t __ret; \
36022 __builtin_neon_vld1_x4_v(&__ret, __p0, 8); \
36023 \
36024 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
36025 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
36026 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
36027 __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
36028 __ret; \
36029})
36030#endif
36031
36032#ifdef __LITTLE_ENDIAN__
36033#define vld2q_f16(__p0) __extension__ ({ \
36034 float16x8x2_t __ret; \
36035 __builtin_neon_vld2q_v(&__ret, __p0, 40); \
36036 __ret; \
36037})
36038#else
36039#define vld2q_f16(__p0) __extension__ ({ \
36040 float16x8x2_t __ret; \
36041 __builtin_neon_vld2q_v(&__ret, __p0, 40); \
36042 \
36043 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36044 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36045 __ret; \
36046})
36047#endif
36048
36049#ifdef __LITTLE_ENDIAN__
36050#define vld2_f16(__p0) __extension__ ({ \
36051 float16x4x2_t __ret; \
36052 __builtin_neon_vld2_v(&__ret, __p0, 8); \
36053 __ret; \
36054})
36055#else
36056#define vld2_f16(__p0) __extension__ ({ \
36057 float16x4x2_t __ret; \
36058 __builtin_neon_vld2_v(&__ret, __p0, 8); \
36059 \
36060 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
36061 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
36062 __ret; \
36063})
36064#endif
36065
36066#ifdef __LITTLE_ENDIAN__
36067#define vld2q_dup_f16(__p0) __extension__ ({ \
36068 float16x8x2_t __ret; \
36069 __builtin_neon_vld2q_dup_v(&__ret, __p0, 40); \
36070 __ret; \
36071})
36072#else
36073#define vld2q_dup_f16(__p0) __extension__ ({ \
36074 float16x8x2_t __ret; \
36075 __builtin_neon_vld2q_dup_v(&__ret, __p0, 40); \
36076 \
36077 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36078 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36079 __ret; \
36080})
36081#endif
36082
36083#ifdef __LITTLE_ENDIAN__
36084#define vld2_dup_f16(__p0) __extension__ ({ \
36085 float16x4x2_t __ret; \
36086 __builtin_neon_vld2_dup_v(&__ret, __p0, 8); \
36087 __ret; \
36088})
36089#else
36090#define vld2_dup_f16(__p0) __extension__ ({ \
36091 float16x4x2_t __ret; \
36092 __builtin_neon_vld2_dup_v(&__ret, __p0, 8); \
36093 \
36094 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
36095 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
36096 __ret; \
36097})
36098#endif
36099
36100#ifdef __LITTLE_ENDIAN__
36101#define vld2q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36102 float16x8x2_t __s1 = __p1; \
36103 float16x8x2_t __ret; \
36104 __builtin_neon_vld2q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 40); \
36105 __ret; \
36106})
36107#else
36108#define vld2q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36109 float16x8x2_t __s1 = __p1; \
36110 float16x8x2_t __rev1; \
36111 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36112 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36113 float16x8x2_t __ret; \
36114 __builtin_neon_vld2q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 40); \
36115 \
36116 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36117 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36118 __ret; \
36119})
36120#endif
36121
36122#ifdef __LITTLE_ENDIAN__
36123#define vld2_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36124 float16x4x2_t __s1 = __p1; \
36125 float16x4x2_t __ret; \
36126 __builtin_neon_vld2_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __p2, 8); \
36127 __ret; \
36128})
36129#else
36130#define vld2_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36131 float16x4x2_t __s1 = __p1; \
36132 float16x4x2_t __rev1; \
36133 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
36134 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
36135 float16x4x2_t __ret; \
36136 __builtin_neon_vld2_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __p2, 8); \
36137 \
36138 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
36139 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
36140 __ret; \
36141})
36142#endif
36143
36144#ifdef __LITTLE_ENDIAN__
36145#define vld3q_f16(__p0) __extension__ ({ \
36146 float16x8x3_t __ret; \
36147 __builtin_neon_vld3q_v(&__ret, __p0, 40); \
36148 __ret; \
36149})
36150#else
36151#define vld3q_f16(__p0) __extension__ ({ \
36152 float16x8x3_t __ret; \
36153 __builtin_neon_vld3q_v(&__ret, __p0, 40); \
36154 \
36155 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36156 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36157 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
36158 __ret; \
36159})
36160#endif
36161
36162#ifdef __LITTLE_ENDIAN__
36163#define vld3_f16(__p0) __extension__ ({ \
36164 float16x4x3_t __ret; \
36165 __builtin_neon_vld3_v(&__ret, __p0, 8); \
36166 __ret; \
36167})
36168#else
36169#define vld3_f16(__p0) __extension__ ({ \
36170 float16x4x3_t __ret; \
36171 __builtin_neon_vld3_v(&__ret, __p0, 8); \
36172 \
36173 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
36174 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
36175 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
36176 __ret; \
36177})
36178#endif
36179
36180#ifdef __LITTLE_ENDIAN__
36181#define vld3q_dup_f16(__p0) __extension__ ({ \
36182 float16x8x3_t __ret; \
36183 __builtin_neon_vld3q_dup_v(&__ret, __p0, 40); \
36184 __ret; \
36185})
36186#else
36187#define vld3q_dup_f16(__p0) __extension__ ({ \
36188 float16x8x3_t __ret; \
36189 __builtin_neon_vld3q_dup_v(&__ret, __p0, 40); \
36190 \
36191 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36192 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36193 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
36194 __ret; \
36195})
36196#endif
36197
36198#ifdef __LITTLE_ENDIAN__
36199#define vld3_dup_f16(__p0) __extension__ ({ \
36200 float16x4x3_t __ret; \
36201 __builtin_neon_vld3_dup_v(&__ret, __p0, 8); \
36202 __ret; \
36203})
36204#else
36205#define vld3_dup_f16(__p0) __extension__ ({ \
36206 float16x4x3_t __ret; \
36207 __builtin_neon_vld3_dup_v(&__ret, __p0, 8); \
36208 \
36209 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
36210 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
36211 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
36212 __ret; \
36213})
36214#endif
36215
36216#ifdef __LITTLE_ENDIAN__
36217#define vld3q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36218 float16x8x3_t __s1 = __p1; \
36219 float16x8x3_t __ret; \
36220 __builtin_neon_vld3q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 40); \
36221 __ret; \
36222})
36223#else
36224#define vld3q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36225 float16x8x3_t __s1 = __p1; \
36226 float16x8x3_t __rev1; \
36227 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36228 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36229 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
36230 float16x8x3_t __ret; \
36231 __builtin_neon_vld3q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 40); \
36232 \
36233 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36234 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36235 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
36236 __ret; \
36237})
36238#endif
36239
36240#ifdef __LITTLE_ENDIAN__
36241#define vld3_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36242 float16x4x3_t __s1 = __p1; \
36243 float16x4x3_t __ret; \
36244 __builtin_neon_vld3_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 8); \
36245 __ret; \
36246})
36247#else
36248#define vld3_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36249 float16x4x3_t __s1 = __p1; \
36250 float16x4x3_t __rev1; \
36251 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
36252 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
36253 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
36254 float16x4x3_t __ret; \
36255 __builtin_neon_vld3_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 8); \
36256 \
36257 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
36258 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
36259 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
36260 __ret; \
36261})
36262#endif
36263
36264#ifdef __LITTLE_ENDIAN__
36265#define vld4q_f16(__p0) __extension__ ({ \
36266 float16x8x4_t __ret; \
36267 __builtin_neon_vld4q_v(&__ret, __p0, 40); \
36268 __ret; \
36269})
36270#else
36271#define vld4q_f16(__p0) __extension__ ({ \
36272 float16x8x4_t __ret; \
36273 __builtin_neon_vld4q_v(&__ret, __p0, 40); \
36274 \
36275 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36276 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36277 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
36278 __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
36279 __ret; \
36280})
36281#endif
36282
36283#ifdef __LITTLE_ENDIAN__
36284#define vld4_f16(__p0) __extension__ ({ \
36285 float16x4x4_t __ret; \
36286 __builtin_neon_vld4_v(&__ret, __p0, 8); \
36287 __ret; \
36288})
36289#else
36290#define vld4_f16(__p0) __extension__ ({ \
36291 float16x4x4_t __ret; \
36292 __builtin_neon_vld4_v(&__ret, __p0, 8); \
36293 \
36294 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
36295 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
36296 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
36297 __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
36298 __ret; \
36299})
36300#endif
36301
36302#ifdef __LITTLE_ENDIAN__
36303#define vld4q_dup_f16(__p0) __extension__ ({ \
36304 float16x8x4_t __ret; \
36305 __builtin_neon_vld4q_dup_v(&__ret, __p0, 40); \
36306 __ret; \
36307})
36308#else
36309#define vld4q_dup_f16(__p0) __extension__ ({ \
36310 float16x8x4_t __ret; \
36311 __builtin_neon_vld4q_dup_v(&__ret, __p0, 40); \
36312 \
36313 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36314 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36315 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
36316 __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
36317 __ret; \
36318})
36319#endif
36320
36321#ifdef __LITTLE_ENDIAN__
36322#define vld4_dup_f16(__p0) __extension__ ({ \
36323 float16x4x4_t __ret; \
36324 __builtin_neon_vld4_dup_v(&__ret, __p0, 8); \
36325 __ret; \
36326})
36327#else
36328#define vld4_dup_f16(__p0) __extension__ ({ \
36329 float16x4x4_t __ret; \
36330 __builtin_neon_vld4_dup_v(&__ret, __p0, 8); \
36331 \
36332 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
36333 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
36334 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
36335 __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
36336 __ret; \
36337})
36338#endif
36339
36340#ifdef __LITTLE_ENDIAN__
36341#define vld4q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36342 float16x8x4_t __s1 = __p1; \
36343 float16x8x4_t __ret; \
36344 __builtin_neon_vld4q_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 40); \
36345 __ret; \
36346})
36347#else
36348#define vld4q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36349 float16x8x4_t __s1 = __p1; \
36350 float16x8x4_t __rev1; \
36351 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36352 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36353 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
36354 __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
36355 float16x8x4_t __ret; \
36356 __builtin_neon_vld4q_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 40); \
36357 \
36358 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36359 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36360 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
36361 __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
36362 __ret; \
36363})
36364#endif
36365
36366#ifdef __LITTLE_ENDIAN__
36367#define vld4_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36368 float16x4x4_t __s1 = __p1; \
36369 float16x4x4_t __ret; \
36370 __builtin_neon_vld4_lane_v(&__ret, __p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 8); \
36371 __ret; \
36372})
36373#else
36374#define vld4_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36375 float16x4x4_t __s1 = __p1; \
36376 float16x4x4_t __rev1; \
36377 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
36378 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
36379 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
36380 __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
36381 float16x4x4_t __ret; \
36382 __builtin_neon_vld4_lane_v(&__ret, __p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 8); \
36383 \
36384 __ret.val[0] = __builtin_shufflevector(__ret.val[0], __ret.val[0], 3, 2, 1, 0); \
36385 __ret.val[1] = __builtin_shufflevector(__ret.val[1], __ret.val[1], 3, 2, 1, 0); \
36386 __ret.val[2] = __builtin_shufflevector(__ret.val[2], __ret.val[2], 3, 2, 1, 0); \
36387 __ret.val[3] = __builtin_shufflevector(__ret.val[3], __ret.val[3], 3, 2, 1, 0); \
36388 __ret; \
36389})
36390#endif
36391
36392#ifdef __LITTLE_ENDIAN__
36393#define vst1q_f16(__p0, __p1) __extension__ ({ \
36394 float16x8_t __s1 = __p1; \
36395 __builtin_neon_vst1q_v(__p0, (int8x16_t)__s1, 40); \
36396})
36397#else
36398#define vst1q_f16(__p0, __p1) __extension__ ({ \
36399 float16x8_t __s1 = __p1; \
36400 float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
36401 __builtin_neon_vst1q_v(__p0, (int8x16_t)__rev1, 40); \
36402})
36403#endif
36404
36405#ifdef __LITTLE_ENDIAN__
36406#define vst1_f16(__p0, __p1) __extension__ ({ \
36407 float16x4_t __s1 = __p1; \
36408 __builtin_neon_vst1_v(__p0, (int8x8_t)__s1, 8); \
36409})
36410#else
36411#define vst1_f16(__p0, __p1) __extension__ ({ \
36412 float16x4_t __s1 = __p1; \
36413 float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
36414 __builtin_neon_vst1_v(__p0, (int8x8_t)__rev1, 8); \
36415})
36416#endif
36417
36418#ifdef __LITTLE_ENDIAN__
36419#define vst1q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36420 float16x8_t __s1 = __p1; \
36421 __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__s1, __p2, 40); \
36422})
36423#else
36424#define vst1q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36425 float16x8_t __s1 = __p1; \
36426 float16x8_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 7, 6, 5, 4, 3, 2, 1, 0); \
36427 __builtin_neon_vst1q_lane_v(__p0, (int8x16_t)__rev1, __p2, 40); \
36428})
36429#endif
36430
36431#ifdef __LITTLE_ENDIAN__
36432#define vst1_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36433 float16x4_t __s1 = __p1; \
36434 __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__s1, __p2, 8); \
36435})
36436#else
36437#define vst1_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36438 float16x4_t __s1 = __p1; \
36439 float16x4_t __rev1; __rev1 = __builtin_shufflevector(__s1, __s1, 3, 2, 1, 0); \
36440 __builtin_neon_vst1_lane_v(__p0, (int8x8_t)__rev1, __p2, 8); \
36441})
36442#endif
36443
36444#ifdef __LITTLE_ENDIAN__
36445#define vst1q_f16_x2(__p0, __p1) __extension__ ({ \
36446 float16x8x2_t __s1 = __p1; \
36447 __builtin_neon_vst1q_x2_v(__p0, __s1.val[0], __s1.val[1], 40); \
36448})
36449#else
36450#define vst1q_f16_x2(__p0, __p1) __extension__ ({ \
36451 float16x8x2_t __s1 = __p1; \
36452 float16x8x2_t __rev1; \
36453 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36454 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36455 __builtin_neon_vst1q_x2_v(__p0, __rev1.val[0], __rev1.val[1], 40); \
36456})
36457#endif
36458
36459#ifdef __LITTLE_ENDIAN__
36460#define vst1_f16_x2(__p0, __p1) __extension__ ({ \
36461 float16x4x2_t __s1 = __p1; \
36462 __builtin_neon_vst1_x2_v(__p0, __s1.val[0], __s1.val[1], 8); \
36463})
36464#else
36465#define vst1_f16_x2(__p0, __p1) __extension__ ({ \
36466 float16x4x2_t __s1 = __p1; \
36467 float16x4x2_t __rev1; \
36468 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
36469 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
36470 __builtin_neon_vst1_x2_v(__p0, __rev1.val[0], __rev1.val[1], 8); \
36471})
36472#endif
36473
36474#ifdef __LITTLE_ENDIAN__
36475#define vst1q_f16_x3(__p0, __p1) __extension__ ({ \
36476 float16x8x3_t __s1 = __p1; \
36477 __builtin_neon_vst1q_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 40); \
36478})
36479#else
36480#define vst1q_f16_x3(__p0, __p1) __extension__ ({ \
36481 float16x8x3_t __s1 = __p1; \
36482 float16x8x3_t __rev1; \
36483 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36484 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36485 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
36486 __builtin_neon_vst1q_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 40); \
36487})
36488#endif
36489
36490#ifdef __LITTLE_ENDIAN__
36491#define vst1_f16_x3(__p0, __p1) __extension__ ({ \
36492 float16x4x3_t __s1 = __p1; \
36493 __builtin_neon_vst1_x3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 8); \
36494})
36495#else
36496#define vst1_f16_x3(__p0, __p1) __extension__ ({ \
36497 float16x4x3_t __s1 = __p1; \
36498 float16x4x3_t __rev1; \
36499 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
36500 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
36501 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
36502 __builtin_neon_vst1_x3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 8); \
36503})
36504#endif
36505
36506#ifdef __LITTLE_ENDIAN__
36507#define vst1q_f16_x4(__p0, __p1) __extension__ ({ \
36508 float16x8x4_t __s1 = __p1; \
36509 __builtin_neon_vst1q_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 40); \
36510})
36511#else
36512#define vst1q_f16_x4(__p0, __p1) __extension__ ({ \
36513 float16x8x4_t __s1 = __p1; \
36514 float16x8x4_t __rev1; \
36515 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36516 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36517 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
36518 __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
36519 __builtin_neon_vst1q_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 40); \
36520})
36521#endif
36522
36523#ifdef __LITTLE_ENDIAN__
36524#define vst1_f16_x4(__p0, __p1) __extension__ ({ \
36525 float16x4x4_t __s1 = __p1; \
36526 __builtin_neon_vst1_x4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 8); \
36527})
36528#else
36529#define vst1_f16_x4(__p0, __p1) __extension__ ({ \
36530 float16x4x4_t __s1 = __p1; \
36531 float16x4x4_t __rev1; \
36532 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
36533 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
36534 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
36535 __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
36536 __builtin_neon_vst1_x4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 8); \
36537})
36538#endif
36539
36540#ifdef __LITTLE_ENDIAN__
36541#define vst2q_f16(__p0, __p1) __extension__ ({ \
36542 float16x8x2_t __s1 = __p1; \
36543 __builtin_neon_vst2q_v(__p0, __s1.val[0], __s1.val[1], 40); \
36544})
36545#else
36546#define vst2q_f16(__p0, __p1) __extension__ ({ \
36547 float16x8x2_t __s1 = __p1; \
36548 float16x8x2_t __rev1; \
36549 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36550 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36551 __builtin_neon_vst2q_v(__p0, __rev1.val[0], __rev1.val[1], 40); \
36552})
36553#endif
36554
36555#ifdef __LITTLE_ENDIAN__
36556#define vst2_f16(__p0, __p1) __extension__ ({ \
36557 float16x4x2_t __s1 = __p1; \
36558 __builtin_neon_vst2_v(__p0, __s1.val[0], __s1.val[1], 8); \
36559})
36560#else
36561#define vst2_f16(__p0, __p1) __extension__ ({ \
36562 float16x4x2_t __s1 = __p1; \
36563 float16x4x2_t __rev1; \
36564 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
36565 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
36566 __builtin_neon_vst2_v(__p0, __rev1.val[0], __rev1.val[1], 8); \
36567})
36568#endif
36569
36570#ifdef __LITTLE_ENDIAN__
36571#define vst2q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36572 float16x8x2_t __s1 = __p1; \
36573 __builtin_neon_vst2q_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 40); \
36574})
36575#else
36576#define vst2q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36577 float16x8x2_t __s1 = __p1; \
36578 float16x8x2_t __rev1; \
36579 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36580 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36581 __builtin_neon_vst2q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 40); \
36582})
36583#endif
36584
36585#ifdef __LITTLE_ENDIAN__
36586#define vst2_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36587 float16x4x2_t __s1 = __p1; \
36588 __builtin_neon_vst2_lane_v(__p0, __s1.val[0], __s1.val[1], __p2, 8); \
36589})
36590#else
36591#define vst2_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36592 float16x4x2_t __s1 = __p1; \
36593 float16x4x2_t __rev1; \
36594 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
36595 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
36596 __builtin_neon_vst2_lane_v(__p0, __rev1.val[0], __rev1.val[1], __p2, 8); \
36597})
36598#endif
36599
36600#ifdef __LITTLE_ENDIAN__
36601#define vst3q_f16(__p0, __p1) __extension__ ({ \
36602 float16x8x3_t __s1 = __p1; \
36603 __builtin_neon_vst3q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 40); \
36604})
36605#else
36606#define vst3q_f16(__p0, __p1) __extension__ ({ \
36607 float16x8x3_t __s1 = __p1; \
36608 float16x8x3_t __rev1; \
36609 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36610 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36611 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
36612 __builtin_neon_vst3q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 40); \
36613})
36614#endif
36615
36616#ifdef __LITTLE_ENDIAN__
36617#define vst3_f16(__p0, __p1) __extension__ ({ \
36618 float16x4x3_t __s1 = __p1; \
36619 __builtin_neon_vst3_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], 8); \
36620})
36621#else
36622#define vst3_f16(__p0, __p1) __extension__ ({ \
36623 float16x4x3_t __s1 = __p1; \
36624 float16x4x3_t __rev1; \
36625 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
36626 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
36627 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
36628 __builtin_neon_vst3_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], 8); \
36629})
36630#endif
36631
36632#ifdef __LITTLE_ENDIAN__
36633#define vst3q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36634 float16x8x3_t __s1 = __p1; \
36635 __builtin_neon_vst3q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 40); \
36636})
36637#else
36638#define vst3q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36639 float16x8x3_t __s1 = __p1; \
36640 float16x8x3_t __rev1; \
36641 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36642 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36643 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
36644 __builtin_neon_vst3q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 40); \
36645})
36646#endif
36647
36648#ifdef __LITTLE_ENDIAN__
36649#define vst3_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36650 float16x4x3_t __s1 = __p1; \
36651 __builtin_neon_vst3_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __p2, 8); \
36652})
36653#else
36654#define vst3_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36655 float16x4x3_t __s1 = __p1; \
36656 float16x4x3_t __rev1; \
36657 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
36658 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
36659 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
36660 __builtin_neon_vst3_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __p2, 8); \
36661})
36662#endif
36663
36664#ifdef __LITTLE_ENDIAN__
36665#define vst4q_f16(__p0, __p1) __extension__ ({ \
36666 float16x8x4_t __s1 = __p1; \
36667 __builtin_neon_vst4q_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 40); \
36668})
36669#else
36670#define vst4q_f16(__p0, __p1) __extension__ ({ \
36671 float16x8x4_t __s1 = __p1; \
36672 float16x8x4_t __rev1; \
36673 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36674 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36675 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
36676 __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
36677 __builtin_neon_vst4q_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 40); \
36678})
36679#endif
36680
36681#ifdef __LITTLE_ENDIAN__
36682#define vst4_f16(__p0, __p1) __extension__ ({ \
36683 float16x4x4_t __s1 = __p1; \
36684 __builtin_neon_vst4_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], 8); \
36685})
36686#else
36687#define vst4_f16(__p0, __p1) __extension__ ({ \
36688 float16x4x4_t __s1 = __p1; \
36689 float16x4x4_t __rev1; \
36690 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
36691 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
36692 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
36693 __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
36694 __builtin_neon_vst4_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], 8); \
36695})
36696#endif
36697
36698#ifdef __LITTLE_ENDIAN__
36699#define vst4q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36700 float16x8x4_t __s1 = __p1; \
36701 __builtin_neon_vst4q_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 40); \
36702})
36703#else
36704#define vst4q_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36705 float16x8x4_t __s1 = __p1; \
36706 float16x8x4_t __rev1; \
36707 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 7, 6, 5, 4, 3, 2, 1, 0); \
36708 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 7, 6, 5, 4, 3, 2, 1, 0); \
36709 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 7, 6, 5, 4, 3, 2, 1, 0); \
36710 __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 7, 6, 5, 4, 3, 2, 1, 0); \
36711 __builtin_neon_vst4q_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 40); \
36712})
36713#endif
36714
36715#ifdef __LITTLE_ENDIAN__
36716#define vst4_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36717 float16x4x4_t __s1 = __p1; \
36718 __builtin_neon_vst4_lane_v(__p0, __s1.val[0], __s1.val[1], __s1.val[2], __s1.val[3], __p2, 8); \
36719})
36720#else
36721#define vst4_lane_f16(__p0, __p1, __p2) __extension__ ({ \
36722 float16x4x4_t __s1 = __p1; \
36723 float16x4x4_t __rev1; \
36724 __rev1.val[0] = __builtin_shufflevector(__s1.val[0], __s1.val[0], 3, 2, 1, 0); \
36725 __rev1.val[1] = __builtin_shufflevector(__s1.val[1], __s1.val[1], 3, 2, 1, 0); \
36726 __rev1.val[2] = __builtin_shufflevector(__s1.val[2], __s1.val[2], 3, 2, 1, 0); \
36727 __rev1.val[3] = __builtin_shufflevector(__s1.val[3], __s1.val[3], 3, 2, 1, 0); \
36728 __builtin_neon_vst4_lane_v(__p0, __rev1.val[0], __rev1.val[1], __rev1.val[2], __rev1.val[3], __p2, 8); \
36729})
36730#endif
36731
3673236732#endif
3673336733#if __ARM_ARCH >= 8
3673436734#ifdef __LITTLE_ENDIAN__
......@@ -44244,6 +44244,192 @@ __ai float32x2_t vfms_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2)
4424444244}
4424544245#endif
4424644246
44247#endif
44248#if defined(__ARM_FEATURE_FP16FML) && defined(__aarch64__)
44249#ifdef __LITTLE_ENDIAN__
44250__ai float32x4_t vfmlalq_high_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) {
44251 float32x4_t __ret;
44252 __ret = (float32x4_t) __builtin_neon_vfmlalq_high_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41);
44253 return __ret;
44254}
44255#else
44256__ai float32x4_t vfmlalq_high_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) {
44257 float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
44258 float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
44259 float16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
44260 float32x4_t __ret;
44261 __ret = (float32x4_t) __builtin_neon_vfmlalq_high_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 41);
44262 __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
44263 return __ret;
44264}
44265__ai float32x4_t __noswap_vfmlalq_high_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) {
44266 float32x4_t __ret;
44267 __ret = (float32x4_t) __builtin_neon_vfmlalq_high_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41);
44268 return __ret;
44269}
44270#endif
44271
44272#ifdef __LITTLE_ENDIAN__
44273__ai float32x2_t vfmlal_high_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) {
44274 float32x2_t __ret;
44275 __ret = (float32x2_t) __builtin_neon_vfmlal_high_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9);
44276 return __ret;
44277}
44278#else
44279__ai float32x2_t vfmlal_high_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) {
44280 float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
44281 float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
44282 float16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
44283 float32x2_t __ret;
44284 __ret = (float32x2_t) __builtin_neon_vfmlal_high_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 9);
44285 __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
44286 return __ret;
44287}
44288__ai float32x2_t __noswap_vfmlal_high_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) {
44289 float32x2_t __ret;
44290 __ret = (float32x2_t) __builtin_neon_vfmlal_high_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9);
44291 return __ret;
44292}
44293#endif
44294
44295#ifdef __LITTLE_ENDIAN__
44296__ai float32x4_t vfmlalq_low_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) {
44297 float32x4_t __ret;
44298 __ret = (float32x4_t) __builtin_neon_vfmlalq_low_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41);
44299 return __ret;
44300}
44301#else
44302__ai float32x4_t vfmlalq_low_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) {
44303 float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
44304 float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
44305 float16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
44306 float32x4_t __ret;
44307 __ret = (float32x4_t) __builtin_neon_vfmlalq_low_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 41);
44308 __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
44309 return __ret;
44310}
44311__ai float32x4_t __noswap_vfmlalq_low_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) {
44312 float32x4_t __ret;
44313 __ret = (float32x4_t) __builtin_neon_vfmlalq_low_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41);
44314 return __ret;
44315}
44316#endif
44317
44318#ifdef __LITTLE_ENDIAN__
44319__ai float32x2_t vfmlal_low_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) {
44320 float32x2_t __ret;
44321 __ret = (float32x2_t) __builtin_neon_vfmlal_low_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9);
44322 return __ret;
44323}
44324#else
44325__ai float32x2_t vfmlal_low_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) {
44326 float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
44327 float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
44328 float16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
44329 float32x2_t __ret;
44330 __ret = (float32x2_t) __builtin_neon_vfmlal_low_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 9);
44331 __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
44332 return __ret;
44333}
44334__ai float32x2_t __noswap_vfmlal_low_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) {
44335 float32x2_t __ret;
44336 __ret = (float32x2_t) __builtin_neon_vfmlal_low_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9);
44337 return __ret;
44338}
44339#endif
44340
44341#ifdef __LITTLE_ENDIAN__
44342__ai float32x4_t vfmlslq_high_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) {
44343 float32x4_t __ret;
44344 __ret = (float32x4_t) __builtin_neon_vfmlslq_high_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41);
44345 return __ret;
44346}
44347#else
44348__ai float32x4_t vfmlslq_high_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) {
44349 float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
44350 float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
44351 float16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
44352 float32x4_t __ret;
44353 __ret = (float32x4_t) __builtin_neon_vfmlslq_high_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 41);
44354 __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
44355 return __ret;
44356}
44357__ai float32x4_t __noswap_vfmlslq_high_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) {
44358 float32x4_t __ret;
44359 __ret = (float32x4_t) __builtin_neon_vfmlslq_high_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41);
44360 return __ret;
44361}
44362#endif
44363
44364#ifdef __LITTLE_ENDIAN__
44365__ai float32x2_t vfmlsl_high_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) {
44366 float32x2_t __ret;
44367 __ret = (float32x2_t) __builtin_neon_vfmlsl_high_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9);
44368 return __ret;
44369}
44370#else
44371__ai float32x2_t vfmlsl_high_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) {
44372 float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
44373 float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
44374 float16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
44375 float32x2_t __ret;
44376 __ret = (float32x2_t) __builtin_neon_vfmlsl_high_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 9);
44377 __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
44378 return __ret;
44379}
44380__ai float32x2_t __noswap_vfmlsl_high_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) {
44381 float32x2_t __ret;
44382 __ret = (float32x2_t) __builtin_neon_vfmlsl_high_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9);
44383 return __ret;
44384}
44385#endif
44386
44387#ifdef __LITTLE_ENDIAN__
44388__ai float32x4_t vfmlslq_low_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) {
44389 float32x4_t __ret;
44390 __ret = (float32x4_t) __builtin_neon_vfmlslq_low_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41);
44391 return __ret;
44392}
44393#else
44394__ai float32x4_t vfmlslq_low_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) {
44395 float32x4_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
44396 float16x8_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 7, 6, 5, 4, 3, 2, 1, 0);
44397 float16x8_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 7, 6, 5, 4, 3, 2, 1, 0);
44398 float32x4_t __ret;
44399 __ret = (float32x4_t) __builtin_neon_vfmlslq_low_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 41);
44400 __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
44401 return __ret;
44402}
44403__ai float32x4_t __noswap_vfmlslq_low_u32(float32x4_t __p0, float16x8_t __p1, float16x8_t __p2) {
44404 float32x4_t __ret;
44405 __ret = (float32x4_t) __builtin_neon_vfmlslq_low_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41);
44406 return __ret;
44407}
44408#endif
44409
44410#ifdef __LITTLE_ENDIAN__
44411__ai float32x2_t vfmlsl_low_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) {
44412 float32x2_t __ret;
44413 __ret = (float32x2_t) __builtin_neon_vfmlsl_low_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9);
44414 return __ret;
44415}
44416#else
44417__ai float32x2_t vfmlsl_low_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) {
44418 float32x2_t __rev0; __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
44419 float16x4_t __rev1; __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
44420 float16x4_t __rev2; __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
44421 float32x2_t __ret;
44422 __ret = (float32x2_t) __builtin_neon_vfmlsl_low_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 9);
44423 __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
44424 return __ret;
44425}
44426__ai float32x2_t __noswap_vfmlsl_low_u32(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) {
44427 float32x2_t __ret;
44428 __ret = (float32x2_t) __builtin_neon_vfmlsl_low_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9);
44429 return __ret;
44430}
44431#endif
44432
4424744433#endif
4424844434#if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC)
4424944435#ifdef __LITTLE_ENDIAN__
......@@ -71724,45 +71910,431 @@ int16x8_t __reint2_263 = __noswap_vsetq_lane_s16(*(int16_t *) &__reint_263, *(in
7172471910})
7172571911#endif
7172671912
71727#if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) && defined(__aarch64__)
71913#if defined(__ARM_FEATURE_FP16FML) && defined(__aarch64__)
7172871914#ifdef __LITTLE_ENDIAN__
71729#define vmulh_lane_f16(__p0_264, __p1_264, __p2_264) __extension__ ({ \
71730 float16_t __s0_264 = __p0_264; \
71731 float16x4_t __s1_264 = __p1_264; \
71732 float16_t __ret_264; \
71733 __ret_264 = __s0_264 * vget_lane_f16(__s1_264, __p2_264); \
71915#define vfmlalq_lane_high_u32(__p0_264, __p1_264, __p2_264, __p3_264) __extension__ ({ \
71916 float32x4_t __s0_264 = __p0_264; \
71917 float16x8_t __s1_264 = __p1_264; \
71918 float16x4_t __s2_264 = __p2_264; \
71919 float32x4_t __ret_264; \
71920 __ret_264 = vfmlalq_high_u32(__s0_264, __s1_264, (float16x8_t) {vget_lane_f16(__s2_264, __p3_264), vget_lane_f16(__s2_264, __p3_264), vget_lane_f16(__s2_264, __p3_264), vget_lane_f16(__s2_264, __p3_264), vget_lane_f16(__s2_264, __p3_264), vget_lane_f16(__s2_264, __p3_264), vget_lane_f16(__s2_264, __p3_264), vget_lane_f16(__s2_264, __p3_264)}); \
7173471921 __ret_264; \
7173571922})
7173671923#else
71737#define vmulh_lane_f16(__p0_265, __p1_265, __p2_265) __extension__ ({ \
71738 float16_t __s0_265 = __p0_265; \
71739 float16x4_t __s1_265 = __p1_265; \
71740 float16x4_t __rev1_265; __rev1_265 = __builtin_shufflevector(__s1_265, __s1_265, 3, 2, 1, 0); \
71741 float16_t __ret_265; \
71742 __ret_265 = __s0_265 * __noswap_vget_lane_f16(__rev1_265, __p2_265); \
71924#define vfmlalq_lane_high_u32(__p0_265, __p1_265, __p2_265, __p3_265) __extension__ ({ \
71925 float32x4_t __s0_265 = __p0_265; \
71926 float16x8_t __s1_265 = __p1_265; \
71927 float16x4_t __s2_265 = __p2_265; \
71928 float32x4_t __rev0_265; __rev0_265 = __builtin_shufflevector(__s0_265, __s0_265, 3, 2, 1, 0); \
71929 float16x8_t __rev1_265; __rev1_265 = __builtin_shufflevector(__s1_265, __s1_265, 7, 6, 5, 4, 3, 2, 1, 0); \
71930 float16x4_t __rev2_265; __rev2_265 = __builtin_shufflevector(__s2_265, __s2_265, 3, 2, 1, 0); \
71931 float32x4_t __ret_265; \
71932 __ret_265 = __noswap_vfmlalq_high_u32(__rev0_265, __rev1_265, (float16x8_t) {__noswap_vget_lane_f16(__rev2_265, __p3_265), __noswap_vget_lane_f16(__rev2_265, __p3_265), __noswap_vget_lane_f16(__rev2_265, __p3_265), __noswap_vget_lane_f16(__rev2_265, __p3_265), __noswap_vget_lane_f16(__rev2_265, __p3_265), __noswap_vget_lane_f16(__rev2_265, __p3_265), __noswap_vget_lane_f16(__rev2_265, __p3_265), __noswap_vget_lane_f16(__rev2_265, __p3_265)}); \
71933 __ret_265 = __builtin_shufflevector(__ret_265, __ret_265, 3, 2, 1, 0); \
7174371934 __ret_265; \
7174471935})
7174571936#endif
7174671937
7174771938#ifdef __LITTLE_ENDIAN__
71748#define vmulh_laneq_f16(__p0_266, __p1_266, __p2_266) __extension__ ({ \
71749 float16_t __s0_266 = __p0_266; \
71750 float16x8_t __s1_266 = __p1_266; \
71751 float16_t __ret_266; \
71752 __ret_266 = __s0_266 * vgetq_lane_f16(__s1_266, __p2_266); \
71939#define vfmlal_lane_high_u32(__p0_266, __p1_266, __p2_266, __p3_266) __extension__ ({ \
71940 float32x2_t __s0_266 = __p0_266; \
71941 float16x4_t __s1_266 = __p1_266; \
71942 float16x4_t __s2_266 = __p2_266; \
71943 float32x2_t __ret_266; \
71944 __ret_266 = vfmlal_high_u32(__s0_266, __s1_266, (float16x4_t) {vget_lane_f16(__s2_266, __p3_266), vget_lane_f16(__s2_266, __p3_266), vget_lane_f16(__s2_266, __p3_266), vget_lane_f16(__s2_266, __p3_266)}); \
7175371945 __ret_266; \
7175471946})
7175571947#else
71756#define vmulh_laneq_f16(__p0_267, __p1_267, __p2_267) __extension__ ({ \
71757 float16_t __s0_267 = __p0_267; \
71758 float16x8_t __s1_267 = __p1_267; \
71759 float16x8_t __rev1_267; __rev1_267 = __builtin_shufflevector(__s1_267, __s1_267, 7, 6, 5, 4, 3, 2, 1, 0); \
71760 float16_t __ret_267; \
71761 __ret_267 = __s0_267 * __noswap_vgetq_lane_f16(__rev1_267, __p2_267); \
71948#define vfmlal_lane_high_u32(__p0_267, __p1_267, __p2_267, __p3_267) __extension__ ({ \
71949 float32x2_t __s0_267 = __p0_267; \
71950 float16x4_t __s1_267 = __p1_267; \
71951 float16x4_t __s2_267 = __p2_267; \
71952 float32x2_t __rev0_267; __rev0_267 = __builtin_shufflevector(__s0_267, __s0_267, 1, 0); \
71953 float16x4_t __rev1_267; __rev1_267 = __builtin_shufflevector(__s1_267, __s1_267, 3, 2, 1, 0); \
71954 float16x4_t __rev2_267; __rev2_267 = __builtin_shufflevector(__s2_267, __s2_267, 3, 2, 1, 0); \
71955 float32x2_t __ret_267; \
71956 __ret_267 = __noswap_vfmlal_high_u32(__rev0_267, __rev1_267, (float16x4_t) {__noswap_vget_lane_f16(__rev2_267, __p3_267), __noswap_vget_lane_f16(__rev2_267, __p3_267), __noswap_vget_lane_f16(__rev2_267, __p3_267), __noswap_vget_lane_f16(__rev2_267, __p3_267)}); \
71957 __ret_267 = __builtin_shufflevector(__ret_267, __ret_267, 1, 0); \
7176271958 __ret_267; \
7176371959})
7176471960#endif
7176571961
71962#ifdef __LITTLE_ENDIAN__
71963#define vfmlalq_lane_low_u32(__p0_268, __p1_268, __p2_268, __p3_268) __extension__ ({ \
71964 float32x4_t __s0_268 = __p0_268; \
71965 float16x8_t __s1_268 = __p1_268; \
71966 float16x4_t __s2_268 = __p2_268; \
71967 float32x4_t __ret_268; \
71968 __ret_268 = vfmlalq_low_u32(__s0_268, __s1_268, (float16x8_t) {vget_lane_f16(__s2_268, __p3_268), vget_lane_f16(__s2_268, __p3_268), vget_lane_f16(__s2_268, __p3_268), vget_lane_f16(__s2_268, __p3_268), vget_lane_f16(__s2_268, __p3_268), vget_lane_f16(__s2_268, __p3_268), vget_lane_f16(__s2_268, __p3_268), vget_lane_f16(__s2_268, __p3_268)}); \
71969 __ret_268; \
71970})
71971#else
71972#define vfmlalq_lane_low_u32(__p0_269, __p1_269, __p2_269, __p3_269) __extension__ ({ \
71973 float32x4_t __s0_269 = __p0_269; \
71974 float16x8_t __s1_269 = __p1_269; \
71975 float16x4_t __s2_269 = __p2_269; \
71976 float32x4_t __rev0_269; __rev0_269 = __builtin_shufflevector(__s0_269, __s0_269, 3, 2, 1, 0); \
71977 float16x8_t __rev1_269; __rev1_269 = __builtin_shufflevector(__s1_269, __s1_269, 7, 6, 5, 4, 3, 2, 1, 0); \
71978 float16x4_t __rev2_269; __rev2_269 = __builtin_shufflevector(__s2_269, __s2_269, 3, 2, 1, 0); \
71979 float32x4_t __ret_269; \
71980 __ret_269 = __noswap_vfmlalq_low_u32(__rev0_269, __rev1_269, (float16x8_t) {__noswap_vget_lane_f16(__rev2_269, __p3_269), __noswap_vget_lane_f16(__rev2_269, __p3_269), __noswap_vget_lane_f16(__rev2_269, __p3_269), __noswap_vget_lane_f16(__rev2_269, __p3_269), __noswap_vget_lane_f16(__rev2_269, __p3_269), __noswap_vget_lane_f16(__rev2_269, __p3_269), __noswap_vget_lane_f16(__rev2_269, __p3_269), __noswap_vget_lane_f16(__rev2_269, __p3_269)}); \
71981 __ret_269 = __builtin_shufflevector(__ret_269, __ret_269, 3, 2, 1, 0); \
71982 __ret_269; \
71983})
71984#endif
71985
71986#ifdef __LITTLE_ENDIAN__
71987#define vfmlal_lane_low_u32(__p0_270, __p1_270, __p2_270, __p3_270) __extension__ ({ \
71988 float32x2_t __s0_270 = __p0_270; \
71989 float16x4_t __s1_270 = __p1_270; \
71990 float16x4_t __s2_270 = __p2_270; \
71991 float32x2_t __ret_270; \
71992 __ret_270 = vfmlal_low_u32(__s0_270, __s1_270, (float16x4_t) {vget_lane_f16(__s2_270, __p3_270), vget_lane_f16(__s2_270, __p3_270), vget_lane_f16(__s2_270, __p3_270), vget_lane_f16(__s2_270, __p3_270)}); \
71993 __ret_270; \
71994})
71995#else
71996#define vfmlal_lane_low_u32(__p0_271, __p1_271, __p2_271, __p3_271) __extension__ ({ \
71997 float32x2_t __s0_271 = __p0_271; \
71998 float16x4_t __s1_271 = __p1_271; \
71999 float16x4_t __s2_271 = __p2_271; \
72000 float32x2_t __rev0_271; __rev0_271 = __builtin_shufflevector(__s0_271, __s0_271, 1, 0); \
72001 float16x4_t __rev1_271; __rev1_271 = __builtin_shufflevector(__s1_271, __s1_271, 3, 2, 1, 0); \
72002 float16x4_t __rev2_271; __rev2_271 = __builtin_shufflevector(__s2_271, __s2_271, 3, 2, 1, 0); \
72003 float32x2_t __ret_271; \
72004 __ret_271 = __noswap_vfmlal_low_u32(__rev0_271, __rev1_271, (float16x4_t) {__noswap_vget_lane_f16(__rev2_271, __p3_271), __noswap_vget_lane_f16(__rev2_271, __p3_271), __noswap_vget_lane_f16(__rev2_271, __p3_271), __noswap_vget_lane_f16(__rev2_271, __p3_271)}); \
72005 __ret_271 = __builtin_shufflevector(__ret_271, __ret_271, 1, 0); \
72006 __ret_271; \
72007})
72008#endif
72009
72010#ifdef __LITTLE_ENDIAN__
72011#define vfmlalq_laneq_high_u32(__p0_272, __p1_272, __p2_272, __p3_272) __extension__ ({ \
72012 float32x4_t __s0_272 = __p0_272; \
72013 float16x8_t __s1_272 = __p1_272; \
72014 float16x8_t __s2_272 = __p2_272; \
72015 float32x4_t __ret_272; \
72016 __ret_272 = vfmlalq_high_u32(__s0_272, __s1_272, (float16x8_t) {vgetq_lane_f16(__s2_272, __p3_272), vgetq_lane_f16(__s2_272, __p3_272), vgetq_lane_f16(__s2_272, __p3_272), vgetq_lane_f16(__s2_272, __p3_272), vgetq_lane_f16(__s2_272, __p3_272), vgetq_lane_f16(__s2_272, __p3_272), vgetq_lane_f16(__s2_272, __p3_272), vgetq_lane_f16(__s2_272, __p3_272)}); \
72017 __ret_272; \
72018})
72019#else
72020#define vfmlalq_laneq_high_u32(__p0_273, __p1_273, __p2_273, __p3_273) __extension__ ({ \
72021 float32x4_t __s0_273 = __p0_273; \
72022 float16x8_t __s1_273 = __p1_273; \
72023 float16x8_t __s2_273 = __p2_273; \
72024 float32x4_t __rev0_273; __rev0_273 = __builtin_shufflevector(__s0_273, __s0_273, 3, 2, 1, 0); \
72025 float16x8_t __rev1_273; __rev1_273 = __builtin_shufflevector(__s1_273, __s1_273, 7, 6, 5, 4, 3, 2, 1, 0); \
72026 float16x8_t __rev2_273; __rev2_273 = __builtin_shufflevector(__s2_273, __s2_273, 7, 6, 5, 4, 3, 2, 1, 0); \
72027 float32x4_t __ret_273; \
72028 __ret_273 = __noswap_vfmlalq_high_u32(__rev0_273, __rev1_273, (float16x8_t) {__noswap_vgetq_lane_f16(__rev2_273, __p3_273), __noswap_vgetq_lane_f16(__rev2_273, __p3_273), __noswap_vgetq_lane_f16(__rev2_273, __p3_273), __noswap_vgetq_lane_f16(__rev2_273, __p3_273), __noswap_vgetq_lane_f16(__rev2_273, __p3_273), __noswap_vgetq_lane_f16(__rev2_273, __p3_273), __noswap_vgetq_lane_f16(__rev2_273, __p3_273), __noswap_vgetq_lane_f16(__rev2_273, __p3_273)}); \
72029 __ret_273 = __builtin_shufflevector(__ret_273, __ret_273, 3, 2, 1, 0); \
72030 __ret_273; \
72031})
72032#endif
72033
72034#ifdef __LITTLE_ENDIAN__
72035#define vfmlal_laneq_high_u32(__p0_274, __p1_274, __p2_274, __p3_274) __extension__ ({ \
72036 float32x2_t __s0_274 = __p0_274; \
72037 float16x4_t __s1_274 = __p1_274; \
72038 float16x8_t __s2_274 = __p2_274; \
72039 float32x2_t __ret_274; \
72040 __ret_274 = vfmlal_high_u32(__s0_274, __s1_274, (float16x4_t) {vgetq_lane_f16(__s2_274, __p3_274), vgetq_lane_f16(__s2_274, __p3_274), vgetq_lane_f16(__s2_274, __p3_274), vgetq_lane_f16(__s2_274, __p3_274)}); \
72041 __ret_274; \
72042})
72043#else
72044#define vfmlal_laneq_high_u32(__p0_275, __p1_275, __p2_275, __p3_275) __extension__ ({ \
72045 float32x2_t __s0_275 = __p0_275; \
72046 float16x4_t __s1_275 = __p1_275; \
72047 float16x8_t __s2_275 = __p2_275; \
72048 float32x2_t __rev0_275; __rev0_275 = __builtin_shufflevector(__s0_275, __s0_275, 1, 0); \
72049 float16x4_t __rev1_275; __rev1_275 = __builtin_shufflevector(__s1_275, __s1_275, 3, 2, 1, 0); \
72050 float16x8_t __rev2_275; __rev2_275 = __builtin_shufflevector(__s2_275, __s2_275, 7, 6, 5, 4, 3, 2, 1, 0); \
72051 float32x2_t __ret_275; \
72052 __ret_275 = __noswap_vfmlal_high_u32(__rev0_275, __rev1_275, (float16x4_t) {__noswap_vgetq_lane_f16(__rev2_275, __p3_275), __noswap_vgetq_lane_f16(__rev2_275, __p3_275), __noswap_vgetq_lane_f16(__rev2_275, __p3_275), __noswap_vgetq_lane_f16(__rev2_275, __p3_275)}); \
72053 __ret_275 = __builtin_shufflevector(__ret_275, __ret_275, 1, 0); \
72054 __ret_275; \
72055})
72056#endif
72057
72058#ifdef __LITTLE_ENDIAN__
72059#define vfmlalq_laneq_low_u32(__p0_276, __p1_276, __p2_276, __p3_276) __extension__ ({ \
72060 float32x4_t __s0_276 = __p0_276; \
72061 float16x8_t __s1_276 = __p1_276; \
72062 float16x8_t __s2_276 = __p2_276; \
72063 float32x4_t __ret_276; \
72064 __ret_276 = vfmlalq_low_u32(__s0_276, __s1_276, (float16x8_t) {vgetq_lane_f16(__s2_276, __p3_276), vgetq_lane_f16(__s2_276, __p3_276), vgetq_lane_f16(__s2_276, __p3_276), vgetq_lane_f16(__s2_276, __p3_276), vgetq_lane_f16(__s2_276, __p3_276), vgetq_lane_f16(__s2_276, __p3_276), vgetq_lane_f16(__s2_276, __p3_276), vgetq_lane_f16(__s2_276, __p3_276)}); \
72065 __ret_276; \
72066})
72067#else
72068#define vfmlalq_laneq_low_u32(__p0_277, __p1_277, __p2_277, __p3_277) __extension__ ({ \
72069 float32x4_t __s0_277 = __p0_277; \
72070 float16x8_t __s1_277 = __p1_277; \
72071 float16x8_t __s2_277 = __p2_277; \
72072 float32x4_t __rev0_277; __rev0_277 = __builtin_shufflevector(__s0_277, __s0_277, 3, 2, 1, 0); \
72073 float16x8_t __rev1_277; __rev1_277 = __builtin_shufflevector(__s1_277, __s1_277, 7, 6, 5, 4, 3, 2, 1, 0); \
72074 float16x8_t __rev2_277; __rev2_277 = __builtin_shufflevector(__s2_277, __s2_277, 7, 6, 5, 4, 3, 2, 1, 0); \
72075 float32x4_t __ret_277; \
72076 __ret_277 = __noswap_vfmlalq_low_u32(__rev0_277, __rev1_277, (float16x8_t) {__noswap_vgetq_lane_f16(__rev2_277, __p3_277), __noswap_vgetq_lane_f16(__rev2_277, __p3_277), __noswap_vgetq_lane_f16(__rev2_277, __p3_277), __noswap_vgetq_lane_f16(__rev2_277, __p3_277), __noswap_vgetq_lane_f16(__rev2_277, __p3_277), __noswap_vgetq_lane_f16(__rev2_277, __p3_277), __noswap_vgetq_lane_f16(__rev2_277, __p3_277), __noswap_vgetq_lane_f16(__rev2_277, __p3_277)}); \
72077 __ret_277 = __builtin_shufflevector(__ret_277, __ret_277, 3, 2, 1, 0); \
72078 __ret_277; \
72079})
72080#endif
72081
72082#ifdef __LITTLE_ENDIAN__
72083#define vfmlal_laneq_low_u32(__p0_278, __p1_278, __p2_278, __p3_278) __extension__ ({ \
72084 float32x2_t __s0_278 = __p0_278; \
72085 float16x4_t __s1_278 = __p1_278; \
72086 float16x8_t __s2_278 = __p2_278; \
72087 float32x2_t __ret_278; \
72088 __ret_278 = vfmlal_low_u32(__s0_278, __s1_278, (float16x4_t) {vgetq_lane_f16(__s2_278, __p3_278), vgetq_lane_f16(__s2_278, __p3_278), vgetq_lane_f16(__s2_278, __p3_278), vgetq_lane_f16(__s2_278, __p3_278)}); \
72089 __ret_278; \
72090})
72091#else
72092#define vfmlal_laneq_low_u32(__p0_279, __p1_279, __p2_279, __p3_279) __extension__ ({ \
72093 float32x2_t __s0_279 = __p0_279; \
72094 float16x4_t __s1_279 = __p1_279; \
72095 float16x8_t __s2_279 = __p2_279; \
72096 float32x2_t __rev0_279; __rev0_279 = __builtin_shufflevector(__s0_279, __s0_279, 1, 0); \
72097 float16x4_t __rev1_279; __rev1_279 = __builtin_shufflevector(__s1_279, __s1_279, 3, 2, 1, 0); \
72098 float16x8_t __rev2_279; __rev2_279 = __builtin_shufflevector(__s2_279, __s2_279, 7, 6, 5, 4, 3, 2, 1, 0); \
72099 float32x2_t __ret_279; \
72100 __ret_279 = __noswap_vfmlal_low_u32(__rev0_279, __rev1_279, (float16x4_t) {__noswap_vgetq_lane_f16(__rev2_279, __p3_279), __noswap_vgetq_lane_f16(__rev2_279, __p3_279), __noswap_vgetq_lane_f16(__rev2_279, __p3_279), __noswap_vgetq_lane_f16(__rev2_279, __p3_279)}); \
72101 __ret_279 = __builtin_shufflevector(__ret_279, __ret_279, 1, 0); \
72102 __ret_279; \
72103})
72104#endif
72105
72106#ifdef __LITTLE_ENDIAN__
72107#define vfmlslq_lane_high_u32(__p0_280, __p1_280, __p2_280, __p3_280) __extension__ ({ \
72108 float32x4_t __s0_280 = __p0_280; \
72109 float16x8_t __s1_280 = __p1_280; \
72110 float16x4_t __s2_280 = __p2_280; \
72111 float32x4_t __ret_280; \
72112 __ret_280 = vfmlslq_high_u32(__s0_280, __s1_280, (float16x8_t) {vget_lane_f16(__s2_280, __p3_280), vget_lane_f16(__s2_280, __p3_280), vget_lane_f16(__s2_280, __p3_280), vget_lane_f16(__s2_280, __p3_280), vget_lane_f16(__s2_280, __p3_280), vget_lane_f16(__s2_280, __p3_280), vget_lane_f16(__s2_280, __p3_280), vget_lane_f16(__s2_280, __p3_280)}); \
72113 __ret_280; \
72114})
72115#else
72116#define vfmlslq_lane_high_u32(__p0_281, __p1_281, __p2_281, __p3_281) __extension__ ({ \
72117 float32x4_t __s0_281 = __p0_281; \
72118 float16x8_t __s1_281 = __p1_281; \
72119 float16x4_t __s2_281 = __p2_281; \
72120 float32x4_t __rev0_281; __rev0_281 = __builtin_shufflevector(__s0_281, __s0_281, 3, 2, 1, 0); \
72121 float16x8_t __rev1_281; __rev1_281 = __builtin_shufflevector(__s1_281, __s1_281, 7, 6, 5, 4, 3, 2, 1, 0); \
72122 float16x4_t __rev2_281; __rev2_281 = __builtin_shufflevector(__s2_281, __s2_281, 3, 2, 1, 0); \
72123 float32x4_t __ret_281; \
72124 __ret_281 = __noswap_vfmlslq_high_u32(__rev0_281, __rev1_281, (float16x8_t) {__noswap_vget_lane_f16(__rev2_281, __p3_281), __noswap_vget_lane_f16(__rev2_281, __p3_281), __noswap_vget_lane_f16(__rev2_281, __p3_281), __noswap_vget_lane_f16(__rev2_281, __p3_281), __noswap_vget_lane_f16(__rev2_281, __p3_281), __noswap_vget_lane_f16(__rev2_281, __p3_281), __noswap_vget_lane_f16(__rev2_281, __p3_281), __noswap_vget_lane_f16(__rev2_281, __p3_281)}); \
72125 __ret_281 = __builtin_shufflevector(__ret_281, __ret_281, 3, 2, 1, 0); \
72126 __ret_281; \
72127})
72128#endif
72129
72130#ifdef __LITTLE_ENDIAN__
72131#define vfmlsl_lane_high_u32(__p0_282, __p1_282, __p2_282, __p3_282) __extension__ ({ \
72132 float32x2_t __s0_282 = __p0_282; \
72133 float16x4_t __s1_282 = __p1_282; \
72134 float16x4_t __s2_282 = __p2_282; \
72135 float32x2_t __ret_282; \
72136 __ret_282 = vfmlsl_high_u32(__s0_282, __s1_282, (float16x4_t) {vget_lane_f16(__s2_282, __p3_282), vget_lane_f16(__s2_282, __p3_282), vget_lane_f16(__s2_282, __p3_282), vget_lane_f16(__s2_282, __p3_282)}); \
72137 __ret_282; \
72138})
72139#else
72140#define vfmlsl_lane_high_u32(__p0_283, __p1_283, __p2_283, __p3_283) __extension__ ({ \
72141 float32x2_t __s0_283 = __p0_283; \
72142 float16x4_t __s1_283 = __p1_283; \
72143 float16x4_t __s2_283 = __p2_283; \
72144 float32x2_t __rev0_283; __rev0_283 = __builtin_shufflevector(__s0_283, __s0_283, 1, 0); \
72145 float16x4_t __rev1_283; __rev1_283 = __builtin_shufflevector(__s1_283, __s1_283, 3, 2, 1, 0); \
72146 float16x4_t __rev2_283; __rev2_283 = __builtin_shufflevector(__s2_283, __s2_283, 3, 2, 1, 0); \
72147 float32x2_t __ret_283; \
72148 __ret_283 = __noswap_vfmlsl_high_u32(__rev0_283, __rev1_283, (float16x4_t) {__noswap_vget_lane_f16(__rev2_283, __p3_283), __noswap_vget_lane_f16(__rev2_283, __p3_283), __noswap_vget_lane_f16(__rev2_283, __p3_283), __noswap_vget_lane_f16(__rev2_283, __p3_283)}); \
72149 __ret_283 = __builtin_shufflevector(__ret_283, __ret_283, 1, 0); \
72150 __ret_283; \
72151})
72152#endif
72153
72154#ifdef __LITTLE_ENDIAN__
72155#define vfmlslq_lane_low_u32(__p0_284, __p1_284, __p2_284, __p3_284) __extension__ ({ \
72156 float32x4_t __s0_284 = __p0_284; \
72157 float16x8_t __s1_284 = __p1_284; \
72158 float16x4_t __s2_284 = __p2_284; \
72159 float32x4_t __ret_284; \
72160 __ret_284 = vfmlslq_low_u32(__s0_284, __s1_284, (float16x8_t) {vget_lane_f16(__s2_284, __p3_284), vget_lane_f16(__s2_284, __p3_284), vget_lane_f16(__s2_284, __p3_284), vget_lane_f16(__s2_284, __p3_284), vget_lane_f16(__s2_284, __p3_284), vget_lane_f16(__s2_284, __p3_284), vget_lane_f16(__s2_284, __p3_284), vget_lane_f16(__s2_284, __p3_284)}); \
72161 __ret_284; \
72162})
72163#else
72164#define vfmlslq_lane_low_u32(__p0_285, __p1_285, __p2_285, __p3_285) __extension__ ({ \
72165 float32x4_t __s0_285 = __p0_285; \
72166 float16x8_t __s1_285 = __p1_285; \
72167 float16x4_t __s2_285 = __p2_285; \
72168 float32x4_t __rev0_285; __rev0_285 = __builtin_shufflevector(__s0_285, __s0_285, 3, 2, 1, 0); \
72169 float16x8_t __rev1_285; __rev1_285 = __builtin_shufflevector(__s1_285, __s1_285, 7, 6, 5, 4, 3, 2, 1, 0); \
72170 float16x4_t __rev2_285; __rev2_285 = __builtin_shufflevector(__s2_285, __s2_285, 3, 2, 1, 0); \
72171 float32x4_t __ret_285; \
72172 __ret_285 = __noswap_vfmlslq_low_u32(__rev0_285, __rev1_285, (float16x8_t) {__noswap_vget_lane_f16(__rev2_285, __p3_285), __noswap_vget_lane_f16(__rev2_285, __p3_285), __noswap_vget_lane_f16(__rev2_285, __p3_285), __noswap_vget_lane_f16(__rev2_285, __p3_285), __noswap_vget_lane_f16(__rev2_285, __p3_285), __noswap_vget_lane_f16(__rev2_285, __p3_285), __noswap_vget_lane_f16(__rev2_285, __p3_285), __noswap_vget_lane_f16(__rev2_285, __p3_285)}); \
72173 __ret_285 = __builtin_shufflevector(__ret_285, __ret_285, 3, 2, 1, 0); \
72174 __ret_285; \
72175})
72176#endif
72177
72178#ifdef __LITTLE_ENDIAN__
72179#define vfmlsl_lane_low_u32(__p0_286, __p1_286, __p2_286, __p3_286) __extension__ ({ \
72180 float32x2_t __s0_286 = __p0_286; \
72181 float16x4_t __s1_286 = __p1_286; \
72182 float16x4_t __s2_286 = __p2_286; \
72183 float32x2_t __ret_286; \
72184 __ret_286 = vfmlsl_low_u32(__s0_286, __s1_286, (float16x4_t) {vget_lane_f16(__s2_286, __p3_286), vget_lane_f16(__s2_286, __p3_286), vget_lane_f16(__s2_286, __p3_286), vget_lane_f16(__s2_286, __p3_286)}); \
72185 __ret_286; \
72186})
72187#else
72188#define vfmlsl_lane_low_u32(__p0_287, __p1_287, __p2_287, __p3_287) __extension__ ({ \
72189 float32x2_t __s0_287 = __p0_287; \
72190 float16x4_t __s1_287 = __p1_287; \
72191 float16x4_t __s2_287 = __p2_287; \
72192 float32x2_t __rev0_287; __rev0_287 = __builtin_shufflevector(__s0_287, __s0_287, 1, 0); \
72193 float16x4_t __rev1_287; __rev1_287 = __builtin_shufflevector(__s1_287, __s1_287, 3, 2, 1, 0); \
72194 float16x4_t __rev2_287; __rev2_287 = __builtin_shufflevector(__s2_287, __s2_287, 3, 2, 1, 0); \
72195 float32x2_t __ret_287; \
72196 __ret_287 = __noswap_vfmlsl_low_u32(__rev0_287, __rev1_287, (float16x4_t) {__noswap_vget_lane_f16(__rev2_287, __p3_287), __noswap_vget_lane_f16(__rev2_287, __p3_287), __noswap_vget_lane_f16(__rev2_287, __p3_287), __noswap_vget_lane_f16(__rev2_287, __p3_287)}); \
72197 __ret_287 = __builtin_shufflevector(__ret_287, __ret_287, 1, 0); \
72198 __ret_287; \
72199})
72200#endif
72201
72202#ifdef __LITTLE_ENDIAN__
72203#define vfmlslq_laneq_high_u32(__p0_288, __p1_288, __p2_288, __p3_288) __extension__ ({ \
72204 float32x4_t __s0_288 = __p0_288; \
72205 float16x8_t __s1_288 = __p1_288; \
72206 float16x8_t __s2_288 = __p2_288; \
72207 float32x4_t __ret_288; \
72208 __ret_288 = vfmlslq_high_u32(__s0_288, __s1_288, (float16x8_t) {vgetq_lane_f16(__s2_288, __p3_288), vgetq_lane_f16(__s2_288, __p3_288), vgetq_lane_f16(__s2_288, __p3_288), vgetq_lane_f16(__s2_288, __p3_288), vgetq_lane_f16(__s2_288, __p3_288), vgetq_lane_f16(__s2_288, __p3_288), vgetq_lane_f16(__s2_288, __p3_288), vgetq_lane_f16(__s2_288, __p3_288)}); \
72209 __ret_288; \
72210})
72211#else
72212#define vfmlslq_laneq_high_u32(__p0_289, __p1_289, __p2_289, __p3_289) __extension__ ({ \
72213 float32x4_t __s0_289 = __p0_289; \
72214 float16x8_t __s1_289 = __p1_289; \
72215 float16x8_t __s2_289 = __p2_289; \
72216 float32x4_t __rev0_289; __rev0_289 = __builtin_shufflevector(__s0_289, __s0_289, 3, 2, 1, 0); \
72217 float16x8_t __rev1_289; __rev1_289 = __builtin_shufflevector(__s1_289, __s1_289, 7, 6, 5, 4, 3, 2, 1, 0); \
72218 float16x8_t __rev2_289; __rev2_289 = __builtin_shufflevector(__s2_289, __s2_289, 7, 6, 5, 4, 3, 2, 1, 0); \
72219 float32x4_t __ret_289; \
72220 __ret_289 = __noswap_vfmlslq_high_u32(__rev0_289, __rev1_289, (float16x8_t) {__noswap_vgetq_lane_f16(__rev2_289, __p3_289), __noswap_vgetq_lane_f16(__rev2_289, __p3_289), __noswap_vgetq_lane_f16(__rev2_289, __p3_289), __noswap_vgetq_lane_f16(__rev2_289, __p3_289), __noswap_vgetq_lane_f16(__rev2_289, __p3_289), __noswap_vgetq_lane_f16(__rev2_289, __p3_289), __noswap_vgetq_lane_f16(__rev2_289, __p3_289), __noswap_vgetq_lane_f16(__rev2_289, __p3_289)}); \
72221 __ret_289 = __builtin_shufflevector(__ret_289, __ret_289, 3, 2, 1, 0); \
72222 __ret_289; \
72223})
72224#endif
72225
72226#ifdef __LITTLE_ENDIAN__
72227#define vfmlsl_laneq_high_u32(__p0_290, __p1_290, __p2_290, __p3_290) __extension__ ({ \
72228 float32x2_t __s0_290 = __p0_290; \
72229 float16x4_t __s1_290 = __p1_290; \
72230 float16x8_t __s2_290 = __p2_290; \
72231 float32x2_t __ret_290; \
72232 __ret_290 = vfmlsl_high_u32(__s0_290, __s1_290, (float16x4_t) {vgetq_lane_f16(__s2_290, __p3_290), vgetq_lane_f16(__s2_290, __p3_290), vgetq_lane_f16(__s2_290, __p3_290), vgetq_lane_f16(__s2_290, __p3_290)}); \
72233 __ret_290; \
72234})
72235#else
72236#define vfmlsl_laneq_high_u32(__p0_291, __p1_291, __p2_291, __p3_291) __extension__ ({ \
72237 float32x2_t __s0_291 = __p0_291; \
72238 float16x4_t __s1_291 = __p1_291; \
72239 float16x8_t __s2_291 = __p2_291; \
72240 float32x2_t __rev0_291; __rev0_291 = __builtin_shufflevector(__s0_291, __s0_291, 1, 0); \
72241 float16x4_t __rev1_291; __rev1_291 = __builtin_shufflevector(__s1_291, __s1_291, 3, 2, 1, 0); \
72242 float16x8_t __rev2_291; __rev2_291 = __builtin_shufflevector(__s2_291, __s2_291, 7, 6, 5, 4, 3, 2, 1, 0); \
72243 float32x2_t __ret_291; \
72244 __ret_291 = __noswap_vfmlsl_high_u32(__rev0_291, __rev1_291, (float16x4_t) {__noswap_vgetq_lane_f16(__rev2_291, __p3_291), __noswap_vgetq_lane_f16(__rev2_291, __p3_291), __noswap_vgetq_lane_f16(__rev2_291, __p3_291), __noswap_vgetq_lane_f16(__rev2_291, __p3_291)}); \
72245 __ret_291 = __builtin_shufflevector(__ret_291, __ret_291, 1, 0); \
72246 __ret_291; \
72247})
72248#endif
72249
72250#ifdef __LITTLE_ENDIAN__
72251#define vfmlslq_laneq_low_u32(__p0_292, __p1_292, __p2_292, __p3_292) __extension__ ({ \
72252 float32x4_t __s0_292 = __p0_292; \
72253 float16x8_t __s1_292 = __p1_292; \
72254 float16x8_t __s2_292 = __p2_292; \
72255 float32x4_t __ret_292; \
72256 __ret_292 = vfmlslq_low_u32(__s0_292, __s1_292, (float16x8_t) {vgetq_lane_f16(__s2_292, __p3_292), vgetq_lane_f16(__s2_292, __p3_292), vgetq_lane_f16(__s2_292, __p3_292), vgetq_lane_f16(__s2_292, __p3_292), vgetq_lane_f16(__s2_292, __p3_292), vgetq_lane_f16(__s2_292, __p3_292), vgetq_lane_f16(__s2_292, __p3_292), vgetq_lane_f16(__s2_292, __p3_292)}); \
72257 __ret_292; \
72258})
72259#else
72260#define vfmlslq_laneq_low_u32(__p0_293, __p1_293, __p2_293, __p3_293) __extension__ ({ \
72261 float32x4_t __s0_293 = __p0_293; \
72262 float16x8_t __s1_293 = __p1_293; \
72263 float16x8_t __s2_293 = __p2_293; \
72264 float32x4_t __rev0_293; __rev0_293 = __builtin_shufflevector(__s0_293, __s0_293, 3, 2, 1, 0); \
72265 float16x8_t __rev1_293; __rev1_293 = __builtin_shufflevector(__s1_293, __s1_293, 7, 6, 5, 4, 3, 2, 1, 0); \
72266 float16x8_t __rev2_293; __rev2_293 = __builtin_shufflevector(__s2_293, __s2_293, 7, 6, 5, 4, 3, 2, 1, 0); \
72267 float32x4_t __ret_293; \
72268 __ret_293 = __noswap_vfmlslq_low_u32(__rev0_293, __rev1_293, (float16x8_t) {__noswap_vgetq_lane_f16(__rev2_293, __p3_293), __noswap_vgetq_lane_f16(__rev2_293, __p3_293), __noswap_vgetq_lane_f16(__rev2_293, __p3_293), __noswap_vgetq_lane_f16(__rev2_293, __p3_293), __noswap_vgetq_lane_f16(__rev2_293, __p3_293), __noswap_vgetq_lane_f16(__rev2_293, __p3_293), __noswap_vgetq_lane_f16(__rev2_293, __p3_293), __noswap_vgetq_lane_f16(__rev2_293, __p3_293)}); \
72269 __ret_293 = __builtin_shufflevector(__ret_293, __ret_293, 3, 2, 1, 0); \
72270 __ret_293; \
72271})
72272#endif
72273
72274#ifdef __LITTLE_ENDIAN__
72275#define vfmlsl_laneq_low_u32(__p0_294, __p1_294, __p2_294, __p3_294) __extension__ ({ \
72276 float32x2_t __s0_294 = __p0_294; \
72277 float16x4_t __s1_294 = __p1_294; \
72278 float16x8_t __s2_294 = __p2_294; \
72279 float32x2_t __ret_294; \
72280 __ret_294 = vfmlsl_low_u32(__s0_294, __s1_294, (float16x4_t) {vgetq_lane_f16(__s2_294, __p3_294), vgetq_lane_f16(__s2_294, __p3_294), vgetq_lane_f16(__s2_294, __p3_294), vgetq_lane_f16(__s2_294, __p3_294)}); \
72281 __ret_294; \
72282})
72283#else
72284#define vfmlsl_laneq_low_u32(__p0_295, __p1_295, __p2_295, __p3_295) __extension__ ({ \
72285 float32x2_t __s0_295 = __p0_295; \
72286 float16x4_t __s1_295 = __p1_295; \
72287 float16x8_t __s2_295 = __p2_295; \
72288 float32x2_t __rev0_295; __rev0_295 = __builtin_shufflevector(__s0_295, __s0_295, 1, 0); \
72289 float16x4_t __rev1_295; __rev1_295 = __builtin_shufflevector(__s1_295, __s1_295, 3, 2, 1, 0); \
72290 float16x8_t __rev2_295; __rev2_295 = __builtin_shufflevector(__s2_295, __s2_295, 7, 6, 5, 4, 3, 2, 1, 0); \
72291 float32x2_t __ret_295; \
72292 __ret_295 = __noswap_vfmlsl_low_u32(__rev0_295, __rev1_295, (float16x4_t) {__noswap_vgetq_lane_f16(__rev2_295, __p3_295), __noswap_vgetq_lane_f16(__rev2_295, __p3_295), __noswap_vgetq_lane_f16(__rev2_295, __p3_295), __noswap_vgetq_lane_f16(__rev2_295, __p3_295)}); \
72293 __ret_295 = __builtin_shufflevector(__ret_295, __ret_295, 1, 0); \
72294 __ret_295; \
72295})
72296#endif
72297
72298#endif
72299#if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) && defined(__aarch64__)
72300#ifdef __LITTLE_ENDIAN__
72301#define vmulh_lane_f16(__p0_296, __p1_296, __p2_296) __extension__ ({ \
72302 float16_t __s0_296 = __p0_296; \
72303 float16x4_t __s1_296 = __p1_296; \
72304 float16_t __ret_296; \
72305 __ret_296 = __s0_296 * vget_lane_f16(__s1_296, __p2_296); \
72306 __ret_296; \
72307})
72308#else
72309#define vmulh_lane_f16(__p0_297, __p1_297, __p2_297) __extension__ ({ \
72310 float16_t __s0_297 = __p0_297; \
72311 float16x4_t __s1_297 = __p1_297; \
72312 float16x4_t __rev1_297; __rev1_297 = __builtin_shufflevector(__s1_297, __s1_297, 3, 2, 1, 0); \
72313 float16_t __ret_297; \
72314 __ret_297 = __s0_297 * __noswap_vget_lane_f16(__rev1_297, __p2_297); \
72315 __ret_297; \
72316})
72317#endif
72318
72319#ifdef __LITTLE_ENDIAN__
72320#define vmulh_laneq_f16(__p0_298, __p1_298, __p2_298) __extension__ ({ \
72321 float16_t __s0_298 = __p0_298; \
72322 float16x8_t __s1_298 = __p1_298; \
72323 float16_t __ret_298; \
72324 __ret_298 = __s0_298 * vgetq_lane_f16(__s1_298, __p2_298); \
72325 __ret_298; \
72326})
72327#else
72328#define vmulh_laneq_f16(__p0_299, __p1_299, __p2_299) __extension__ ({ \
72329 float16_t __s0_299 = __p0_299; \
72330 float16x8_t __s1_299 = __p1_299; \
72331 float16x8_t __rev1_299; __rev1_299 = __builtin_shufflevector(__s1_299, __s1_299, 7, 6, 5, 4, 3, 2, 1, 0); \
72332 float16_t __ret_299; \
72333 __ret_299 = __s0_299 * __noswap_vgetq_lane_f16(__rev1_299, __p2_299); \
72334 __ret_299; \
72335})
72336#endif
72337
7176672338#endif
7176772339#if defined(__ARM_FEATURE_QRDMX) && defined(__aarch64__)
7176872340#ifdef __LITTLE_ENDIAN__
......@@ -71794,86 +72366,86 @@ __ai int16_t vqrdmlahh_s16(int16_t __p0, int16_t __p1, int16_t __p2) {
7179472366#endif
7179572367
7179672368#ifdef __LITTLE_ENDIAN__
71797#define vqrdmlahs_lane_s32(__p0_268, __p1_268, __p2_268, __p3_268) __extension__ ({ \
71798 int32_t __s0_268 = __p0_268; \
71799 int32_t __s1_268 = __p1_268; \
71800 int32x2_t __s2_268 = __p2_268; \
71801 int32_t __ret_268; \
71802 __ret_268 = vqadds_s32(__s0_268, vqrdmulhs_s32(__s1_268, vget_lane_s32(__s2_268, __p3_268))); \
71803 __ret_268; \
72369#define vqrdmlahs_lane_s32(__p0_300, __p1_300, __p2_300, __p3_300) __extension__ ({ \
72370 int32_t __s0_300 = __p0_300; \
72371 int32_t __s1_300 = __p1_300; \
72372 int32x2_t __s2_300 = __p2_300; \
72373 int32_t __ret_300; \
72374 __ret_300 = vqadds_s32(__s0_300, vqrdmulhs_s32(__s1_300, vget_lane_s32(__s2_300, __p3_300))); \
72375 __ret_300; \
7180472376})
7180572377#else
71806#define vqrdmlahs_lane_s32(__p0_269, __p1_269, __p2_269, __p3_269) __extension__ ({ \
71807 int32_t __s0_269 = __p0_269; \
71808 int32_t __s1_269 = __p1_269; \
71809 int32x2_t __s2_269 = __p2_269; \
71810 int32x2_t __rev2_269; __rev2_269 = __builtin_shufflevector(__s2_269, __s2_269, 1, 0); \
71811 int32_t __ret_269; \
71812 __ret_269 = __noswap_vqadds_s32(__s0_269, __noswap_vqrdmulhs_s32(__s1_269, __noswap_vget_lane_s32(__rev2_269, __p3_269))); \
71813 __ret_269; \
72378#define vqrdmlahs_lane_s32(__p0_301, __p1_301, __p2_301, __p3_301) __extension__ ({ \
72379 int32_t __s0_301 = __p0_301; \
72380 int32_t __s1_301 = __p1_301; \
72381 int32x2_t __s2_301 = __p2_301; \
72382 int32x2_t __rev2_301; __rev2_301 = __builtin_shufflevector(__s2_301, __s2_301, 1, 0); \
72383 int32_t __ret_301; \
72384 __ret_301 = __noswap_vqadds_s32(__s0_301, __noswap_vqrdmulhs_s32(__s1_301, __noswap_vget_lane_s32(__rev2_301, __p3_301))); \
72385 __ret_301; \
7181472386})
7181572387#endif
7181672388
7181772389#ifdef __LITTLE_ENDIAN__
71818#define vqrdmlahh_lane_s16(__p0_270, __p1_270, __p2_270, __p3_270) __extension__ ({ \
71819 int16_t __s0_270 = __p0_270; \
71820 int16_t __s1_270 = __p1_270; \
71821 int16x4_t __s2_270 = __p2_270; \
71822 int16_t __ret_270; \
71823 __ret_270 = vqaddh_s16(__s0_270, vqrdmulhh_s16(__s1_270, vget_lane_s16(__s2_270, __p3_270))); \
71824 __ret_270; \
72390#define vqrdmlahh_lane_s16(__p0_302, __p1_302, __p2_302, __p3_302) __extension__ ({ \
72391 int16_t __s0_302 = __p0_302; \
72392 int16_t __s1_302 = __p1_302; \
72393 int16x4_t __s2_302 = __p2_302; \
72394 int16_t __ret_302; \
72395 __ret_302 = vqaddh_s16(__s0_302, vqrdmulhh_s16(__s1_302, vget_lane_s16(__s2_302, __p3_302))); \
72396 __ret_302; \
7182572397})
7182672398#else
71827#define vqrdmlahh_lane_s16(__p0_271, __p1_271, __p2_271, __p3_271) __extension__ ({ \
71828 int16_t __s0_271 = __p0_271; \
71829 int16_t __s1_271 = __p1_271; \
71830 int16x4_t __s2_271 = __p2_271; \
71831 int16x4_t __rev2_271; __rev2_271 = __builtin_shufflevector(__s2_271, __s2_271, 3, 2, 1, 0); \
71832 int16_t __ret_271; \
71833 __ret_271 = __noswap_vqaddh_s16(__s0_271, __noswap_vqrdmulhh_s16(__s1_271, __noswap_vget_lane_s16(__rev2_271, __p3_271))); \
71834 __ret_271; \
72399#define vqrdmlahh_lane_s16(__p0_303, __p1_303, __p2_303, __p3_303) __extension__ ({ \
72400 int16_t __s0_303 = __p0_303; \
72401 int16_t __s1_303 = __p1_303; \
72402 int16x4_t __s2_303 = __p2_303; \
72403 int16x4_t __rev2_303; __rev2_303 = __builtin_shufflevector(__s2_303, __s2_303, 3, 2, 1, 0); \
72404 int16_t __ret_303; \
72405 __ret_303 = __noswap_vqaddh_s16(__s0_303, __noswap_vqrdmulhh_s16(__s1_303, __noswap_vget_lane_s16(__rev2_303, __p3_303))); \
72406 __ret_303; \
7183572407})
7183672408#endif
7183772409
7183872410#ifdef __LITTLE_ENDIAN__
71839#define vqrdmlahs_laneq_s32(__p0_272, __p1_272, __p2_272, __p3_272) __extension__ ({ \
71840 int32_t __s0_272 = __p0_272; \
71841 int32_t __s1_272 = __p1_272; \
71842 int32x4_t __s2_272 = __p2_272; \
71843 int32_t __ret_272; \
71844 __ret_272 = vqadds_s32(__s0_272, vqrdmulhs_s32(__s1_272, vgetq_lane_s32(__s2_272, __p3_272))); \
71845 __ret_272; \
72411#define vqrdmlahs_laneq_s32(__p0_304, __p1_304, __p2_304, __p3_304) __extension__ ({ \
72412 int32_t __s0_304 = __p0_304; \
72413 int32_t __s1_304 = __p1_304; \
72414 int32x4_t __s2_304 = __p2_304; \
72415 int32_t __ret_304; \
72416 __ret_304 = vqadds_s32(__s0_304, vqrdmulhs_s32(__s1_304, vgetq_lane_s32(__s2_304, __p3_304))); \
72417 __ret_304; \
7184672418})
7184772419#else
71848#define vqrdmlahs_laneq_s32(__p0_273, __p1_273, __p2_273, __p3_273) __extension__ ({ \
71849 int32_t __s0_273 = __p0_273; \
71850 int32_t __s1_273 = __p1_273; \
71851 int32x4_t __s2_273 = __p2_273; \
71852 int32x4_t __rev2_273; __rev2_273 = __builtin_shufflevector(__s2_273, __s2_273, 3, 2, 1, 0); \
71853 int32_t __ret_273; \
71854 __ret_273 = __noswap_vqadds_s32(__s0_273, __noswap_vqrdmulhs_s32(__s1_273, __noswap_vgetq_lane_s32(__rev2_273, __p3_273))); \
71855 __ret_273; \
72420#define vqrdmlahs_laneq_s32(__p0_305, __p1_305, __p2_305, __p3_305) __extension__ ({ \
72421 int32_t __s0_305 = __p0_305; \
72422 int32_t __s1_305 = __p1_305; \
72423 int32x4_t __s2_305 = __p2_305; \
72424 int32x4_t __rev2_305; __rev2_305 = __builtin_shufflevector(__s2_305, __s2_305, 3, 2, 1, 0); \
72425 int32_t __ret_305; \
72426 __ret_305 = __noswap_vqadds_s32(__s0_305, __noswap_vqrdmulhs_s32(__s1_305, __noswap_vgetq_lane_s32(__rev2_305, __p3_305))); \
72427 __ret_305; \
7185672428})
7185772429#endif
7185872430
7185972431#ifdef __LITTLE_ENDIAN__
71860#define vqrdmlahh_laneq_s16(__p0_274, __p1_274, __p2_274, __p3_274) __extension__ ({ \
71861 int16_t __s0_274 = __p0_274; \
71862 int16_t __s1_274 = __p1_274; \
71863 int16x8_t __s2_274 = __p2_274; \
71864 int16_t __ret_274; \
71865 __ret_274 = vqaddh_s16(__s0_274, vqrdmulhh_s16(__s1_274, vgetq_lane_s16(__s2_274, __p3_274))); \
71866 __ret_274; \
72432#define vqrdmlahh_laneq_s16(__p0_306, __p1_306, __p2_306, __p3_306) __extension__ ({ \
72433 int16_t __s0_306 = __p0_306; \
72434 int16_t __s1_306 = __p1_306; \
72435 int16x8_t __s2_306 = __p2_306; \
72436 int16_t __ret_306; \
72437 __ret_306 = vqaddh_s16(__s0_306, vqrdmulhh_s16(__s1_306, vgetq_lane_s16(__s2_306, __p3_306))); \
72438 __ret_306; \
7186772439})
7186872440#else
71869#define vqrdmlahh_laneq_s16(__p0_275, __p1_275, __p2_275, __p3_275) __extension__ ({ \
71870 int16_t __s0_275 = __p0_275; \
71871 int16_t __s1_275 = __p1_275; \
71872 int16x8_t __s2_275 = __p2_275; \
71873 int16x8_t __rev2_275; __rev2_275 = __builtin_shufflevector(__s2_275, __s2_275, 7, 6, 5, 4, 3, 2, 1, 0); \
71874 int16_t __ret_275; \
71875 __ret_275 = __noswap_vqaddh_s16(__s0_275, __noswap_vqrdmulhh_s16(__s1_275, __noswap_vgetq_lane_s16(__rev2_275, __p3_275))); \
71876 __ret_275; \
72441#define vqrdmlahh_laneq_s16(__p0_307, __p1_307, __p2_307, __p3_307) __extension__ ({ \
72442 int16_t __s0_307 = __p0_307; \
72443 int16_t __s1_307 = __p1_307; \
72444 int16x8_t __s2_307 = __p2_307; \
72445 int16x8_t __rev2_307; __rev2_307 = __builtin_shufflevector(__s2_307, __s2_307, 7, 6, 5, 4, 3, 2, 1, 0); \
72446 int16_t __ret_307; \
72447 __ret_307 = __noswap_vqaddh_s16(__s0_307, __noswap_vqrdmulhh_s16(__s1_307, __noswap_vgetq_lane_s16(__rev2_307, __p3_307))); \
72448 __ret_307; \
7187772449})
7187872450#endif
7187972451
......@@ -71906,86 +72478,86 @@ __ai int16_t vqrdmlshh_s16(int16_t __p0, int16_t __p1, int16_t __p2) {
7190672478#endif
7190772479
7190872480#ifdef __LITTLE_ENDIAN__
71909#define vqrdmlshs_lane_s32(__p0_276, __p1_276, __p2_276, __p3_276) __extension__ ({ \
71910 int32_t __s0_276 = __p0_276; \
71911 int32_t __s1_276 = __p1_276; \
71912 int32x2_t __s2_276 = __p2_276; \
71913 int32_t __ret_276; \
71914 __ret_276 = vqsubs_s32(__s0_276, vqrdmulhs_s32(__s1_276, vget_lane_s32(__s2_276, __p3_276))); \
71915 __ret_276; \
72481#define vqrdmlshs_lane_s32(__p0_308, __p1_308, __p2_308, __p3_308) __extension__ ({ \
72482 int32_t __s0_308 = __p0_308; \
72483 int32_t __s1_308 = __p1_308; \
72484 int32x2_t __s2_308 = __p2_308; \
72485 int32_t __ret_308; \
72486 __ret_308 = vqsubs_s32(__s0_308, vqrdmulhs_s32(__s1_308, vget_lane_s32(__s2_308, __p3_308))); \
72487 __ret_308; \
7191672488})
7191772489#else
71918#define vqrdmlshs_lane_s32(__p0_277, __p1_277, __p2_277, __p3_277) __extension__ ({ \
71919 int32_t __s0_277 = __p0_277; \
71920 int32_t __s1_277 = __p1_277; \
71921 int32x2_t __s2_277 = __p2_277; \
71922 int32x2_t __rev2_277; __rev2_277 = __builtin_shufflevector(__s2_277, __s2_277, 1, 0); \
71923 int32_t __ret_277; \
71924 __ret_277 = __noswap_vqsubs_s32(__s0_277, __noswap_vqrdmulhs_s32(__s1_277, __noswap_vget_lane_s32(__rev2_277, __p3_277))); \
71925 __ret_277; \
72490#define vqrdmlshs_lane_s32(__p0_309, __p1_309, __p2_309, __p3_309) __extension__ ({ \
72491 int32_t __s0_309 = __p0_309; \
72492 int32_t __s1_309 = __p1_309; \
72493 int32x2_t __s2_309 = __p2_309; \
72494 int32x2_t __rev2_309; __rev2_309 = __builtin_shufflevector(__s2_309, __s2_309, 1, 0); \
72495 int32_t __ret_309; \
72496 __ret_309 = __noswap_vqsubs_s32(__s0_309, __noswap_vqrdmulhs_s32(__s1_309, __noswap_vget_lane_s32(__rev2_309, __p3_309))); \
72497 __ret_309; \
7192672498})
7192772499#endif
7192872500
7192972501#ifdef __LITTLE_ENDIAN__
71930#define vqrdmlshh_lane_s16(__p0_278, __p1_278, __p2_278, __p3_278) __extension__ ({ \
71931 int16_t __s0_278 = __p0_278; \
71932 int16_t __s1_278 = __p1_278; \
71933 int16x4_t __s2_278 = __p2_278; \
71934 int16_t __ret_278; \
71935 __ret_278 = vqsubh_s16(__s0_278, vqrdmulhh_s16(__s1_278, vget_lane_s16(__s2_278, __p3_278))); \
71936 __ret_278; \
72502#define vqrdmlshh_lane_s16(__p0_310, __p1_310, __p2_310, __p3_310) __extension__ ({ \
72503 int16_t __s0_310 = __p0_310; \
72504 int16_t __s1_310 = __p1_310; \
72505 int16x4_t __s2_310 = __p2_310; \
72506 int16_t __ret_310; \
72507 __ret_310 = vqsubh_s16(__s0_310, vqrdmulhh_s16(__s1_310, vget_lane_s16(__s2_310, __p3_310))); \
72508 __ret_310; \
7193772509})
7193872510#else
71939#define vqrdmlshh_lane_s16(__p0_279, __p1_279, __p2_279, __p3_279) __extension__ ({ \
71940 int16_t __s0_279 = __p0_279; \
71941 int16_t __s1_279 = __p1_279; \
71942 int16x4_t __s2_279 = __p2_279; \
71943 int16x4_t __rev2_279; __rev2_279 = __builtin_shufflevector(__s2_279, __s2_279, 3, 2, 1, 0); \
71944 int16_t __ret_279; \
71945 __ret_279 = __noswap_vqsubh_s16(__s0_279, __noswap_vqrdmulhh_s16(__s1_279, __noswap_vget_lane_s16(__rev2_279, __p3_279))); \
71946 __ret_279; \
72511#define vqrdmlshh_lane_s16(__p0_311, __p1_311, __p2_311, __p3_311) __extension__ ({ \
72512 int16_t __s0_311 = __p0_311; \
72513 int16_t __s1_311 = __p1_311; \
72514 int16x4_t __s2_311 = __p2_311; \
72515 int16x4_t __rev2_311; __rev2_311 = __builtin_shufflevector(__s2_311, __s2_311, 3, 2, 1, 0); \
72516 int16_t __ret_311; \
72517 __ret_311 = __noswap_vqsubh_s16(__s0_311, __noswap_vqrdmulhh_s16(__s1_311, __noswap_vget_lane_s16(__rev2_311, __p3_311))); \
72518 __ret_311; \
7194772519})
7194872520#endif
7194972521
7195072522#ifdef __LITTLE_ENDIAN__
71951#define vqrdmlshs_laneq_s32(__p0_280, __p1_280, __p2_280, __p3_280) __extension__ ({ \
71952 int32_t __s0_280 = __p0_280; \
71953 int32_t __s1_280 = __p1_280; \
71954 int32x4_t __s2_280 = __p2_280; \
71955 int32_t __ret_280; \
71956 __ret_280 = vqsubs_s32(__s0_280, vqrdmulhs_s32(__s1_280, vgetq_lane_s32(__s2_280, __p3_280))); \
71957 __ret_280; \
72523#define vqrdmlshs_laneq_s32(__p0_312, __p1_312, __p2_312, __p3_312) __extension__ ({ \
72524 int32_t __s0_312 = __p0_312; \
72525 int32_t __s1_312 = __p1_312; \
72526 int32x4_t __s2_312 = __p2_312; \
72527 int32_t __ret_312; \
72528 __ret_312 = vqsubs_s32(__s0_312, vqrdmulhs_s32(__s1_312, vgetq_lane_s32(__s2_312, __p3_312))); \
72529 __ret_312; \
7195872530})
7195972531#else
71960#define vqrdmlshs_laneq_s32(__p0_281, __p1_281, __p2_281, __p3_281) __extension__ ({ \
71961 int32_t __s0_281 = __p0_281; \
71962 int32_t __s1_281 = __p1_281; \
71963 int32x4_t __s2_281 = __p2_281; \
71964 int32x4_t __rev2_281; __rev2_281 = __builtin_shufflevector(__s2_281, __s2_281, 3, 2, 1, 0); \
71965 int32_t __ret_281; \
71966 __ret_281 = __noswap_vqsubs_s32(__s0_281, __noswap_vqrdmulhs_s32(__s1_281, __noswap_vgetq_lane_s32(__rev2_281, __p3_281))); \
71967 __ret_281; \
72532#define vqrdmlshs_laneq_s32(__p0_313, __p1_313, __p2_313, __p3_313) __extension__ ({ \
72533 int32_t __s0_313 = __p0_313; \
72534 int32_t __s1_313 = __p1_313; \
72535 int32x4_t __s2_313 = __p2_313; \
72536 int32x4_t __rev2_313; __rev2_313 = __builtin_shufflevector(__s2_313, __s2_313, 3, 2, 1, 0); \
72537 int32_t __ret_313; \
72538 __ret_313 = __noswap_vqsubs_s32(__s0_313, __noswap_vqrdmulhs_s32(__s1_313, __noswap_vgetq_lane_s32(__rev2_313, __p3_313))); \
72539 __ret_313; \
7196872540})
7196972541#endif
7197072542
7197172543#ifdef __LITTLE_ENDIAN__
71972#define vqrdmlshh_laneq_s16(__p0_282, __p1_282, __p2_282, __p3_282) __extension__ ({ \
71973 int16_t __s0_282 = __p0_282; \
71974 int16_t __s1_282 = __p1_282; \
71975 int16x8_t __s2_282 = __p2_282; \
71976 int16_t __ret_282; \
71977 __ret_282 = vqsubh_s16(__s0_282, vqrdmulhh_s16(__s1_282, vgetq_lane_s16(__s2_282, __p3_282))); \
71978 __ret_282; \
72544#define vqrdmlshh_laneq_s16(__p0_314, __p1_314, __p2_314, __p3_314) __extension__ ({ \
72545 int16_t __s0_314 = __p0_314; \
72546 int16_t __s1_314 = __p1_314; \
72547 int16x8_t __s2_314 = __p2_314; \
72548 int16_t __ret_314; \
72549 __ret_314 = vqsubh_s16(__s0_314, vqrdmulhh_s16(__s1_314, vgetq_lane_s16(__s2_314, __p3_314))); \
72550 __ret_314; \
7197972551})
7198072552#else
71981#define vqrdmlshh_laneq_s16(__p0_283, __p1_283, __p2_283, __p3_283) __extension__ ({ \
71982 int16_t __s0_283 = __p0_283; \
71983 int16_t __s1_283 = __p1_283; \
71984 int16x8_t __s2_283 = __p2_283; \
71985 int16x8_t __rev2_283; __rev2_283 = __builtin_shufflevector(__s2_283, __s2_283, 7, 6, 5, 4, 3, 2, 1, 0); \
71986 int16_t __ret_283; \
71987 __ret_283 = __noswap_vqsubh_s16(__s0_283, __noswap_vqrdmulhh_s16(__s1_283, __noswap_vgetq_lane_s16(__rev2_283, __p3_283))); \
71988 __ret_283; \
72553#define vqrdmlshh_laneq_s16(__p0_315, __p1_315, __p2_315, __p3_315) __extension__ ({ \
72554 int16_t __s0_315 = __p0_315; \
72555 int16_t __s1_315 = __p1_315; \
72556 int16x8_t __s2_315 = __p2_315; \
72557 int16x8_t __rev2_315; __rev2_315 = __builtin_shufflevector(__s2_315, __s2_315, 7, 6, 5, 4, 3, 2, 1, 0); \
72558 int16_t __ret_315; \
72559 __ret_315 = __noswap_vqsubh_s16(__s0_315, __noswap_vqrdmulhh_s16(__s1_315, __noswap_vgetq_lane_s16(__rev2_315, __p3_315))); \
72560 __ret_315; \
7198972561})
7199072562#endif
7199172563
......@@ -72298,158 +72870,158 @@ __ai int32x4_t vaddw_high_s16(int32x4_t __p0, int16x8_t __p1) {
7229872870#endif
7229972871
7230072872#ifdef __LITTLE_ENDIAN__
72301#define vcopyq_lane_p64(__p0_284, __p1_284, __p2_284, __p3_284) __extension__ ({ \
72302 poly64x2_t __s0_284 = __p0_284; \
72303 poly64x1_t __s2_284 = __p2_284; \
72304 poly64x2_t __ret_284; \
72305 __ret_284 = vsetq_lane_p64(vget_lane_p64(__s2_284, __p3_284), __s0_284, __p1_284); \
72306 __ret_284; \
72873#define vcopyq_lane_p64(__p0_316, __p1_316, __p2_316, __p3_316) __extension__ ({ \
72874 poly64x2_t __s0_316 = __p0_316; \
72875 poly64x1_t __s2_316 = __p2_316; \
72876 poly64x2_t __ret_316; \
72877 __ret_316 = vsetq_lane_p64(vget_lane_p64(__s2_316, __p3_316), __s0_316, __p1_316); \
72878 __ret_316; \
7230772879})
7230872880#else
72309#define vcopyq_lane_p64(__p0_285, __p1_285, __p2_285, __p3_285) __extension__ ({ \
72310 poly64x2_t __s0_285 = __p0_285; \
72311 poly64x1_t __s2_285 = __p2_285; \
72312 poly64x2_t __rev0_285; __rev0_285 = __builtin_shufflevector(__s0_285, __s0_285, 1, 0); \
72313 poly64x2_t __ret_285; \
72314 __ret_285 = __noswap_vsetq_lane_p64(__noswap_vget_lane_p64(__s2_285, __p3_285), __rev0_285, __p1_285); \
72315 __ret_285 = __builtin_shufflevector(__ret_285, __ret_285, 1, 0); \
72316 __ret_285; \
72881#define vcopyq_lane_p64(__p0_317, __p1_317, __p2_317, __p3_317) __extension__ ({ \
72882 poly64x2_t __s0_317 = __p0_317; \
72883 poly64x1_t __s2_317 = __p2_317; \
72884 poly64x2_t __rev0_317; __rev0_317 = __builtin_shufflevector(__s0_317, __s0_317, 1, 0); \
72885 poly64x2_t __ret_317; \
72886 __ret_317 = __noswap_vsetq_lane_p64(__noswap_vget_lane_p64(__s2_317, __p3_317), __rev0_317, __p1_317); \
72887 __ret_317 = __builtin_shufflevector(__ret_317, __ret_317, 1, 0); \
72888 __ret_317; \
7231772889})
7231872890#endif
7231972891
7232072892#ifdef __LITTLE_ENDIAN__
72321#define vcopyq_lane_f64(__p0_286, __p1_286, __p2_286, __p3_286) __extension__ ({ \
72322 float64x2_t __s0_286 = __p0_286; \
72323 float64x1_t __s2_286 = __p2_286; \
72324 float64x2_t __ret_286; \
72325 __ret_286 = vsetq_lane_f64(vget_lane_f64(__s2_286, __p3_286), __s0_286, __p1_286); \
72326 __ret_286; \
72893#define vcopyq_lane_f64(__p0_318, __p1_318, __p2_318, __p3_318) __extension__ ({ \
72894 float64x2_t __s0_318 = __p0_318; \
72895 float64x1_t __s2_318 = __p2_318; \
72896 float64x2_t __ret_318; \
72897 __ret_318 = vsetq_lane_f64(vget_lane_f64(__s2_318, __p3_318), __s0_318, __p1_318); \
72898 __ret_318; \
7232772899})
7232872900#else
72329#define vcopyq_lane_f64(__p0_287, __p1_287, __p2_287, __p3_287) __extension__ ({ \
72330 float64x2_t __s0_287 = __p0_287; \
72331 float64x1_t __s2_287 = __p2_287; \
72332 float64x2_t __rev0_287; __rev0_287 = __builtin_shufflevector(__s0_287, __s0_287, 1, 0); \
72333 float64x2_t __ret_287; \
72334 __ret_287 = __noswap_vsetq_lane_f64(__noswap_vget_lane_f64(__s2_287, __p3_287), __rev0_287, __p1_287); \
72335 __ret_287 = __builtin_shufflevector(__ret_287, __ret_287, 1, 0); \
72336 __ret_287; \
72901#define vcopyq_lane_f64(__p0_319, __p1_319, __p2_319, __p3_319) __extension__ ({ \
72902 float64x2_t __s0_319 = __p0_319; \
72903 float64x1_t __s2_319 = __p2_319; \
72904 float64x2_t __rev0_319; __rev0_319 = __builtin_shufflevector(__s0_319, __s0_319, 1, 0); \
72905 float64x2_t __ret_319; \
72906 __ret_319 = __noswap_vsetq_lane_f64(__noswap_vget_lane_f64(__s2_319, __p3_319), __rev0_319, __p1_319); \
72907 __ret_319 = __builtin_shufflevector(__ret_319, __ret_319, 1, 0); \
72908 __ret_319; \
7233772909})
7233872910#endif
7233972911
7234072912#ifdef __LITTLE_ENDIAN__
72341#define vcopy_lane_p64(__p0_288, __p1_288, __p2_288, __p3_288) __extension__ ({ \
72342 poly64x1_t __s0_288 = __p0_288; \
72343 poly64x1_t __s2_288 = __p2_288; \
72344 poly64x1_t __ret_288; \
72345 __ret_288 = vset_lane_p64(vget_lane_p64(__s2_288, __p3_288), __s0_288, __p1_288); \
72346 __ret_288; \
72913#define vcopy_lane_p64(__p0_320, __p1_320, __p2_320, __p3_320) __extension__ ({ \
72914 poly64x1_t __s0_320 = __p0_320; \
72915 poly64x1_t __s2_320 = __p2_320; \
72916 poly64x1_t __ret_320; \
72917 __ret_320 = vset_lane_p64(vget_lane_p64(__s2_320, __p3_320), __s0_320, __p1_320); \
72918 __ret_320; \
7234772919})
7234872920#else
72349#define vcopy_lane_p64(__p0_289, __p1_289, __p2_289, __p3_289) __extension__ ({ \
72350 poly64x1_t __s0_289 = __p0_289; \
72351 poly64x1_t __s2_289 = __p2_289; \
72352 poly64x1_t __ret_289; \
72353 __ret_289 = __noswap_vset_lane_p64(__noswap_vget_lane_p64(__s2_289, __p3_289), __s0_289, __p1_289); \
72354 __ret_289; \
72921#define vcopy_lane_p64(__p0_321, __p1_321, __p2_321, __p3_321) __extension__ ({ \
72922 poly64x1_t __s0_321 = __p0_321; \
72923 poly64x1_t __s2_321 = __p2_321; \
72924 poly64x1_t __ret_321; \
72925 __ret_321 = __noswap_vset_lane_p64(__noswap_vget_lane_p64(__s2_321, __p3_321), __s0_321, __p1_321); \
72926 __ret_321; \
7235572927})
7235672928#endif
7235772929
7235872930#ifdef __LITTLE_ENDIAN__
72359#define vcopy_lane_f64(__p0_290, __p1_290, __p2_290, __p3_290) __extension__ ({ \
72360 float64x1_t __s0_290 = __p0_290; \
72361 float64x1_t __s2_290 = __p2_290; \
72362 float64x1_t __ret_290; \
72363 __ret_290 = vset_lane_f64(vget_lane_f64(__s2_290, __p3_290), __s0_290, __p1_290); \
72364 __ret_290; \
72931#define vcopy_lane_f64(__p0_322, __p1_322, __p2_322, __p3_322) __extension__ ({ \
72932 float64x1_t __s0_322 = __p0_322; \
72933 float64x1_t __s2_322 = __p2_322; \
72934 float64x1_t __ret_322; \
72935 __ret_322 = vset_lane_f64(vget_lane_f64(__s2_322, __p3_322), __s0_322, __p1_322); \
72936 __ret_322; \
7236572937})
7236672938#else
72367#define vcopy_lane_f64(__p0_291, __p1_291, __p2_291, __p3_291) __extension__ ({ \
72368 float64x1_t __s0_291 = __p0_291; \
72369 float64x1_t __s2_291 = __p2_291; \
72370 float64x1_t __ret_291; \
72371 __ret_291 = __noswap_vset_lane_f64(__noswap_vget_lane_f64(__s2_291, __p3_291), __s0_291, __p1_291); \
72372 __ret_291; \
72939#define vcopy_lane_f64(__p0_323, __p1_323, __p2_323, __p3_323) __extension__ ({ \
72940 float64x1_t __s0_323 = __p0_323; \
72941 float64x1_t __s2_323 = __p2_323; \
72942 float64x1_t __ret_323; \
72943 __ret_323 = __noswap_vset_lane_f64(__noswap_vget_lane_f64(__s2_323, __p3_323), __s0_323, __p1_323); \
72944 __ret_323; \
7237372945})
7237472946#endif
7237572947
7237672948#ifdef __LITTLE_ENDIAN__
72377#define vcopyq_laneq_p64(__p0_292, __p1_292, __p2_292, __p3_292) __extension__ ({ \
72378 poly64x2_t __s0_292 = __p0_292; \
72379 poly64x2_t __s2_292 = __p2_292; \
72380 poly64x2_t __ret_292; \
72381 __ret_292 = vsetq_lane_p64(vgetq_lane_p64(__s2_292, __p3_292), __s0_292, __p1_292); \
72382 __ret_292; \
72949#define vcopyq_laneq_p64(__p0_324, __p1_324, __p2_324, __p3_324) __extension__ ({ \
72950 poly64x2_t __s0_324 = __p0_324; \
72951 poly64x2_t __s2_324 = __p2_324; \
72952 poly64x2_t __ret_324; \
72953 __ret_324 = vsetq_lane_p64(vgetq_lane_p64(__s2_324, __p3_324), __s0_324, __p1_324); \
72954 __ret_324; \
7238372955})
7238472956#else
72385#define vcopyq_laneq_p64(__p0_293, __p1_293, __p2_293, __p3_293) __extension__ ({ \
72386 poly64x2_t __s0_293 = __p0_293; \
72387 poly64x2_t __s2_293 = __p2_293; \
72388 poly64x2_t __rev0_293; __rev0_293 = __builtin_shufflevector(__s0_293, __s0_293, 1, 0); \
72389 poly64x2_t __rev2_293; __rev2_293 = __builtin_shufflevector(__s2_293, __s2_293, 1, 0); \
72390 poly64x2_t __ret_293; \
72391 __ret_293 = __noswap_vsetq_lane_p64(__noswap_vgetq_lane_p64(__rev2_293, __p3_293), __rev0_293, __p1_293); \
72392 __ret_293 = __builtin_shufflevector(__ret_293, __ret_293, 1, 0); \
72393 __ret_293; \
72957#define vcopyq_laneq_p64(__p0_325, __p1_325, __p2_325, __p3_325) __extension__ ({ \
72958 poly64x2_t __s0_325 = __p0_325; \
72959 poly64x2_t __s2_325 = __p2_325; \
72960 poly64x2_t __rev0_325; __rev0_325 = __builtin_shufflevector(__s0_325, __s0_325, 1, 0); \
72961 poly64x2_t __rev2_325; __rev2_325 = __builtin_shufflevector(__s2_325, __s2_325, 1, 0); \
72962 poly64x2_t __ret_325; \
72963 __ret_325 = __noswap_vsetq_lane_p64(__noswap_vgetq_lane_p64(__rev2_325, __p3_325), __rev0_325, __p1_325); \
72964 __ret_325 = __builtin_shufflevector(__ret_325, __ret_325, 1, 0); \
72965 __ret_325; \
7239472966})
7239572967#endif
7239672968
7239772969#ifdef __LITTLE_ENDIAN__
72398#define vcopyq_laneq_f64(__p0_294, __p1_294, __p2_294, __p3_294) __extension__ ({ \
72399 float64x2_t __s0_294 = __p0_294; \
72400 float64x2_t __s2_294 = __p2_294; \
72401 float64x2_t __ret_294; \
72402 __ret_294 = vsetq_lane_f64(vgetq_lane_f64(__s2_294, __p3_294), __s0_294, __p1_294); \
72403 __ret_294; \
72970#define vcopyq_laneq_f64(__p0_326, __p1_326, __p2_326, __p3_326) __extension__ ({ \
72971 float64x2_t __s0_326 = __p0_326; \
72972 float64x2_t __s2_326 = __p2_326; \
72973 float64x2_t __ret_326; \
72974 __ret_326 = vsetq_lane_f64(vgetq_lane_f64(__s2_326, __p3_326), __s0_326, __p1_326); \
72975 __ret_326; \
7240472976})
7240572977#else
72406#define vcopyq_laneq_f64(__p0_295, __p1_295, __p2_295, __p3_295) __extension__ ({ \
72407 float64x2_t __s0_295 = __p0_295; \
72408 float64x2_t __s2_295 = __p2_295; \
72409 float64x2_t __rev0_295; __rev0_295 = __builtin_shufflevector(__s0_295, __s0_295, 1, 0); \
72410 float64x2_t __rev2_295; __rev2_295 = __builtin_shufflevector(__s2_295, __s2_295, 1, 0); \
72411 float64x2_t __ret_295; \
72412 __ret_295 = __noswap_vsetq_lane_f64(__noswap_vgetq_lane_f64(__rev2_295, __p3_295), __rev0_295, __p1_295); \
72413 __ret_295 = __builtin_shufflevector(__ret_295, __ret_295, 1, 0); \
72414 __ret_295; \
72978#define vcopyq_laneq_f64(__p0_327, __p1_327, __p2_327, __p3_327) __extension__ ({ \
72979 float64x2_t __s0_327 = __p0_327; \
72980 float64x2_t __s2_327 = __p2_327; \
72981 float64x2_t __rev0_327; __rev0_327 = __builtin_shufflevector(__s0_327, __s0_327, 1, 0); \
72982 float64x2_t __rev2_327; __rev2_327 = __builtin_shufflevector(__s2_327, __s2_327, 1, 0); \
72983 float64x2_t __ret_327; \
72984 __ret_327 = __noswap_vsetq_lane_f64(__noswap_vgetq_lane_f64(__rev2_327, __p3_327), __rev0_327, __p1_327); \
72985 __ret_327 = __builtin_shufflevector(__ret_327, __ret_327, 1, 0); \
72986 __ret_327; \
7241572987})
7241672988#endif
7241772989
7241872990#ifdef __LITTLE_ENDIAN__
72419#define vcopy_laneq_p64(__p0_296, __p1_296, __p2_296, __p3_296) __extension__ ({ \
72420 poly64x1_t __s0_296 = __p0_296; \
72421 poly64x2_t __s2_296 = __p2_296; \
72422 poly64x1_t __ret_296; \
72423 __ret_296 = vset_lane_p64(vgetq_lane_p64(__s2_296, __p3_296), __s0_296, __p1_296); \
72424 __ret_296; \
72991#define vcopy_laneq_p64(__p0_328, __p1_328, __p2_328, __p3_328) __extension__ ({ \
72992 poly64x1_t __s0_328 = __p0_328; \
72993 poly64x2_t __s2_328 = __p2_328; \
72994 poly64x1_t __ret_328; \
72995 __ret_328 = vset_lane_p64(vgetq_lane_p64(__s2_328, __p3_328), __s0_328, __p1_328); \
72996 __ret_328; \
7242572997})
7242672998#else
72427#define vcopy_laneq_p64(__p0_297, __p1_297, __p2_297, __p3_297) __extension__ ({ \
72428 poly64x1_t __s0_297 = __p0_297; \
72429 poly64x2_t __s2_297 = __p2_297; \
72430 poly64x2_t __rev2_297; __rev2_297 = __builtin_shufflevector(__s2_297, __s2_297, 1, 0); \
72431 poly64x1_t __ret_297; \
72432 __ret_297 = __noswap_vset_lane_p64(__noswap_vgetq_lane_p64(__rev2_297, __p3_297), __s0_297, __p1_297); \
72433 __ret_297; \
72999#define vcopy_laneq_p64(__p0_329, __p1_329, __p2_329, __p3_329) __extension__ ({ \
73000 poly64x1_t __s0_329 = __p0_329; \
73001 poly64x2_t __s2_329 = __p2_329; \
73002 poly64x2_t __rev2_329; __rev2_329 = __builtin_shufflevector(__s2_329, __s2_329, 1, 0); \
73003 poly64x1_t __ret_329; \
73004 __ret_329 = __noswap_vset_lane_p64(__noswap_vgetq_lane_p64(__rev2_329, __p3_329), __s0_329, __p1_329); \
73005 __ret_329; \
7243473006})
7243573007#endif
7243673008
7243773009#ifdef __LITTLE_ENDIAN__
72438#define vcopy_laneq_f64(__p0_298, __p1_298, __p2_298, __p3_298) __extension__ ({ \
72439 float64x1_t __s0_298 = __p0_298; \
72440 float64x2_t __s2_298 = __p2_298; \
72441 float64x1_t __ret_298; \
72442 __ret_298 = vset_lane_f64(vgetq_lane_f64(__s2_298, __p3_298), __s0_298, __p1_298); \
72443 __ret_298; \
73010#define vcopy_laneq_f64(__p0_330, __p1_330, __p2_330, __p3_330) __extension__ ({ \
73011 float64x1_t __s0_330 = __p0_330; \
73012 float64x2_t __s2_330 = __p2_330; \
73013 float64x1_t __ret_330; \
73014 __ret_330 = vset_lane_f64(vgetq_lane_f64(__s2_330, __p3_330), __s0_330, __p1_330); \
73015 __ret_330; \
7244473016})
7244573017#else
72446#define vcopy_laneq_f64(__p0_299, __p1_299, __p2_299, __p3_299) __extension__ ({ \
72447 float64x1_t __s0_299 = __p0_299; \
72448 float64x2_t __s2_299 = __p2_299; \
72449 float64x2_t __rev2_299; __rev2_299 = __builtin_shufflevector(__s2_299, __s2_299, 1, 0); \
72450 float64x1_t __ret_299; \
72451 __ret_299 = __noswap_vset_lane_f64(__noswap_vgetq_lane_f64(__rev2_299, __p3_299), __s0_299, __p1_299); \
72452 __ret_299; \
73018#define vcopy_laneq_f64(__p0_331, __p1_331, __p2_331, __p3_331) __extension__ ({ \
73019 float64x1_t __s0_331 = __p0_331; \
73020 float64x2_t __s2_331 = __p2_331; \
73021 float64x2_t __rev2_331; __rev2_331 = __builtin_shufflevector(__s2_331, __s2_331, 1, 0); \
73022 float64x1_t __ret_331; \
73023 __ret_331 = __noswap_vset_lane_f64(__noswap_vgetq_lane_f64(__rev2_331, __p3_331), __s0_331, __p1_331); \
73024 __ret_331; \
7245373025})
7245473026#endif
7245573027
......@@ -72806,51 +73378,51 @@ __ai int32x4_t vmlsl_high_n_s16(int32x4_t __p0, int16x8_t __p1, int16_t __p2) {
7280673378#endif
7280773379
7280873380#ifdef __LITTLE_ENDIAN__
72809#define vmulx_lane_f64(__p0_300, __p1_300, __p2_300) __extension__ ({ \
72810 float64x1_t __s0_300 = __p0_300; \
72811 float64x1_t __s1_300 = __p1_300; \
72812 float64x1_t __ret_300; \
72813 float64_t __x_300 = vget_lane_f64(__s0_300, 0); \
72814 float64_t __y_300 = vget_lane_f64(__s1_300, __p2_300); \
72815 float64_t __z_300 = vmulxd_f64(__x_300, __y_300); \
72816 __ret_300 = vset_lane_f64(__z_300, __s0_300, __p2_300); \
72817 __ret_300; \
73381#define vmulx_lane_f64(__p0_332, __p1_332, __p2_332) __extension__ ({ \
73382 float64x1_t __s0_332 = __p0_332; \
73383 float64x1_t __s1_332 = __p1_332; \
73384 float64x1_t __ret_332; \
73385 float64_t __x_332 = vget_lane_f64(__s0_332, 0); \
73386 float64_t __y_332 = vget_lane_f64(__s1_332, __p2_332); \
73387 float64_t __z_332 = vmulxd_f64(__x_332, __y_332); \
73388 __ret_332 = vset_lane_f64(__z_332, __s0_332, __p2_332); \
73389 __ret_332; \
7281873390})
7281973391#else
72820#define vmulx_lane_f64(__p0_301, __p1_301, __p2_301) __extension__ ({ \
72821 float64x1_t __s0_301 = __p0_301; \
72822 float64x1_t __s1_301 = __p1_301; \
72823 float64x1_t __ret_301; \
72824 float64_t __x_301 = __noswap_vget_lane_f64(__s0_301, 0); \
72825 float64_t __y_301 = __noswap_vget_lane_f64(__s1_301, __p2_301); \
72826 float64_t __z_301 = __noswap_vmulxd_f64(__x_301, __y_301); \
72827 __ret_301 = __noswap_vset_lane_f64(__z_301, __s0_301, __p2_301); \
72828 __ret_301; \
73392#define vmulx_lane_f64(__p0_333, __p1_333, __p2_333) __extension__ ({ \
73393 float64x1_t __s0_333 = __p0_333; \
73394 float64x1_t __s1_333 = __p1_333; \
73395 float64x1_t __ret_333; \
73396 float64_t __x_333 = __noswap_vget_lane_f64(__s0_333, 0); \
73397 float64_t __y_333 = __noswap_vget_lane_f64(__s1_333, __p2_333); \
73398 float64_t __z_333 = __noswap_vmulxd_f64(__x_333, __y_333); \
73399 __ret_333 = __noswap_vset_lane_f64(__z_333, __s0_333, __p2_333); \
73400 __ret_333; \
7282973401})
7283073402#endif
7283173403
7283273404#ifdef __LITTLE_ENDIAN__
72833#define vmulx_laneq_f64(__p0_302, __p1_302, __p2_302) __extension__ ({ \
72834 float64x1_t __s0_302 = __p0_302; \
72835 float64x2_t __s1_302 = __p1_302; \
72836 float64x1_t __ret_302; \
72837 float64_t __x_302 = vget_lane_f64(__s0_302, 0); \
72838 float64_t __y_302 = vgetq_lane_f64(__s1_302, __p2_302); \
72839 float64_t __z_302 = vmulxd_f64(__x_302, __y_302); \
72840 __ret_302 = vset_lane_f64(__z_302, __s0_302, 0); \
72841 __ret_302; \
73405#define vmulx_laneq_f64(__p0_334, __p1_334, __p2_334) __extension__ ({ \
73406 float64x1_t __s0_334 = __p0_334; \
73407 float64x2_t __s1_334 = __p1_334; \
73408 float64x1_t __ret_334; \
73409 float64_t __x_334 = vget_lane_f64(__s0_334, 0); \
73410 float64_t __y_334 = vgetq_lane_f64(__s1_334, __p2_334); \
73411 float64_t __z_334 = vmulxd_f64(__x_334, __y_334); \
73412 __ret_334 = vset_lane_f64(__z_334, __s0_334, 0); \
73413 __ret_334; \
7284273414})
7284373415#else
72844#define vmulx_laneq_f64(__p0_303, __p1_303, __p2_303) __extension__ ({ \
72845 float64x1_t __s0_303 = __p0_303; \
72846 float64x2_t __s1_303 = __p1_303; \
72847 float64x2_t __rev1_303; __rev1_303 = __builtin_shufflevector(__s1_303, __s1_303, 1, 0); \
72848 float64x1_t __ret_303; \
72849 float64_t __x_303 = __noswap_vget_lane_f64(__s0_303, 0); \
72850 float64_t __y_303 = __noswap_vgetq_lane_f64(__rev1_303, __p2_303); \
72851 float64_t __z_303 = __noswap_vmulxd_f64(__x_303, __y_303); \
72852 __ret_303 = __noswap_vset_lane_f64(__z_303, __s0_303, 0); \
72853 __ret_303; \
73416#define vmulx_laneq_f64(__p0_335, __p1_335, __p2_335) __extension__ ({ \
73417 float64x1_t __s0_335 = __p0_335; \
73418 float64x2_t __s1_335 = __p1_335; \
73419 float64x2_t __rev1_335; __rev1_335 = __builtin_shufflevector(__s1_335, __s1_335, 1, 0); \
73420 float64x1_t __ret_335; \
73421 float64_t __x_335 = __noswap_vget_lane_f64(__s0_335, 0); \
73422 float64_t __y_335 = __noswap_vgetq_lane_f64(__rev1_335, __p2_335); \
73423 float64_t __z_335 = __noswap_vmulxd_f64(__x_335, __y_335); \
73424 __ret_335 = __noswap_vset_lane_f64(__z_335, __s0_335, 0); \
73425 __ret_335; \
7285473426})
7285573427#endif
7285673428
c_headers/avx512bwintrin.h+518-321
......@@ -32,7 +32,216 @@ typedef unsigned int __mmask32;
3232typedef unsigned long long __mmask64;
3333
3434/* Define the default attributes for the functions in this file. */
35#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512)))
35#define __DEFAULT_FN_ATTRS512 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw"), __min_vector_width__(512)))
36#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512bw")))
37
38static __inline __mmask32 __DEFAULT_FN_ATTRS
39_knot_mask32(__mmask32 __M)
40{
41 return __builtin_ia32_knotsi(__M);
42}
43
44static __inline __mmask64 __DEFAULT_FN_ATTRS
45_knot_mask64(__mmask64 __M)
46{
47 return __builtin_ia32_knotdi(__M);
48}
49
50static __inline__ __mmask32 __DEFAULT_FN_ATTRS
51_kand_mask32(__mmask32 __A, __mmask32 __B)
52{
53 return (__mmask32)__builtin_ia32_kandsi((__mmask32)__A, (__mmask32)__B);
54}
55
56static __inline__ __mmask64 __DEFAULT_FN_ATTRS
57_kand_mask64(__mmask64 __A, __mmask64 __B)
58{
59 return (__mmask64)__builtin_ia32_kanddi((__mmask64)__A, (__mmask64)__B);
60}
61
62static __inline__ __mmask32 __DEFAULT_FN_ATTRS
63_kandn_mask32(__mmask32 __A, __mmask32 __B)
64{
65 return (__mmask32)__builtin_ia32_kandnsi((__mmask32)__A, (__mmask32)__B);
66}
67
68static __inline__ __mmask64 __DEFAULT_FN_ATTRS
69_kandn_mask64(__mmask64 __A, __mmask64 __B)
70{
71 return (__mmask64)__builtin_ia32_kandndi((__mmask64)__A, (__mmask64)__B);
72}
73
74static __inline__ __mmask32 __DEFAULT_FN_ATTRS
75_kor_mask32(__mmask32 __A, __mmask32 __B)
76{
77 return (__mmask32)__builtin_ia32_korsi((__mmask32)__A, (__mmask32)__B);
78}
79
80static __inline__ __mmask64 __DEFAULT_FN_ATTRS
81_kor_mask64(__mmask64 __A, __mmask64 __B)
82{
83 return (__mmask64)__builtin_ia32_kordi((__mmask64)__A, (__mmask64)__B);
84}
85
86static __inline__ __mmask32 __DEFAULT_FN_ATTRS
87_kxnor_mask32(__mmask32 __A, __mmask32 __B)
88{
89 return (__mmask32)__builtin_ia32_kxnorsi((__mmask32)__A, (__mmask32)__B);
90}
91
92static __inline__ __mmask64 __DEFAULT_FN_ATTRS
93_kxnor_mask64(__mmask64 __A, __mmask64 __B)
94{
95 return (__mmask64)__builtin_ia32_kxnordi((__mmask64)__A, (__mmask64)__B);
96}
97
98static __inline__ __mmask32 __DEFAULT_FN_ATTRS
99_kxor_mask32(__mmask32 __A, __mmask32 __B)
100{
101 return (__mmask32)__builtin_ia32_kxorsi((__mmask32)__A, (__mmask32)__B);
102}
103
104static __inline__ __mmask64 __DEFAULT_FN_ATTRS
105_kxor_mask64(__mmask64 __A, __mmask64 __B)
106{
107 return (__mmask64)__builtin_ia32_kxordi((__mmask64)__A, (__mmask64)__B);
108}
109
110static __inline__ unsigned char __DEFAULT_FN_ATTRS
111_kortestc_mask32_u8(__mmask32 __A, __mmask32 __B)
112{
113 return (unsigned char)__builtin_ia32_kortestcsi(__A, __B);
114}
115
116static __inline__ unsigned char __DEFAULT_FN_ATTRS
117_kortestz_mask32_u8(__mmask32 __A, __mmask32 __B)
118{
119 return (unsigned char)__builtin_ia32_kortestzsi(__A, __B);
120}
121
122static __inline__ unsigned char __DEFAULT_FN_ATTRS
123_kortest_mask32_u8(__mmask32 __A, __mmask32 __B, unsigned char *__C) {
124 *__C = (unsigned char)__builtin_ia32_kortestcsi(__A, __B);
125 return (unsigned char)__builtin_ia32_kortestzsi(__A, __B);
126}
127
128static __inline__ unsigned char __DEFAULT_FN_ATTRS
129_kortestc_mask64_u8(__mmask64 __A, __mmask64 __B)
130{
131 return (unsigned char)__builtin_ia32_kortestcdi(__A, __B);
132}
133
134static __inline__ unsigned char __DEFAULT_FN_ATTRS
135_kortestz_mask64_u8(__mmask64 __A, __mmask64 __B)
136{
137 return (unsigned char)__builtin_ia32_kortestzdi(__A, __B);
138}
139
140static __inline__ unsigned char __DEFAULT_FN_ATTRS
141_kortest_mask64_u8(__mmask64 __A, __mmask64 __B, unsigned char *__C) {
142 *__C = (unsigned char)__builtin_ia32_kortestcdi(__A, __B);
143 return (unsigned char)__builtin_ia32_kortestzdi(__A, __B);
144}
145
146static __inline__ unsigned char __DEFAULT_FN_ATTRS
147_ktestc_mask32_u8(__mmask32 __A, __mmask32 __B)
148{
149 return (unsigned char)__builtin_ia32_ktestcsi(__A, __B);
150}
151
152static __inline__ unsigned char __DEFAULT_FN_ATTRS
153_ktestz_mask32_u8(__mmask32 __A, __mmask32 __B)
154{
155 return (unsigned char)__builtin_ia32_ktestzsi(__A, __B);
156}
157
158static __inline__ unsigned char __DEFAULT_FN_ATTRS
159_ktest_mask32_u8(__mmask32 __A, __mmask32 __B, unsigned char *__C) {
160 *__C = (unsigned char)__builtin_ia32_ktestcsi(__A, __B);
161 return (unsigned char)__builtin_ia32_ktestzsi(__A, __B);
162}
163
164static __inline__ unsigned char __DEFAULT_FN_ATTRS
165_ktestc_mask64_u8(__mmask64 __A, __mmask64 __B)
166{
167 return (unsigned char)__builtin_ia32_ktestcdi(__A, __B);
168}
169
170static __inline__ unsigned char __DEFAULT_FN_ATTRS
171_ktestz_mask64_u8(__mmask64 __A, __mmask64 __B)
172{
173 return (unsigned char)__builtin_ia32_ktestzdi(__A, __B);
174}
175
176static __inline__ unsigned char __DEFAULT_FN_ATTRS
177_ktest_mask64_u8(__mmask64 __A, __mmask64 __B, unsigned char *__C) {
178 *__C = (unsigned char)__builtin_ia32_ktestcdi(__A, __B);
179 return (unsigned char)__builtin_ia32_ktestzdi(__A, __B);
180}
181
182static __inline__ __mmask32 __DEFAULT_FN_ATTRS
183_kadd_mask32(__mmask32 __A, __mmask32 __B)
184{
185 return (__mmask32)__builtin_ia32_kaddsi((__mmask32)__A, (__mmask32)__B);
186}
187
188static __inline__ __mmask64 __DEFAULT_FN_ATTRS
189_kadd_mask64(__mmask64 __A, __mmask64 __B)
190{
191 return (__mmask64)__builtin_ia32_kadddi((__mmask64)__A, (__mmask64)__B);
192}
193
194#define _kshiftli_mask32(A, I) \
195 (__mmask32)__builtin_ia32_kshiftlisi((__mmask32)(A), (unsigned int)(I))
196
197#define _kshiftri_mask32(A, I) \
198 (__mmask32)__builtin_ia32_kshiftrisi((__mmask32)(A), (unsigned int)(I))
199
200#define _kshiftli_mask64(A, I) \
201 (__mmask64)__builtin_ia32_kshiftlidi((__mmask64)(A), (unsigned int)(I))
202
203#define _kshiftri_mask64(A, I) \
204 (__mmask64)__builtin_ia32_kshiftridi((__mmask64)(A), (unsigned int)(I))
205
206static __inline__ unsigned int __DEFAULT_FN_ATTRS
207_cvtmask32_u32(__mmask32 __A) {
208 return (unsigned int)__builtin_ia32_kmovd((__mmask32)__A);
209}
210
211static __inline__ unsigned long long __DEFAULT_FN_ATTRS
212_cvtmask64_u64(__mmask64 __A) {
213 return (unsigned long long)__builtin_ia32_kmovq((__mmask64)__A);
214}
215
216static __inline__ __mmask32 __DEFAULT_FN_ATTRS
217_cvtu32_mask32(unsigned int __A) {
218 return (__mmask32)__builtin_ia32_kmovd((__mmask32)__A);
219}
220
221static __inline__ __mmask64 __DEFAULT_FN_ATTRS
222_cvtu64_mask64(unsigned long long __A) {
223 return (__mmask64)__builtin_ia32_kmovq((__mmask64)__A);
224}
225
226static __inline__ __mmask32 __DEFAULT_FN_ATTRS
227_load_mask32(__mmask32 *__A) {
228 return (__mmask32)__builtin_ia32_kmovd(*(__mmask32 *)__A);
229}
230
231static __inline__ __mmask64 __DEFAULT_FN_ATTRS
232_load_mask64(__mmask64 *__A) {
233 return (__mmask64)__builtin_ia32_kmovq(*(__mmask64 *)__A);
234}
235
236static __inline__ void __DEFAULT_FN_ATTRS
237_store_mask32(__mmask32 *__A, __mmask32 __B) {
238 *(__mmask32 *)__A = __builtin_ia32_kmovd((__mmask32)__B);
239}
240
241static __inline__ void __DEFAULT_FN_ATTRS
242_store_mask64(__mmask64 *__A, __mmask64 __B) {
243 *(__mmask64 *)__A = __builtin_ia32_kmovq((__mmask64)__B);
244}
36245
37246/* Integer compare */
38247
......@@ -176,102 +385,102 @@ typedef unsigned long long __mmask64;
176385#define _mm512_mask_cmpneq_epu16_mask(k, A, B) \
177386 _mm512_mask_cmp_epu16_mask((k), (A), (B), _MM_CMPINT_NE)
178387
179static __inline__ __m512i __DEFAULT_FN_ATTRS
388static __inline__ __m512i __DEFAULT_FN_ATTRS512
180389_mm512_add_epi8 (__m512i __A, __m512i __B) {
181390 return (__m512i) ((__v64qu) __A + (__v64qu) __B);
182391}
183392
184static __inline__ __m512i __DEFAULT_FN_ATTRS
393static __inline__ __m512i __DEFAULT_FN_ATTRS512
185394_mm512_mask_add_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
186395 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
187396 (__v64qi)_mm512_add_epi8(__A, __B),
188397 (__v64qi)__W);
189398}
190399
191static __inline__ __m512i __DEFAULT_FN_ATTRS
400static __inline__ __m512i __DEFAULT_FN_ATTRS512
192401_mm512_maskz_add_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
193402 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
194403 (__v64qi)_mm512_add_epi8(__A, __B),
195404 (__v64qi)_mm512_setzero_si512());
196405}
197406
198static __inline__ __m512i __DEFAULT_FN_ATTRS
407static __inline__ __m512i __DEFAULT_FN_ATTRS512
199408_mm512_sub_epi8 (__m512i __A, __m512i __B) {
200409 return (__m512i) ((__v64qu) __A - (__v64qu) __B);
201410}
202411
203static __inline__ __m512i __DEFAULT_FN_ATTRS
412static __inline__ __m512i __DEFAULT_FN_ATTRS512
204413_mm512_mask_sub_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
205414 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
206415 (__v64qi)_mm512_sub_epi8(__A, __B),
207416 (__v64qi)__W);
208417}
209418
210static __inline__ __m512i __DEFAULT_FN_ATTRS
419static __inline__ __m512i __DEFAULT_FN_ATTRS512
211420_mm512_maskz_sub_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
212421 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
213422 (__v64qi)_mm512_sub_epi8(__A, __B),
214423 (__v64qi)_mm512_setzero_si512());
215424}
216425
217static __inline__ __m512i __DEFAULT_FN_ATTRS
426static __inline__ __m512i __DEFAULT_FN_ATTRS512
218427_mm512_add_epi16 (__m512i __A, __m512i __B) {
219428 return (__m512i) ((__v32hu) __A + (__v32hu) __B);
220429}
221430
222static __inline__ __m512i __DEFAULT_FN_ATTRS
431static __inline__ __m512i __DEFAULT_FN_ATTRS512
223432_mm512_mask_add_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
224433 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
225434 (__v32hi)_mm512_add_epi16(__A, __B),
226435 (__v32hi)__W);
227436}
228437
229static __inline__ __m512i __DEFAULT_FN_ATTRS
438static __inline__ __m512i __DEFAULT_FN_ATTRS512
230439_mm512_maskz_add_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
231440 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
232441 (__v32hi)_mm512_add_epi16(__A, __B),
233442 (__v32hi)_mm512_setzero_si512());
234443}
235444
236static __inline__ __m512i __DEFAULT_FN_ATTRS
445static __inline__ __m512i __DEFAULT_FN_ATTRS512
237446_mm512_sub_epi16 (__m512i __A, __m512i __B) {
238447 return (__m512i) ((__v32hu) __A - (__v32hu) __B);
239448}
240449
241static __inline__ __m512i __DEFAULT_FN_ATTRS
450static __inline__ __m512i __DEFAULT_FN_ATTRS512
242451_mm512_mask_sub_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
243452 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
244453 (__v32hi)_mm512_sub_epi16(__A, __B),
245454 (__v32hi)__W);
246455}
247456
248static __inline__ __m512i __DEFAULT_FN_ATTRS
457static __inline__ __m512i __DEFAULT_FN_ATTRS512
249458_mm512_maskz_sub_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
250459 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
251460 (__v32hi)_mm512_sub_epi16(__A, __B),
252461 (__v32hi)_mm512_setzero_si512());
253462}
254463
255static __inline__ __m512i __DEFAULT_FN_ATTRS
464static __inline__ __m512i __DEFAULT_FN_ATTRS512
256465_mm512_mullo_epi16 (__m512i __A, __m512i __B) {
257466 return (__m512i) ((__v32hu) __A * (__v32hu) __B);
258467}
259468
260static __inline__ __m512i __DEFAULT_FN_ATTRS
469static __inline__ __m512i __DEFAULT_FN_ATTRS512
261470_mm512_mask_mullo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
262471 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
263472 (__v32hi)_mm512_mullo_epi16(__A, __B),
264473 (__v32hi)__W);
265474}
266475
267static __inline__ __m512i __DEFAULT_FN_ATTRS
476static __inline__ __m512i __DEFAULT_FN_ATTRS512
268477_mm512_maskz_mullo_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
269478 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
270479 (__v32hi)_mm512_mullo_epi16(__A, __B),
271480 (__v32hi)_mm512_setzero_si512());
272481}
273482
274static __inline__ __m512i __DEFAULT_FN_ATTRS
483static __inline__ __m512i __DEFAULT_FN_ATTRS512
275484_mm512_mask_blend_epi8 (__mmask64 __U, __m512i __A, __m512i __W)
276485{
277486 return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,
......@@ -279,7 +488,7 @@ _mm512_mask_blend_epi8 (__mmask64 __U, __m512i __A, __m512i __W)
279488 (__v64qi) __A);
280489}
281490
282static __inline__ __m512i __DEFAULT_FN_ATTRS
491static __inline__ __m512i __DEFAULT_FN_ATTRS512
283492_mm512_mask_blend_epi16 (__mmask32 __U, __m512i __A, __m512i __W)
284493{
285494 return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,
......@@ -287,13 +496,13 @@ _mm512_mask_blend_epi16 (__mmask32 __U, __m512i __A, __m512i __W)
287496 (__v32hi) __A);
288497}
289498
290static __inline__ __m512i __DEFAULT_FN_ATTRS
499static __inline__ __m512i __DEFAULT_FN_ATTRS512
291500_mm512_abs_epi8 (__m512i __A)
292501{
293502 return (__m512i)__builtin_ia32_pabsb512((__v64qi)__A);
294503}
295504
296static __inline__ __m512i __DEFAULT_FN_ATTRS
505static __inline__ __m512i __DEFAULT_FN_ATTRS512
297506_mm512_mask_abs_epi8 (__m512i __W, __mmask64 __U, __m512i __A)
298507{
299508 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
......@@ -301,7 +510,7 @@ _mm512_mask_abs_epi8 (__m512i __W, __mmask64 __U, __m512i __A)
301510 (__v64qi)__W);
302511}
303512
304static __inline__ __m512i __DEFAULT_FN_ATTRS
513static __inline__ __m512i __DEFAULT_FN_ATTRS512
305514_mm512_maskz_abs_epi8 (__mmask64 __U, __m512i __A)
306515{
307516 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
......@@ -309,13 +518,13 @@ _mm512_maskz_abs_epi8 (__mmask64 __U, __m512i __A)
309518 (__v64qi)_mm512_setzero_si512());
310519}
311520
312static __inline__ __m512i __DEFAULT_FN_ATTRS
521static __inline__ __m512i __DEFAULT_FN_ATTRS512
313522_mm512_abs_epi16 (__m512i __A)
314523{
315524 return (__m512i)__builtin_ia32_pabsw512((__v32hi)__A);
316525}
317526
318static __inline__ __m512i __DEFAULT_FN_ATTRS
527static __inline__ __m512i __DEFAULT_FN_ATTRS512
319528_mm512_mask_abs_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
320529{
321530 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -323,7 +532,7 @@ _mm512_mask_abs_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
323532 (__v32hi)__W);
324533}
325534
326static __inline__ __m512i __DEFAULT_FN_ATTRS
535static __inline__ __m512i __DEFAULT_FN_ATTRS512
327536_mm512_maskz_abs_epi16 (__mmask32 __U, __m512i __A)
328537{
329538 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -331,13 +540,13 @@ _mm512_maskz_abs_epi16 (__mmask32 __U, __m512i __A)
331540 (__v32hi)_mm512_setzero_si512());
332541}
333542
334static __inline__ __m512i __DEFAULT_FN_ATTRS
543static __inline__ __m512i __DEFAULT_FN_ATTRS512
335544_mm512_packs_epi32(__m512i __A, __m512i __B)
336545{
337546 return (__m512i)__builtin_ia32_packssdw512((__v16si)__A, (__v16si)__B);
338547}
339548
340static __inline__ __m512i __DEFAULT_FN_ATTRS
549static __inline__ __m512i __DEFAULT_FN_ATTRS512
341550_mm512_maskz_packs_epi32(__mmask32 __M, __m512i __A, __m512i __B)
342551{
343552 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
......@@ -345,7 +554,7 @@ _mm512_maskz_packs_epi32(__mmask32 __M, __m512i __A, __m512i __B)
345554 (__v32hi)_mm512_setzero_si512());
346555}
347556
348static __inline__ __m512i __DEFAULT_FN_ATTRS
557static __inline__ __m512i __DEFAULT_FN_ATTRS512
349558_mm512_mask_packs_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
350559{
351560 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
......@@ -353,13 +562,13 @@ _mm512_mask_packs_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
353562 (__v32hi)__W);
354563}
355564
356static __inline__ __m512i __DEFAULT_FN_ATTRS
565static __inline__ __m512i __DEFAULT_FN_ATTRS512
357566_mm512_packs_epi16(__m512i __A, __m512i __B)
358567{
359568 return (__m512i)__builtin_ia32_packsswb512((__v32hi)__A, (__v32hi) __B);
360569}
361570
362static __inline__ __m512i __DEFAULT_FN_ATTRS
571static __inline__ __m512i __DEFAULT_FN_ATTRS512
363572_mm512_mask_packs_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
364573{
365574 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
......@@ -367,7 +576,7 @@ _mm512_mask_packs_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
367576 (__v64qi)__W);
368577}
369578
370static __inline__ __m512i __DEFAULT_FN_ATTRS
579static __inline__ __m512i __DEFAULT_FN_ATTRS512
371580_mm512_maskz_packs_epi16(__mmask64 __M, __m512i __A, __m512i __B)
372581{
373582 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
......@@ -375,13 +584,13 @@ _mm512_maskz_packs_epi16(__mmask64 __M, __m512i __A, __m512i __B)
375584 (__v64qi)_mm512_setzero_si512());
376585}
377586
378static __inline__ __m512i __DEFAULT_FN_ATTRS
587static __inline__ __m512i __DEFAULT_FN_ATTRS512
379588_mm512_packus_epi32(__m512i __A, __m512i __B)
380589{
381590 return (__m512i)__builtin_ia32_packusdw512((__v16si) __A, (__v16si) __B);
382591}
383592
384static __inline__ __m512i __DEFAULT_FN_ATTRS
593static __inline__ __m512i __DEFAULT_FN_ATTRS512
385594_mm512_maskz_packus_epi32(__mmask32 __M, __m512i __A, __m512i __B)
386595{
387596 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
......@@ -389,7 +598,7 @@ _mm512_maskz_packus_epi32(__mmask32 __M, __m512i __A, __m512i __B)
389598 (__v32hi)_mm512_setzero_si512());
390599}
391600
392static __inline__ __m512i __DEFAULT_FN_ATTRS
601static __inline__ __m512i __DEFAULT_FN_ATTRS512
393602_mm512_mask_packus_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
394603{
395604 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
......@@ -397,13 +606,13 @@ _mm512_mask_packus_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
397606 (__v32hi)__W);
398607}
399608
400static __inline__ __m512i __DEFAULT_FN_ATTRS
609static __inline__ __m512i __DEFAULT_FN_ATTRS512
401610_mm512_packus_epi16(__m512i __A, __m512i __B)
402611{
403612 return (__m512i)__builtin_ia32_packuswb512((__v32hi) __A, (__v32hi) __B);
404613}
405614
406static __inline__ __m512i __DEFAULT_FN_ATTRS
615static __inline__ __m512i __DEFAULT_FN_ATTRS512
407616_mm512_mask_packus_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
408617{
409618 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
......@@ -411,7 +620,7 @@ _mm512_mask_packus_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
411620 (__v64qi)__W);
412621}
413622
414static __inline__ __m512i __DEFAULT_FN_ATTRS
623static __inline__ __m512i __DEFAULT_FN_ATTRS512
415624_mm512_maskz_packus_epi16(__mmask64 __M, __m512i __A, __m512i __B)
416625{
417626 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
......@@ -419,119 +628,95 @@ _mm512_maskz_packus_epi16(__mmask64 __M, __m512i __A, __m512i __B)
419628 (__v64qi)_mm512_setzero_si512());
420629}
421630
422static __inline__ __m512i __DEFAULT_FN_ATTRS
631static __inline__ __m512i __DEFAULT_FN_ATTRS512
423632_mm512_adds_epi8 (__m512i __A, __m512i __B)
424633{
425 return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
426 (__v64qi) __B,
427 (__v64qi) _mm512_setzero_si512(),
428 (__mmask64) -1);
634 return (__m512i)__builtin_ia32_paddsb512((__v64qi)__A, (__v64qi)__B);
429635}
430636
431static __inline__ __m512i __DEFAULT_FN_ATTRS
432_mm512_mask_adds_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
433 __m512i __B)
637static __inline__ __m512i __DEFAULT_FN_ATTRS512
638_mm512_mask_adds_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
434639{
435 return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
436 (__v64qi) __B,
437 (__v64qi) __W,
438 (__mmask64) __U);
640 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
641 (__v64qi)_mm512_adds_epi8(__A, __B),
642 (__v64qi)__W);
439643}
440644
441static __inline__ __m512i __DEFAULT_FN_ATTRS
645static __inline__ __m512i __DEFAULT_FN_ATTRS512
442646_mm512_maskz_adds_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
443647{
444 return (__m512i) __builtin_ia32_paddsb512_mask ((__v64qi) __A,
445 (__v64qi) __B,
446 (__v64qi) _mm512_setzero_si512(),
447 (__mmask64) __U);
648 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
649 (__v64qi)_mm512_adds_epi8(__A, __B),
650 (__v64qi)_mm512_setzero_si512());
448651}
449652
450static __inline__ __m512i __DEFAULT_FN_ATTRS
653static __inline__ __m512i __DEFAULT_FN_ATTRS512
451654_mm512_adds_epi16 (__m512i __A, __m512i __B)
452655{
453 return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
454 (__v32hi) __B,
455 (__v32hi) _mm512_setzero_si512(),
456 (__mmask32) -1);
656 return (__m512i)__builtin_ia32_paddsw512((__v32hi)__A, (__v32hi)__B);
457657}
458658
459static __inline__ __m512i __DEFAULT_FN_ATTRS
460_mm512_mask_adds_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
461 __m512i __B)
659static __inline__ __m512i __DEFAULT_FN_ATTRS512
660_mm512_mask_adds_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
462661{
463 return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
464 (__v32hi) __B,
465 (__v32hi) __W,
466 (__mmask32) __U);
662 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
663 (__v32hi)_mm512_adds_epi16(__A, __B),
664 (__v32hi)__W);
467665}
468666
469static __inline__ __m512i __DEFAULT_FN_ATTRS
667static __inline__ __m512i __DEFAULT_FN_ATTRS512
470668_mm512_maskz_adds_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
471669{
472 return (__m512i) __builtin_ia32_paddsw512_mask ((__v32hi) __A,
473 (__v32hi) __B,
474 (__v32hi) _mm512_setzero_si512(),
475 (__mmask32) __U);
670 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
671 (__v32hi)_mm512_adds_epi16(__A, __B),
672 (__v32hi)_mm512_setzero_si512());
476673}
477674
478static __inline__ __m512i __DEFAULT_FN_ATTRS
675static __inline__ __m512i __DEFAULT_FN_ATTRS512
479676_mm512_adds_epu8 (__m512i __A, __m512i __B)
480677{
481 return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
482 (__v64qi) __B,
483 (__v64qi) _mm512_setzero_si512(),
484 (__mmask64) -1);
678 return (__m512i)__builtin_ia32_paddusb512((__v64qi) __A, (__v64qi) __B);
485679}
486680
487static __inline__ __m512i __DEFAULT_FN_ATTRS
488_mm512_mask_adds_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
489 __m512i __B)
681static __inline__ __m512i __DEFAULT_FN_ATTRS512
682_mm512_mask_adds_epu8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
490683{
491 return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
492 (__v64qi) __B,
493 (__v64qi) __W,
494 (__mmask64) __U);
684 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
685 (__v64qi)_mm512_adds_epu8(__A, __B),
686 (__v64qi)__W);
495687}
496688
497static __inline__ __m512i __DEFAULT_FN_ATTRS
689static __inline__ __m512i __DEFAULT_FN_ATTRS512
498690_mm512_maskz_adds_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
499691{
500 return (__m512i) __builtin_ia32_paddusb512_mask ((__v64qi) __A,
501 (__v64qi) __B,
502 (__v64qi) _mm512_setzero_si512(),
503 (__mmask64) __U);
692 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
693 (__v64qi)_mm512_adds_epu8(__A, __B),
694 (__v64qi)_mm512_setzero_si512());
504695}
505696
506static __inline__ __m512i __DEFAULT_FN_ATTRS
697static __inline__ __m512i __DEFAULT_FN_ATTRS512
507698_mm512_adds_epu16 (__m512i __A, __m512i __B)
508699{
509 return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
510 (__v32hi) __B,
511 (__v32hi) _mm512_setzero_si512(),
512 (__mmask32) -1);
700 return (__m512i)__builtin_ia32_paddusw512((__v32hi) __A, (__v32hi) __B);
513701}
514702
515static __inline__ __m512i __DEFAULT_FN_ATTRS
516_mm512_mask_adds_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
517 __m512i __B)
703static __inline__ __m512i __DEFAULT_FN_ATTRS512
704_mm512_mask_adds_epu16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
518705{
519 return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
520 (__v32hi) __B,
521 (__v32hi) __W,
522 (__mmask32) __U);
706 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
707 (__v32hi)_mm512_adds_epu16(__A, __B),
708 (__v32hi)__W);
523709}
524710
525static __inline__ __m512i __DEFAULT_FN_ATTRS
711static __inline__ __m512i __DEFAULT_FN_ATTRS512
526712_mm512_maskz_adds_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
527713{
528 return (__m512i) __builtin_ia32_paddusw512_mask ((__v32hi) __A,
529 (__v32hi) __B,
530 (__v32hi) _mm512_setzero_si512(),
531 (__mmask32) __U);
714 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
715 (__v32hi)_mm512_adds_epu16(__A, __B),
716 (__v32hi)_mm512_setzero_si512());
532717}
533718
534static __inline__ __m512i __DEFAULT_FN_ATTRS
719static __inline__ __m512i __DEFAULT_FN_ATTRS512
535720_mm512_avg_epu8 (__m512i __A, __m512i __B)
536721{
537722 typedef unsigned short __v64hu __attribute__((__vector_size__(128)));
......@@ -541,7 +726,7 @@ _mm512_avg_epu8 (__m512i __A, __m512i __B)
541726 >> 1, __v64qu);
542727}
543728
544static __inline__ __m512i __DEFAULT_FN_ATTRS
729static __inline__ __m512i __DEFAULT_FN_ATTRS512
545730_mm512_mask_avg_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
546731 __m512i __B)
547732{
......@@ -550,7 +735,7 @@ _mm512_mask_avg_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
550735 (__v64qi)__W);
551736}
552737
553static __inline__ __m512i __DEFAULT_FN_ATTRS
738static __inline__ __m512i __DEFAULT_FN_ATTRS512
554739_mm512_maskz_avg_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
555740{
556741 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
......@@ -558,7 +743,7 @@ _mm512_maskz_avg_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
558743 (__v64qi)_mm512_setzero_si512());
559744}
560745
561static __inline__ __m512i __DEFAULT_FN_ATTRS
746static __inline__ __m512i __DEFAULT_FN_ATTRS512
562747_mm512_avg_epu16 (__m512i __A, __m512i __B)
563748{
564749 typedef unsigned int __v32su __attribute__((__vector_size__(128)));
......@@ -568,7 +753,7 @@ _mm512_avg_epu16 (__m512i __A, __m512i __B)
568753 >> 1, __v32hu);
569754}
570755
571static __inline__ __m512i __DEFAULT_FN_ATTRS
756static __inline__ __m512i __DEFAULT_FN_ATTRS512
572757_mm512_mask_avg_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
573758 __m512i __B)
574759{
......@@ -577,7 +762,7 @@ _mm512_mask_avg_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
577762 (__v32hi)__W);
578763}
579764
580static __inline__ __m512i __DEFAULT_FN_ATTRS
765static __inline__ __m512i __DEFAULT_FN_ATTRS512
581766_mm512_maskz_avg_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
582767{
583768 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -585,13 +770,13 @@ _mm512_maskz_avg_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
585770 (__v32hi) _mm512_setzero_si512());
586771}
587772
588static __inline__ __m512i __DEFAULT_FN_ATTRS
773static __inline__ __m512i __DEFAULT_FN_ATTRS512
589774_mm512_max_epi8 (__m512i __A, __m512i __B)
590775{
591776 return (__m512i)__builtin_ia32_pmaxsb512((__v64qi) __A, (__v64qi) __B);
592777}
593778
594static __inline__ __m512i __DEFAULT_FN_ATTRS
779static __inline__ __m512i __DEFAULT_FN_ATTRS512
595780_mm512_maskz_max_epi8 (__mmask64 __M, __m512i __A, __m512i __B)
596781{
597782 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
......@@ -599,7 +784,7 @@ _mm512_maskz_max_epi8 (__mmask64 __M, __m512i __A, __m512i __B)
599784 (__v64qi)_mm512_setzero_si512());
600785}
601786
602static __inline__ __m512i __DEFAULT_FN_ATTRS
787static __inline__ __m512i __DEFAULT_FN_ATTRS512
603788_mm512_mask_max_epi8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
604789{
605790 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
......@@ -607,13 +792,13 @@ _mm512_mask_max_epi8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
607792 (__v64qi)__W);
608793}
609794
610static __inline__ __m512i __DEFAULT_FN_ATTRS
795static __inline__ __m512i __DEFAULT_FN_ATTRS512
611796_mm512_max_epi16 (__m512i __A, __m512i __B)
612797{
613798 return (__m512i)__builtin_ia32_pmaxsw512((__v32hi) __A, (__v32hi) __B);
614799}
615800
616static __inline__ __m512i __DEFAULT_FN_ATTRS
801static __inline__ __m512i __DEFAULT_FN_ATTRS512
617802_mm512_maskz_max_epi16 (__mmask32 __M, __m512i __A, __m512i __B)
618803{
619804 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
......@@ -621,7 +806,7 @@ _mm512_maskz_max_epi16 (__mmask32 __M, __m512i __A, __m512i __B)
621806 (__v32hi)_mm512_setzero_si512());
622807}
623808
624static __inline__ __m512i __DEFAULT_FN_ATTRS
809static __inline__ __m512i __DEFAULT_FN_ATTRS512
625810_mm512_mask_max_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
626811 __m512i __B)
627812{
......@@ -630,13 +815,13 @@ _mm512_mask_max_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
630815 (__v32hi)__W);
631816}
632817
633static __inline__ __m512i __DEFAULT_FN_ATTRS
818static __inline__ __m512i __DEFAULT_FN_ATTRS512
634819_mm512_max_epu8 (__m512i __A, __m512i __B)
635820{
636821 return (__m512i)__builtin_ia32_pmaxub512((__v64qi)__A, (__v64qi)__B);
637822}
638823
639static __inline__ __m512i __DEFAULT_FN_ATTRS
824static __inline__ __m512i __DEFAULT_FN_ATTRS512
640825_mm512_maskz_max_epu8 (__mmask64 __M, __m512i __A, __m512i __B)
641826{
642827 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
......@@ -644,7 +829,7 @@ _mm512_maskz_max_epu8 (__mmask64 __M, __m512i __A, __m512i __B)
644829 (__v64qi)_mm512_setzero_si512());
645830}
646831
647static __inline__ __m512i __DEFAULT_FN_ATTRS
832static __inline__ __m512i __DEFAULT_FN_ATTRS512
648833_mm512_mask_max_epu8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
649834{
650835 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
......@@ -652,13 +837,13 @@ _mm512_mask_max_epu8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
652837 (__v64qi)__W);
653838}
654839
655static __inline__ __m512i __DEFAULT_FN_ATTRS
840static __inline__ __m512i __DEFAULT_FN_ATTRS512
656841_mm512_max_epu16 (__m512i __A, __m512i __B)
657842{
658843 return (__m512i)__builtin_ia32_pmaxuw512((__v32hi)__A, (__v32hi)__B);
659844}
660845
661static __inline__ __m512i __DEFAULT_FN_ATTRS
846static __inline__ __m512i __DEFAULT_FN_ATTRS512
662847_mm512_maskz_max_epu16 (__mmask32 __M, __m512i __A, __m512i __B)
663848{
664849 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
......@@ -666,7 +851,7 @@ _mm512_maskz_max_epu16 (__mmask32 __M, __m512i __A, __m512i __B)
666851 (__v32hi)_mm512_setzero_si512());
667852}
668853
669static __inline__ __m512i __DEFAULT_FN_ATTRS
854static __inline__ __m512i __DEFAULT_FN_ATTRS512
670855_mm512_mask_max_epu16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
671856{
672857 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
......@@ -674,13 +859,13 @@ _mm512_mask_max_epu16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
674859 (__v32hi)__W);
675860}
676861
677static __inline__ __m512i __DEFAULT_FN_ATTRS
862static __inline__ __m512i __DEFAULT_FN_ATTRS512
678863_mm512_min_epi8 (__m512i __A, __m512i __B)
679864{
680865 return (__m512i)__builtin_ia32_pminsb512((__v64qi) __A, (__v64qi) __B);
681866}
682867
683static __inline__ __m512i __DEFAULT_FN_ATTRS
868static __inline__ __m512i __DEFAULT_FN_ATTRS512
684869_mm512_maskz_min_epi8 (__mmask64 __M, __m512i __A, __m512i __B)
685870{
686871 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
......@@ -688,7 +873,7 @@ _mm512_maskz_min_epi8 (__mmask64 __M, __m512i __A, __m512i __B)
688873 (__v64qi)_mm512_setzero_si512());
689874}
690875
691static __inline__ __m512i __DEFAULT_FN_ATTRS
876static __inline__ __m512i __DEFAULT_FN_ATTRS512
692877_mm512_mask_min_epi8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
693878{
694879 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
......@@ -696,13 +881,13 @@ _mm512_mask_min_epi8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
696881 (__v64qi)__W);
697882}
698883
699static __inline__ __m512i __DEFAULT_FN_ATTRS
884static __inline__ __m512i __DEFAULT_FN_ATTRS512
700885_mm512_min_epi16 (__m512i __A, __m512i __B)
701886{
702887 return (__m512i)__builtin_ia32_pminsw512((__v32hi) __A, (__v32hi) __B);
703888}
704889
705static __inline__ __m512i __DEFAULT_FN_ATTRS
890static __inline__ __m512i __DEFAULT_FN_ATTRS512
706891_mm512_maskz_min_epi16 (__mmask32 __M, __m512i __A, __m512i __B)
707892{
708893 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
......@@ -710,7 +895,7 @@ _mm512_maskz_min_epi16 (__mmask32 __M, __m512i __A, __m512i __B)
710895 (__v32hi)_mm512_setzero_si512());
711896}
712897
713static __inline__ __m512i __DEFAULT_FN_ATTRS
898static __inline__ __m512i __DEFAULT_FN_ATTRS512
714899_mm512_mask_min_epi16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
715900{
716901 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
......@@ -718,13 +903,13 @@ _mm512_mask_min_epi16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
718903 (__v32hi)__W);
719904}
720905
721static __inline__ __m512i __DEFAULT_FN_ATTRS
906static __inline__ __m512i __DEFAULT_FN_ATTRS512
722907_mm512_min_epu8 (__m512i __A, __m512i __B)
723908{
724909 return (__m512i)__builtin_ia32_pminub512((__v64qi)__A, (__v64qi)__B);
725910}
726911
727static __inline__ __m512i __DEFAULT_FN_ATTRS
912static __inline__ __m512i __DEFAULT_FN_ATTRS512
728913_mm512_maskz_min_epu8 (__mmask64 __M, __m512i __A, __m512i __B)
729914{
730915 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
......@@ -732,7 +917,7 @@ _mm512_maskz_min_epu8 (__mmask64 __M, __m512i __A, __m512i __B)
732917 (__v64qi)_mm512_setzero_si512());
733918}
734919
735static __inline__ __m512i __DEFAULT_FN_ATTRS
920static __inline__ __m512i __DEFAULT_FN_ATTRS512
736921_mm512_mask_min_epu8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
737922{
738923 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
......@@ -740,13 +925,13 @@ _mm512_mask_min_epu8 (__m512i __W, __mmask64 __M, __m512i __A, __m512i __B)
740925 (__v64qi)__W);
741926}
742927
743static __inline__ __m512i __DEFAULT_FN_ATTRS
928static __inline__ __m512i __DEFAULT_FN_ATTRS512
744929_mm512_min_epu16 (__m512i __A, __m512i __B)
745930{
746931 return (__m512i)__builtin_ia32_pminuw512((__v32hi)__A, (__v32hi)__B);
747932}
748933
749static __inline__ __m512i __DEFAULT_FN_ATTRS
934static __inline__ __m512i __DEFAULT_FN_ATTRS512
750935_mm512_maskz_min_epu16 (__mmask32 __M, __m512i __A, __m512i __B)
751936{
752937 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
......@@ -754,7 +939,7 @@ _mm512_maskz_min_epu16 (__mmask32 __M, __m512i __A, __m512i __B)
754939 (__v32hi)_mm512_setzero_si512());
755940}
756941
757static __inline__ __m512i __DEFAULT_FN_ATTRS
942static __inline__ __m512i __DEFAULT_FN_ATTRS512
758943_mm512_mask_min_epu16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
759944{
760945 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__M,
......@@ -762,13 +947,13 @@ _mm512_mask_min_epu16 (__m512i __W, __mmask32 __M, __m512i __A, __m512i __B)
762947 (__v32hi)__W);
763948}
764949
765static __inline__ __m512i __DEFAULT_FN_ATTRS
950static __inline__ __m512i __DEFAULT_FN_ATTRS512
766951_mm512_shuffle_epi8(__m512i __A, __m512i __B)
767952{
768953 return (__m512i)__builtin_ia32_pshufb512((__v64qi)__A,(__v64qi)__B);
769954}
770955
771static __inline__ __m512i __DEFAULT_FN_ATTRS
956static __inline__ __m512i __DEFAULT_FN_ATTRS512
772957_mm512_mask_shuffle_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
773958{
774959 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
......@@ -776,7 +961,7 @@ _mm512_mask_shuffle_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
776961 (__v64qi)__W);
777962}
778963
779static __inline__ __m512i __DEFAULT_FN_ATTRS
964static __inline__ __m512i __DEFAULT_FN_ATTRS512
780965_mm512_maskz_shuffle_epi8(__mmask64 __U, __m512i __A, __m512i __B)
781966{
782967 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
......@@ -784,126 +969,102 @@ _mm512_maskz_shuffle_epi8(__mmask64 __U, __m512i __A, __m512i __B)
784969 (__v64qi)_mm512_setzero_si512());
785970}
786971
787static __inline__ __m512i __DEFAULT_FN_ATTRS
972static __inline__ __m512i __DEFAULT_FN_ATTRS512
788973_mm512_subs_epi8 (__m512i __A, __m512i __B)
789974{
790 return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
791 (__v64qi) __B,
792 (__v64qi) _mm512_setzero_si512(),
793 (__mmask64) -1);
975 return (__m512i)__builtin_ia32_psubsb512((__v64qi)__A, (__v64qi)__B);
794976}
795977
796static __inline__ __m512i __DEFAULT_FN_ATTRS
797_mm512_mask_subs_epi8 (__m512i __W, __mmask64 __U, __m512i __A,
798 __m512i __B)
978static __inline__ __m512i __DEFAULT_FN_ATTRS512
979_mm512_mask_subs_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
799980{
800 return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
801 (__v64qi) __B,
802 (__v64qi) __W,
803 (__mmask64) __U);
981 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
982 (__v64qi)_mm512_subs_epi8(__A, __B),
983 (__v64qi)__W);
804984}
805985
806static __inline__ __m512i __DEFAULT_FN_ATTRS
986static __inline__ __m512i __DEFAULT_FN_ATTRS512
807987_mm512_maskz_subs_epi8 (__mmask64 __U, __m512i __A, __m512i __B)
808988{
809 return (__m512i) __builtin_ia32_psubsb512_mask ((__v64qi) __A,
810 (__v64qi) __B,
811 (__v64qi) _mm512_setzero_si512(),
812 (__mmask64) __U);
989 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
990 (__v64qi)_mm512_subs_epi8(__A, __B),
991 (__v64qi)_mm512_setzero_si512());
813992}
814993
815static __inline__ __m512i __DEFAULT_FN_ATTRS
994static __inline__ __m512i __DEFAULT_FN_ATTRS512
816995_mm512_subs_epi16 (__m512i __A, __m512i __B)
817996{
818 return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
819 (__v32hi) __B,
820 (__v32hi) _mm512_setzero_si512(),
821 (__mmask32) -1);
997 return (__m512i)__builtin_ia32_psubsw512((__v32hi)__A, (__v32hi)__B);
822998}
823999
824static __inline__ __m512i __DEFAULT_FN_ATTRS
825_mm512_mask_subs_epi16 (__m512i __W, __mmask32 __U, __m512i __A,
826 __m512i __B)
1000static __inline__ __m512i __DEFAULT_FN_ATTRS512
1001_mm512_mask_subs_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
8271002{
828 return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
829 (__v32hi) __B,
830 (__v32hi) __W,
831 (__mmask32) __U);
1003 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1004 (__v32hi)_mm512_subs_epi16(__A, __B),
1005 (__v32hi)__W);
8321006}
8331007
834static __inline__ __m512i __DEFAULT_FN_ATTRS
1008static __inline__ __m512i __DEFAULT_FN_ATTRS512
8351009_mm512_maskz_subs_epi16 (__mmask32 __U, __m512i __A, __m512i __B)
8361010{
837 return (__m512i) __builtin_ia32_psubsw512_mask ((__v32hi) __A,
838 (__v32hi) __B,
839 (__v32hi) _mm512_setzero_si512(),
840 (__mmask32) __U);
1011 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1012 (__v32hi)_mm512_subs_epi16(__A, __B),
1013 (__v32hi)_mm512_setzero_si512());
8411014}
8421015
843static __inline__ __m512i __DEFAULT_FN_ATTRS
1016static __inline__ __m512i __DEFAULT_FN_ATTRS512
8441017_mm512_subs_epu8 (__m512i __A, __m512i __B)
8451018{
846 return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
847 (__v64qi) __B,
848 (__v64qi) _mm512_setzero_si512(),
849 (__mmask64) -1);
1019 return (__m512i)__builtin_ia32_psubusb512((__v64qi) __A, (__v64qi) __B);
8501020}
8511021
852static __inline__ __m512i __DEFAULT_FN_ATTRS
853_mm512_mask_subs_epu8 (__m512i __W, __mmask64 __U, __m512i __A,
854 __m512i __B)
1022static __inline__ __m512i __DEFAULT_FN_ATTRS512
1023_mm512_mask_subs_epu8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B)
8551024{
856 return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
857 (__v64qi) __B,
858 (__v64qi) __W,
859 (__mmask64) __U);
1025 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1026 (__v64qi)_mm512_subs_epu8(__A, __B),
1027 (__v64qi)__W);
8601028}
8611029
862static __inline__ __m512i __DEFAULT_FN_ATTRS
1030static __inline__ __m512i __DEFAULT_FN_ATTRS512
8631031_mm512_maskz_subs_epu8 (__mmask64 __U, __m512i __A, __m512i __B)
8641032{
865 return (__m512i) __builtin_ia32_psubusb512_mask ((__v64qi) __A,
866 (__v64qi) __B,
867 (__v64qi) _mm512_setzero_si512(),
868 (__mmask64) __U);
1033 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
1034 (__v64qi)_mm512_subs_epu8(__A, __B),
1035 (__v64qi)_mm512_setzero_si512());
8691036}
8701037
871static __inline__ __m512i __DEFAULT_FN_ATTRS
1038static __inline__ __m512i __DEFAULT_FN_ATTRS512
8721039_mm512_subs_epu16 (__m512i __A, __m512i __B)
8731040{
874 return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
875 (__v32hi) __B,
876 (__v32hi) _mm512_setzero_si512(),
877 (__mmask32) -1);
1041 return (__m512i)__builtin_ia32_psubusw512((__v32hi) __A, (__v32hi) __B);
8781042}
8791043
880static __inline__ __m512i __DEFAULT_FN_ATTRS
881_mm512_mask_subs_epu16 (__m512i __W, __mmask32 __U, __m512i __A,
882 __m512i __B)
1044static __inline__ __m512i __DEFAULT_FN_ATTRS512
1045_mm512_mask_subs_epu16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
8831046{
884 return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
885 (__v32hi) __B,
886 (__v32hi) __W,
887 (__mmask32) __U);
1047 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1048 (__v32hi)_mm512_subs_epu16(__A, __B),
1049 (__v32hi)__W);
8881050}
8891051
890static __inline__ __m512i __DEFAULT_FN_ATTRS
1052static __inline__ __m512i __DEFAULT_FN_ATTRS512
8911053_mm512_maskz_subs_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
8921054{
893 return (__m512i) __builtin_ia32_psubusw512_mask ((__v32hi) __A,
894 (__v32hi) __B,
895 (__v32hi) _mm512_setzero_si512(),
896 (__mmask32) __U);
1055 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
1056 (__v32hi)_mm512_subs_epu16(__A, __B),
1057 (__v32hi)_mm512_setzero_si512());
8971058}
8981059
899static __inline__ __m512i __DEFAULT_FN_ATTRS
1060static __inline__ __m512i __DEFAULT_FN_ATTRS512
9001061_mm512_permutex2var_epi16(__m512i __A, __m512i __I, __m512i __B)
9011062{
9021063 return (__m512i)__builtin_ia32_vpermi2varhi512((__v32hi)__A, (__v32hi)__I,
9031064 (__v32hi)__B);
9041065}
9051066
906static __inline__ __m512i __DEFAULT_FN_ATTRS
1067static __inline__ __m512i __DEFAULT_FN_ATTRS512
9071068_mm512_mask_permutex2var_epi16(__m512i __A, __mmask32 __U, __m512i __I,
9081069 __m512i __B)
9091070{
......@@ -912,7 +1073,7 @@ _mm512_mask_permutex2var_epi16(__m512i __A, __mmask32 __U, __m512i __I,
9121073 (__v32hi)__A);
9131074}
9141075
915static __inline__ __m512i __DEFAULT_FN_ATTRS
1076static __inline__ __m512i __DEFAULT_FN_ATTRS512
9161077_mm512_mask2_permutex2var_epi16(__m512i __A, __m512i __I, __mmask32 __U,
9171078 __m512i __B)
9181079{
......@@ -921,7 +1082,7 @@ _mm512_mask2_permutex2var_epi16(__m512i __A, __m512i __I, __mmask32 __U,
9211082 (__v32hi)__I);
9221083}
9231084
924static __inline__ __m512i __DEFAULT_FN_ATTRS
1085static __inline__ __m512i __DEFAULT_FN_ATTRS512
9251086_mm512_maskz_permutex2var_epi16(__mmask32 __U, __m512i __A, __m512i __I,
9261087 __m512i __B)
9271088{
......@@ -930,13 +1091,13 @@ _mm512_maskz_permutex2var_epi16(__mmask32 __U, __m512i __A, __m512i __I,
9301091 (__v32hi)_mm512_setzero_si512());
9311092}
9321093
933static __inline__ __m512i __DEFAULT_FN_ATTRS
1094static __inline__ __m512i __DEFAULT_FN_ATTRS512
9341095_mm512_mulhrs_epi16(__m512i __A, __m512i __B)
9351096{
9361097 return (__m512i)__builtin_ia32_pmulhrsw512((__v32hi)__A, (__v32hi)__B);
9371098}
9381099
939static __inline__ __m512i __DEFAULT_FN_ATTRS
1100static __inline__ __m512i __DEFAULT_FN_ATTRS512
9401101_mm512_mask_mulhrs_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
9411102{
9421103 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -944,7 +1105,7 @@ _mm512_mask_mulhrs_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
9441105 (__v32hi)__W);
9451106}
9461107
947static __inline__ __m512i __DEFAULT_FN_ATTRS
1108static __inline__ __m512i __DEFAULT_FN_ATTRS512
9481109_mm512_maskz_mulhrs_epi16(__mmask32 __U, __m512i __A, __m512i __B)
9491110{
9501111 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -952,13 +1113,13 @@ _mm512_maskz_mulhrs_epi16(__mmask32 __U, __m512i __A, __m512i __B)
9521113 (__v32hi)_mm512_setzero_si512());
9531114}
9541115
955static __inline__ __m512i __DEFAULT_FN_ATTRS
1116static __inline__ __m512i __DEFAULT_FN_ATTRS512
9561117_mm512_mulhi_epi16(__m512i __A, __m512i __B)
9571118{
9581119 return (__m512i)__builtin_ia32_pmulhw512((__v32hi) __A, (__v32hi) __B);
9591120}
9601121
961static __inline__ __m512i __DEFAULT_FN_ATTRS
1122static __inline__ __m512i __DEFAULT_FN_ATTRS512
9621123_mm512_mask_mulhi_epi16(__m512i __W, __mmask32 __U, __m512i __A,
9631124 __m512i __B)
9641125{
......@@ -967,7 +1128,7 @@ _mm512_mask_mulhi_epi16(__m512i __W, __mmask32 __U, __m512i __A,
9671128 (__v32hi)__W);
9681129}
9691130
970static __inline__ __m512i __DEFAULT_FN_ATTRS
1131static __inline__ __m512i __DEFAULT_FN_ATTRS512
9711132_mm512_maskz_mulhi_epi16(__mmask32 __U, __m512i __A, __m512i __B)
9721133{
9731134 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -975,13 +1136,13 @@ _mm512_maskz_mulhi_epi16(__mmask32 __U, __m512i __A, __m512i __B)
9751136 (__v32hi)_mm512_setzero_si512());
9761137}
9771138
978static __inline__ __m512i __DEFAULT_FN_ATTRS
1139static __inline__ __m512i __DEFAULT_FN_ATTRS512
9791140_mm512_mulhi_epu16(__m512i __A, __m512i __B)
9801141{
9811142 return (__m512i)__builtin_ia32_pmulhuw512((__v32hi) __A, (__v32hi) __B);
9821143}
9831144
984static __inline__ __m512i __DEFAULT_FN_ATTRS
1145static __inline__ __m512i __DEFAULT_FN_ATTRS512
9851146_mm512_mask_mulhi_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
9861147{
9871148 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -989,7 +1150,7 @@ _mm512_mask_mulhi_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
9891150 (__v32hi)__W);
9901151}
9911152
992static __inline__ __m512i __DEFAULT_FN_ATTRS
1153static __inline__ __m512i __DEFAULT_FN_ATTRS512
9931154_mm512_maskz_mulhi_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
9941155{
9951156 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -997,12 +1158,12 @@ _mm512_maskz_mulhi_epu16 (__mmask32 __U, __m512i __A, __m512i __B)
9971158 (__v32hi)_mm512_setzero_si512());
9981159}
9991160
1000static __inline__ __m512i __DEFAULT_FN_ATTRS
1161static __inline__ __m512i __DEFAULT_FN_ATTRS512
10011162_mm512_maddubs_epi16(__m512i __X, __m512i __Y) {
10021163 return (__m512i)__builtin_ia32_pmaddubsw512((__v64qi)__X, (__v64qi)__Y);
10031164}
10041165
1005static __inline__ __m512i __DEFAULT_FN_ATTRS
1166static __inline__ __m512i __DEFAULT_FN_ATTRS512
10061167_mm512_mask_maddubs_epi16(__m512i __W, __mmask32 __U, __m512i __X,
10071168 __m512i __Y) {
10081169 return (__m512i)__builtin_ia32_selectw_512((__mmask32) __U,
......@@ -1010,114 +1171,114 @@ _mm512_mask_maddubs_epi16(__m512i __W, __mmask32 __U, __m512i __X,
10101171 (__v32hi)__W);
10111172}
10121173
1013static __inline__ __m512i __DEFAULT_FN_ATTRS
1174static __inline__ __m512i __DEFAULT_FN_ATTRS512
10141175_mm512_maskz_maddubs_epi16(__mmask32 __U, __m512i __X, __m512i __Y) {
10151176 return (__m512i)__builtin_ia32_selectw_512((__mmask32) __U,
10161177 (__v32hi)_mm512_maddubs_epi16(__X, __Y),
10171178 (__v32hi)_mm512_setzero_si512());
10181179}
10191180
1020static __inline__ __m512i __DEFAULT_FN_ATTRS
1181static __inline__ __m512i __DEFAULT_FN_ATTRS512
10211182_mm512_madd_epi16(__m512i __A, __m512i __B) {
10221183 return (__m512i)__builtin_ia32_pmaddwd512((__v32hi)__A, (__v32hi)__B);
10231184}
10241185
1025static __inline__ __m512i __DEFAULT_FN_ATTRS
1186static __inline__ __m512i __DEFAULT_FN_ATTRS512
10261187_mm512_mask_madd_epi16(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) {
10271188 return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
10281189 (__v16si)_mm512_madd_epi16(__A, __B),
10291190 (__v16si)__W);
10301191}
10311192
1032static __inline__ __m512i __DEFAULT_FN_ATTRS
1193static __inline__ __m512i __DEFAULT_FN_ATTRS512
10331194_mm512_maskz_madd_epi16(__mmask16 __U, __m512i __A, __m512i __B) {
10341195 return (__m512i)__builtin_ia32_selectd_512((__mmask16)__U,
10351196 (__v16si)_mm512_madd_epi16(__A, __B),
10361197 (__v16si)_mm512_setzero_si512());
10371198}
10381199
1039static __inline__ __m256i __DEFAULT_FN_ATTRS
1200static __inline__ __m256i __DEFAULT_FN_ATTRS512
10401201_mm512_cvtsepi16_epi8 (__m512i __A) {
10411202 return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
10421203 (__v32qi)_mm256_setzero_si256(),
10431204 (__mmask32) -1);
10441205}
10451206
1046static __inline__ __m256i __DEFAULT_FN_ATTRS
1207static __inline__ __m256i __DEFAULT_FN_ATTRS512
10471208_mm512_mask_cvtsepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {
10481209 return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
10491210 (__v32qi)__O,
10501211 __M);
10511212}
10521213
1053static __inline__ __m256i __DEFAULT_FN_ATTRS
1214static __inline__ __m256i __DEFAULT_FN_ATTRS512
10541215_mm512_maskz_cvtsepi16_epi8 (__mmask32 __M, __m512i __A) {
10551216 return (__m256i) __builtin_ia32_pmovswb512_mask ((__v32hi) __A,
10561217 (__v32qi) _mm256_setzero_si256(),
10571218 __M);
10581219}
10591220
1060static __inline__ __m256i __DEFAULT_FN_ATTRS
1221static __inline__ __m256i __DEFAULT_FN_ATTRS512
10611222_mm512_cvtusepi16_epi8 (__m512i __A) {
10621223 return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
10631224 (__v32qi) _mm256_setzero_si256(),
10641225 (__mmask32) -1);
10651226}
10661227
1067static __inline__ __m256i __DEFAULT_FN_ATTRS
1228static __inline__ __m256i __DEFAULT_FN_ATTRS512
10681229_mm512_mask_cvtusepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {
10691230 return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
10701231 (__v32qi) __O,
10711232 __M);
10721233}
10731234
1074static __inline__ __m256i __DEFAULT_FN_ATTRS
1235static __inline__ __m256i __DEFAULT_FN_ATTRS512
10751236_mm512_maskz_cvtusepi16_epi8 (__mmask32 __M, __m512i __A) {
10761237 return (__m256i) __builtin_ia32_pmovuswb512_mask ((__v32hi) __A,
10771238 (__v32qi) _mm256_setzero_si256(),
10781239 __M);
10791240}
10801241
1081static __inline__ __m256i __DEFAULT_FN_ATTRS
1242static __inline__ __m256i __DEFAULT_FN_ATTRS512
10821243_mm512_cvtepi16_epi8 (__m512i __A) {
10831244 return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
10841245 (__v32qi) _mm256_undefined_si256(),
10851246 (__mmask32) -1);
10861247}
10871248
1088static __inline__ __m256i __DEFAULT_FN_ATTRS
1249static __inline__ __m256i __DEFAULT_FN_ATTRS512
10891250_mm512_mask_cvtepi16_epi8 (__m256i __O, __mmask32 __M, __m512i __A) {
10901251 return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
10911252 (__v32qi) __O,
10921253 __M);
10931254}
10941255
1095static __inline__ __m256i __DEFAULT_FN_ATTRS
1256static __inline__ __m256i __DEFAULT_FN_ATTRS512
10961257_mm512_maskz_cvtepi16_epi8 (__mmask32 __M, __m512i __A) {
10971258 return (__m256i) __builtin_ia32_pmovwb512_mask ((__v32hi) __A,
10981259 (__v32qi) _mm256_setzero_si256(),
10991260 __M);
11001261}
11011262
1102static __inline__ void __DEFAULT_FN_ATTRS
1263static __inline__ void __DEFAULT_FN_ATTRS512
11031264_mm512_mask_cvtepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
11041265{
11051266 __builtin_ia32_pmovwb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
11061267}
11071268
1108static __inline__ void __DEFAULT_FN_ATTRS
1269static __inline__ void __DEFAULT_FN_ATTRS512
11091270_mm512_mask_cvtsepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
11101271{
11111272 __builtin_ia32_pmovswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
11121273}
11131274
1114static __inline__ void __DEFAULT_FN_ATTRS
1275static __inline__ void __DEFAULT_FN_ATTRS512
11151276_mm512_mask_cvtusepi16_storeu_epi8 (void * __P, __mmask32 __M, __m512i __A)
11161277{
11171278 __builtin_ia32_pmovuswb512mem_mask ((__v32qi *) __P, (__v32hi) __A, __M);
11181279}
11191280
1120static __inline__ __m512i __DEFAULT_FN_ATTRS
1281static __inline__ __m512i __DEFAULT_FN_ATTRS512
11211282_mm512_unpackhi_epi8(__m512i __A, __m512i __B) {
11221283 return (__m512i)__builtin_shufflevector((__v64qi)__A, (__v64qi)__B,
11231284 8, 64+8, 9, 64+9,
......@@ -1138,21 +1299,21 @@ _mm512_unpackhi_epi8(__m512i __A, __m512i __B) {
11381299 62, 64+62, 63, 64+63);
11391300}
11401301
1141static __inline__ __m512i __DEFAULT_FN_ATTRS
1302static __inline__ __m512i __DEFAULT_FN_ATTRS512
11421303_mm512_mask_unpackhi_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
11431304 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
11441305 (__v64qi)_mm512_unpackhi_epi8(__A, __B),
11451306 (__v64qi)__W);
11461307}
11471308
1148static __inline__ __m512i __DEFAULT_FN_ATTRS
1309static __inline__ __m512i __DEFAULT_FN_ATTRS512
11491310_mm512_maskz_unpackhi_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
11501311 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
11511312 (__v64qi)_mm512_unpackhi_epi8(__A, __B),
11521313 (__v64qi)_mm512_setzero_si512());
11531314}
11541315
1155static __inline__ __m512i __DEFAULT_FN_ATTRS
1316static __inline__ __m512i __DEFAULT_FN_ATTRS512
11561317_mm512_unpackhi_epi16(__m512i __A, __m512i __B) {
11571318 return (__m512i)__builtin_shufflevector((__v32hi)__A, (__v32hi)__B,
11581319 4, 32+4, 5, 32+5,
......@@ -1165,21 +1326,21 @@ _mm512_unpackhi_epi16(__m512i __A, __m512i __B) {
11651326 30, 32+30, 31, 32+31);
11661327}
11671328
1168static __inline__ __m512i __DEFAULT_FN_ATTRS
1329static __inline__ __m512i __DEFAULT_FN_ATTRS512
11691330_mm512_mask_unpackhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
11701331 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
11711332 (__v32hi)_mm512_unpackhi_epi16(__A, __B),
11721333 (__v32hi)__W);
11731334}
11741335
1175static __inline__ __m512i __DEFAULT_FN_ATTRS
1336static __inline__ __m512i __DEFAULT_FN_ATTRS512
11761337_mm512_maskz_unpackhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
11771338 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
11781339 (__v32hi)_mm512_unpackhi_epi16(__A, __B),
11791340 (__v32hi)_mm512_setzero_si512());
11801341}
11811342
1182static __inline__ __m512i __DEFAULT_FN_ATTRS
1343static __inline__ __m512i __DEFAULT_FN_ATTRS512
11831344_mm512_unpacklo_epi8(__m512i __A, __m512i __B) {
11841345 return (__m512i)__builtin_shufflevector((__v64qi)__A, (__v64qi)__B,
11851346 0, 64+0, 1, 64+1,
......@@ -1200,21 +1361,21 @@ _mm512_unpacklo_epi8(__m512i __A, __m512i __B) {
12001361 54, 64+54, 55, 64+55);
12011362}
12021363
1203static __inline__ __m512i __DEFAULT_FN_ATTRS
1364static __inline__ __m512i __DEFAULT_FN_ATTRS512
12041365_mm512_mask_unpacklo_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) {
12051366 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
12061367 (__v64qi)_mm512_unpacklo_epi8(__A, __B),
12071368 (__v64qi)__W);
12081369}
12091370
1210static __inline__ __m512i __DEFAULT_FN_ATTRS
1371static __inline__ __m512i __DEFAULT_FN_ATTRS512
12111372_mm512_maskz_unpacklo_epi8(__mmask64 __U, __m512i __A, __m512i __B) {
12121373 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__U,
12131374 (__v64qi)_mm512_unpacklo_epi8(__A, __B),
12141375 (__v64qi)_mm512_setzero_si512());
12151376}
12161377
1217static __inline__ __m512i __DEFAULT_FN_ATTRS
1378static __inline__ __m512i __DEFAULT_FN_ATTRS512
12181379_mm512_unpacklo_epi16(__m512i __A, __m512i __B) {
12191380 return (__m512i)__builtin_shufflevector((__v32hi)__A, (__v32hi)__B,
12201381 0, 32+0, 1, 32+1,
......@@ -1227,21 +1388,21 @@ _mm512_unpacklo_epi16(__m512i __A, __m512i __B) {
12271388 26, 32+26, 27, 32+27);
12281389}
12291390
1230static __inline__ __m512i __DEFAULT_FN_ATTRS
1391static __inline__ __m512i __DEFAULT_FN_ATTRS512
12311392_mm512_mask_unpacklo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) {
12321393 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
12331394 (__v32hi)_mm512_unpacklo_epi16(__A, __B),
12341395 (__v32hi)__W);
12351396}
12361397
1237static __inline__ __m512i __DEFAULT_FN_ATTRS
1398static __inline__ __m512i __DEFAULT_FN_ATTRS512
12381399_mm512_maskz_unpacklo_epi16(__mmask32 __U, __m512i __A, __m512i __B) {
12391400 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
12401401 (__v32hi)_mm512_unpacklo_epi16(__A, __B),
12411402 (__v32hi)_mm512_setzero_si512());
12421403}
12431404
1244static __inline__ __m512i __DEFAULT_FN_ATTRS
1405static __inline__ __m512i __DEFAULT_FN_ATTRS512
12451406_mm512_cvtepi8_epi16(__m256i __A)
12461407{
12471408 /* This function always performs a signed extension, but __v32qi is a char
......@@ -1249,7 +1410,7 @@ _mm512_cvtepi8_epi16(__m256i __A)
12491410 return (__m512i)__builtin_convertvector((__v32qs)__A, __v32hi);
12501411}
12511412
1252static __inline__ __m512i __DEFAULT_FN_ATTRS
1413static __inline__ __m512i __DEFAULT_FN_ATTRS512
12531414_mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __A)
12541415{
12551416 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1257,7 +1418,7 @@ _mm512_mask_cvtepi8_epi16(__m512i __W, __mmask32 __U, __m256i __A)
12571418 (__v32hi)__W);
12581419}
12591420
1260static __inline__ __m512i __DEFAULT_FN_ATTRS
1421static __inline__ __m512i __DEFAULT_FN_ATTRS512
12611422_mm512_maskz_cvtepi8_epi16(__mmask32 __U, __m256i __A)
12621423{
12631424 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1265,13 +1426,13 @@ _mm512_maskz_cvtepi8_epi16(__mmask32 __U, __m256i __A)
12651426 (__v32hi)_mm512_setzero_si512());
12661427}
12671428
1268static __inline__ __m512i __DEFAULT_FN_ATTRS
1429static __inline__ __m512i __DEFAULT_FN_ATTRS512
12691430_mm512_cvtepu8_epi16(__m256i __A)
12701431{
12711432 return (__m512i)__builtin_convertvector((__v32qu)__A, __v32hi);
12721433}
12731434
1274static __inline__ __m512i __DEFAULT_FN_ATTRS
1435static __inline__ __m512i __DEFAULT_FN_ATTRS512
12751436_mm512_mask_cvtepu8_epi16(__m512i __W, __mmask32 __U, __m256i __A)
12761437{
12771438 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1279,7 +1440,7 @@ _mm512_mask_cvtepu8_epi16(__m512i __W, __mmask32 __U, __m256i __A)
12791440 (__v32hi)__W);
12801441}
12811442
1282static __inline__ __m512i __DEFAULT_FN_ATTRS
1443static __inline__ __m512i __DEFAULT_FN_ATTRS512
12831444_mm512_maskz_cvtepu8_epi16(__mmask32 __U, __m256i __A)
12841445{
12851446 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1320,13 +1481,13 @@ _mm512_maskz_cvtepu8_epi16(__mmask32 __U, __m256i __A)
13201481 (imm)), \
13211482 (__v32hi)_mm512_setzero_si512())
13221483
1323static __inline__ __m512i __DEFAULT_FN_ATTRS
1484static __inline__ __m512i __DEFAULT_FN_ATTRS512
13241485_mm512_sllv_epi16(__m512i __A, __m512i __B)
13251486{
13261487 return (__m512i)__builtin_ia32_psllv32hi((__v32hi) __A, (__v32hi) __B);
13271488}
13281489
1329static __inline__ __m512i __DEFAULT_FN_ATTRS
1490static __inline__ __m512i __DEFAULT_FN_ATTRS512
13301491_mm512_mask_sllv_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
13311492{
13321493 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1334,7 +1495,7 @@ _mm512_mask_sllv_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
13341495 (__v32hi)__W);
13351496}
13361497
1337static __inline__ __m512i __DEFAULT_FN_ATTRS
1498static __inline__ __m512i __DEFAULT_FN_ATTRS512
13381499_mm512_maskz_sllv_epi16(__mmask32 __U, __m512i __A, __m512i __B)
13391500{
13401501 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1342,13 +1503,13 @@ _mm512_maskz_sllv_epi16(__mmask32 __U, __m512i __A, __m512i __B)
13421503 (__v32hi)_mm512_setzero_si512());
13431504}
13441505
1345static __inline__ __m512i __DEFAULT_FN_ATTRS
1506static __inline__ __m512i __DEFAULT_FN_ATTRS512
13461507_mm512_sll_epi16(__m512i __A, __m128i __B)
13471508{
13481509 return (__m512i)__builtin_ia32_psllw512((__v32hi) __A, (__v8hi) __B);
13491510}
13501511
1351static __inline__ __m512i __DEFAULT_FN_ATTRS
1512static __inline__ __m512i __DEFAULT_FN_ATTRS512
13521513_mm512_mask_sll_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B)
13531514{
13541515 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1356,7 +1517,7 @@ _mm512_mask_sll_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B)
13561517 (__v32hi)__W);
13571518}
13581519
1359static __inline__ __m512i __DEFAULT_FN_ATTRS
1520static __inline__ __m512i __DEFAULT_FN_ATTRS512
13601521_mm512_maskz_sll_epi16(__mmask32 __U, __m512i __A, __m128i __B)
13611522{
13621523 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1364,13 +1525,13 @@ _mm512_maskz_sll_epi16(__mmask32 __U, __m512i __A, __m128i __B)
13641525 (__v32hi)_mm512_setzero_si512());
13651526}
13661527
1367static __inline__ __m512i __DEFAULT_FN_ATTRS
1528static __inline__ __m512i __DEFAULT_FN_ATTRS512
13681529_mm512_slli_epi16(__m512i __A, int __B)
13691530{
13701531 return (__m512i)__builtin_ia32_psllwi512((__v32hi)__A, __B);
13711532}
13721533
1373static __inline__ __m512i __DEFAULT_FN_ATTRS
1534static __inline__ __m512i __DEFAULT_FN_ATTRS512
13741535_mm512_mask_slli_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B)
13751536{
13761537 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1378,7 +1539,7 @@ _mm512_mask_slli_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B)
13781539 (__v32hi)__W);
13791540}
13801541
1381static __inline__ __m512i __DEFAULT_FN_ATTRS
1542static __inline__ __m512i __DEFAULT_FN_ATTRS512
13821543_mm512_maskz_slli_epi16(__mmask32 __U, __m512i __A, int __B)
13831544{
13841545 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1389,13 +1550,13 @@ _mm512_maskz_slli_epi16(__mmask32 __U, __m512i __A, int __B)
13891550#define _mm512_bslli_epi128(a, imm) \
13901551 (__m512i)__builtin_ia32_pslldqi512_byteshift((__v8di)(__m512i)(a), (int)(imm))
13911552
1392static __inline__ __m512i __DEFAULT_FN_ATTRS
1553static __inline__ __m512i __DEFAULT_FN_ATTRS512
13931554_mm512_srlv_epi16(__m512i __A, __m512i __B)
13941555{
13951556 return (__m512i)__builtin_ia32_psrlv32hi((__v32hi)__A, (__v32hi)__B);
13961557}
13971558
1398static __inline__ __m512i __DEFAULT_FN_ATTRS
1559static __inline__ __m512i __DEFAULT_FN_ATTRS512
13991560_mm512_mask_srlv_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
14001561{
14011562 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1403,7 +1564,7 @@ _mm512_mask_srlv_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
14031564 (__v32hi)__W);
14041565}
14051566
1406static __inline__ __m512i __DEFAULT_FN_ATTRS
1567static __inline__ __m512i __DEFAULT_FN_ATTRS512
14071568_mm512_maskz_srlv_epi16(__mmask32 __U, __m512i __A, __m512i __B)
14081569{
14091570 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1411,13 +1572,13 @@ _mm512_maskz_srlv_epi16(__mmask32 __U, __m512i __A, __m512i __B)
14111572 (__v32hi)_mm512_setzero_si512());
14121573}
14131574
1414static __inline__ __m512i __DEFAULT_FN_ATTRS
1575static __inline__ __m512i __DEFAULT_FN_ATTRS512
14151576_mm512_srav_epi16(__m512i __A, __m512i __B)
14161577{
14171578 return (__m512i)__builtin_ia32_psrav32hi((__v32hi)__A, (__v32hi)__B);
14181579}
14191580
1420static __inline__ __m512i __DEFAULT_FN_ATTRS
1581static __inline__ __m512i __DEFAULT_FN_ATTRS512
14211582_mm512_mask_srav_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
14221583{
14231584 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1425,7 +1586,7 @@ _mm512_mask_srav_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
14251586 (__v32hi)__W);
14261587}
14271588
1428static __inline__ __m512i __DEFAULT_FN_ATTRS
1589static __inline__ __m512i __DEFAULT_FN_ATTRS512
14291590_mm512_maskz_srav_epi16(__mmask32 __U, __m512i __A, __m512i __B)
14301591{
14311592 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1433,13 +1594,13 @@ _mm512_maskz_srav_epi16(__mmask32 __U, __m512i __A, __m512i __B)
14331594 (__v32hi)_mm512_setzero_si512());
14341595}
14351596
1436static __inline__ __m512i __DEFAULT_FN_ATTRS
1597static __inline__ __m512i __DEFAULT_FN_ATTRS512
14371598_mm512_sra_epi16(__m512i __A, __m128i __B)
14381599{
14391600 return (__m512i)__builtin_ia32_psraw512((__v32hi) __A, (__v8hi) __B);
14401601}
14411602
1442static __inline__ __m512i __DEFAULT_FN_ATTRS
1603static __inline__ __m512i __DEFAULT_FN_ATTRS512
14431604_mm512_mask_sra_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B)
14441605{
14451606 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1447,7 +1608,7 @@ _mm512_mask_sra_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B)
14471608 (__v32hi)__W);
14481609}
14491610
1450static __inline__ __m512i __DEFAULT_FN_ATTRS
1611static __inline__ __m512i __DEFAULT_FN_ATTRS512
14511612_mm512_maskz_sra_epi16(__mmask32 __U, __m512i __A, __m128i __B)
14521613{
14531614 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1455,13 +1616,13 @@ _mm512_maskz_sra_epi16(__mmask32 __U, __m512i __A, __m128i __B)
14551616 (__v32hi)_mm512_setzero_si512());
14561617}
14571618
1458static __inline__ __m512i __DEFAULT_FN_ATTRS
1619static __inline__ __m512i __DEFAULT_FN_ATTRS512
14591620_mm512_srai_epi16(__m512i __A, int __B)
14601621{
14611622 return (__m512i)__builtin_ia32_psrawi512((__v32hi)__A, __B);
14621623}
14631624
1464static __inline__ __m512i __DEFAULT_FN_ATTRS
1625static __inline__ __m512i __DEFAULT_FN_ATTRS512
14651626_mm512_mask_srai_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B)
14661627{
14671628 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1469,7 +1630,7 @@ _mm512_mask_srai_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B)
14691630 (__v32hi)__W);
14701631}
14711632
1472static __inline__ __m512i __DEFAULT_FN_ATTRS
1633static __inline__ __m512i __DEFAULT_FN_ATTRS512
14731634_mm512_maskz_srai_epi16(__mmask32 __U, __m512i __A, int __B)
14741635{
14751636 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1477,13 +1638,13 @@ _mm512_maskz_srai_epi16(__mmask32 __U, __m512i __A, int __B)
14771638 (__v32hi)_mm512_setzero_si512());
14781639}
14791640
1480static __inline__ __m512i __DEFAULT_FN_ATTRS
1641static __inline__ __m512i __DEFAULT_FN_ATTRS512
14811642_mm512_srl_epi16(__m512i __A, __m128i __B)
14821643{
14831644 return (__m512i)__builtin_ia32_psrlw512((__v32hi) __A, (__v8hi) __B);
14841645}
14851646
1486static __inline__ __m512i __DEFAULT_FN_ATTRS
1647static __inline__ __m512i __DEFAULT_FN_ATTRS512
14871648_mm512_mask_srl_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B)
14881649{
14891650 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1491,7 +1652,7 @@ _mm512_mask_srl_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m128i __B)
14911652 (__v32hi)__W);
14921653}
14931654
1494static __inline__ __m512i __DEFAULT_FN_ATTRS
1655static __inline__ __m512i __DEFAULT_FN_ATTRS512
14951656_mm512_maskz_srl_epi16(__mmask32 __U, __m512i __A, __m128i __B)
14961657{
14971658 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1499,13 +1660,13 @@ _mm512_maskz_srl_epi16(__mmask32 __U, __m512i __A, __m128i __B)
14991660 (__v32hi)_mm512_setzero_si512());
15001661}
15011662
1502static __inline__ __m512i __DEFAULT_FN_ATTRS
1663static __inline__ __m512i __DEFAULT_FN_ATTRS512
15031664_mm512_srli_epi16(__m512i __A, int __B)
15041665{
15051666 return (__m512i)__builtin_ia32_psrlwi512((__v32hi)__A, __B);
15061667}
15071668
1508static __inline__ __m512i __DEFAULT_FN_ATTRS
1669static __inline__ __m512i __DEFAULT_FN_ATTRS512
15091670_mm512_mask_srli_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B)
15101671{
15111672 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1513,7 +1674,7 @@ _mm512_mask_srli_epi16(__m512i __W, __mmask32 __U, __m512i __A, int __B)
15131674 (__v32hi)__W);
15141675}
15151676
1516static __inline__ __m512i __DEFAULT_FN_ATTRS
1677static __inline__ __m512i __DEFAULT_FN_ATTRS512
15171678_mm512_maskz_srli_epi16(__mmask32 __U, __m512i __A, int __B)
15181679{
15191680 return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
......@@ -1524,7 +1685,7 @@ _mm512_maskz_srli_epi16(__mmask32 __U, __m512i __A, int __B)
15241685#define _mm512_bsrli_epi128(a, imm) \
15251686 (__m512i)__builtin_ia32_psrldqi512_byteshift((__v8di)(__m512i)(a), (int)(imm))
15261687
1527static __inline__ __m512i __DEFAULT_FN_ATTRS
1688static __inline__ __m512i __DEFAULT_FN_ATTRS512
15281689_mm512_mask_mov_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
15291690{
15301691 return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,
......@@ -1532,7 +1693,7 @@ _mm512_mask_mov_epi16 (__m512i __W, __mmask32 __U, __m512i __A)
15321693 (__v32hi) __W);
15331694}
15341695
1535static __inline__ __m512i __DEFAULT_FN_ATTRS
1696static __inline__ __m512i __DEFAULT_FN_ATTRS512
15361697_mm512_maskz_mov_epi16 (__mmask32 __U, __m512i __A)
15371698{
15381699 return (__m512i) __builtin_ia32_selectw_512 ((__mmask32) __U,
......@@ -1540,7 +1701,7 @@ _mm512_maskz_mov_epi16 (__mmask32 __U, __m512i __A)
15401701 (__v32hi) _mm512_setzero_si512 ());
15411702}
15421703
1543static __inline__ __m512i __DEFAULT_FN_ATTRS
1704static __inline__ __m512i __DEFAULT_FN_ATTRS512
15441705_mm512_mask_mov_epi8 (__m512i __W, __mmask64 __U, __m512i __A)
15451706{
15461707 return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,
......@@ -1548,7 +1709,7 @@ _mm512_mask_mov_epi8 (__m512i __W, __mmask64 __U, __m512i __A)
15481709 (__v64qi) __W);
15491710}
15501711
1551static __inline__ __m512i __DEFAULT_FN_ATTRS
1712static __inline__ __m512i __DEFAULT_FN_ATTRS512
15521713_mm512_maskz_mov_epi8 (__mmask64 __U, __m512i __A)
15531714{
15541715 return (__m512i) __builtin_ia32_selectb_512 ((__mmask64) __U,
......@@ -1556,7 +1717,7 @@ _mm512_maskz_mov_epi8 (__mmask64 __U, __m512i __A)
15561717 (__v64qi) _mm512_setzero_si512 ());
15571718}
15581719
1559static __inline__ __m512i __DEFAULT_FN_ATTRS
1720static __inline__ __m512i __DEFAULT_FN_ATTRS512
15601721_mm512_mask_set1_epi8 (__m512i __O, __mmask64 __M, char __A)
15611722{
15621723 return (__m512i) __builtin_ia32_selectb_512(__M,
......@@ -1564,7 +1725,7 @@ _mm512_mask_set1_epi8 (__m512i __O, __mmask64 __M, char __A)
15641725 (__v64qi) __O);
15651726}
15661727
1567static __inline__ __m512i __DEFAULT_FN_ATTRS
1728static __inline__ __m512i __DEFAULT_FN_ATTRS512
15681729_mm512_maskz_set1_epi8 (__mmask64 __M, char __A)
15691730{
15701731 return (__m512i) __builtin_ia32_selectb_512(__M,
......@@ -1572,21 +1733,30 @@ _mm512_maskz_set1_epi8 (__mmask64 __M, char __A)
15721733 (__v64qi) _mm512_setzero_si512());
15731734}
15741735
1575static __inline__ __mmask64 __DEFAULT_FN_ATTRS
1736static __inline__ __mmask64 __DEFAULT_FN_ATTRS512
15761737_mm512_kunpackd (__mmask64 __A, __mmask64 __B)
15771738{
15781739 return (__mmask64) __builtin_ia32_kunpckdi ((__mmask64) __A,
15791740 (__mmask64) __B);
15801741}
15811742
1582static __inline__ __mmask32 __DEFAULT_FN_ATTRS
1743static __inline__ __mmask32 __DEFAULT_FN_ATTRS512
15831744_mm512_kunpackw (__mmask32 __A, __mmask32 __B)
15841745{
15851746 return (__mmask32) __builtin_ia32_kunpcksi ((__mmask32) __A,
15861747 (__mmask32) __B);
15871748}
15881749
1589static __inline__ __m512i __DEFAULT_FN_ATTRS
1750static __inline __m512i __DEFAULT_FN_ATTRS512
1751_mm512_loadu_epi16 (void const *__P)
1752{
1753 struct __loadu_epi16 {
1754 __m512i __v;
1755 } __attribute__((__packed__, __may_alias__));
1756 return ((struct __loadu_epi16*)__P)->__v;
1757}
1758
1759static __inline__ __m512i __DEFAULT_FN_ATTRS512
15901760_mm512_mask_loadu_epi16 (__m512i __W, __mmask32 __U, void const *__P)
15911761{
15921762 return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P,
......@@ -1594,7 +1764,7 @@ _mm512_mask_loadu_epi16 (__m512i __W, __mmask32 __U, void const *__P)
15941764 (__mmask32) __U);
15951765}
15961766
1597static __inline__ __m512i __DEFAULT_FN_ATTRS
1767static __inline__ __m512i __DEFAULT_FN_ATTRS512
15981768_mm512_maskz_loadu_epi16 (__mmask32 __U, void const *__P)
15991769{
16001770 return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P,
......@@ -1603,7 +1773,16 @@ _mm512_maskz_loadu_epi16 (__mmask32 __U, void const *__P)
16031773 (__mmask32) __U);
16041774}
16051775
1606static __inline__ __m512i __DEFAULT_FN_ATTRS
1776static __inline __m512i __DEFAULT_FN_ATTRS512
1777_mm512_loadu_epi8 (void const *__P)
1778{
1779 struct __loadu_epi8 {
1780 __m512i __v;
1781 } __attribute__((__packed__, __may_alias__));
1782 return ((struct __loadu_epi8*)__P)->__v;
1783}
1784
1785static __inline__ __m512i __DEFAULT_FN_ATTRS512
16071786_mm512_mask_loadu_epi8 (__m512i __W, __mmask64 __U, void const *__P)
16081787{
16091788 return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P,
......@@ -1611,7 +1790,7 @@ _mm512_mask_loadu_epi8 (__m512i __W, __mmask64 __U, void const *__P)
16111790 (__mmask64) __U);
16121791}
16131792
1614static __inline__ __m512i __DEFAULT_FN_ATTRS
1793static __inline__ __m512i __DEFAULT_FN_ATTRS512
16151794_mm512_maskz_loadu_epi8 (__mmask64 __U, void const *__P)
16161795{
16171796 return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P,
......@@ -1619,7 +1798,17 @@ _mm512_maskz_loadu_epi8 (__mmask64 __U, void const *__P)
16191798 _mm512_setzero_si512 (),
16201799 (__mmask64) __U);
16211800}
1622static __inline__ void __DEFAULT_FN_ATTRS
1801
1802static __inline void __DEFAULT_FN_ATTRS512
1803_mm512_storeu_epi16 (void *__P, __m512i __A)
1804{
1805 struct __storeu_epi16 {
1806 __m512i __v;
1807 } __attribute__((__packed__, __may_alias__));
1808 ((struct __storeu_epi16*)__P)->__v = __A;
1809}
1810
1811static __inline__ void __DEFAULT_FN_ATTRS512
16231812_mm512_mask_storeu_epi16 (void *__P, __mmask32 __U, __m512i __A)
16241813{
16251814 __builtin_ia32_storedquhi512_mask ((__v32hi *) __P,
......@@ -1627,7 +1816,16 @@ _mm512_mask_storeu_epi16 (void *__P, __mmask32 __U, __m512i __A)
16271816 (__mmask32) __U);
16281817}
16291818
1630static __inline__ void __DEFAULT_FN_ATTRS
1819static __inline void __DEFAULT_FN_ATTRS512
1820_mm512_storeu_epi8 (void *__P, __m512i __A)
1821{
1822 struct __storeu_epi8 {
1823 __m512i __v;
1824 } __attribute__((__packed__, __may_alias__));
1825 ((struct __storeu_epi8*)__P)->__v = __A;
1826}
1827
1828static __inline__ void __DEFAULT_FN_ATTRS512
16311829_mm512_mask_storeu_epi8 (void *__P, __mmask64 __U, __m512i __A)
16321830{
16331831 __builtin_ia32_storedquqi512_mask ((__v64qi *) __P,
......@@ -1635,86 +1833,86 @@ _mm512_mask_storeu_epi8 (void *__P, __mmask64 __U, __m512i __A)
16351833 (__mmask64) __U);
16361834}
16371835
1638static __inline__ __mmask64 __DEFAULT_FN_ATTRS
1836static __inline__ __mmask64 __DEFAULT_FN_ATTRS512
16391837_mm512_test_epi8_mask (__m512i __A, __m512i __B)
16401838{
16411839 return _mm512_cmpneq_epi8_mask (_mm512_and_epi32 (__A, __B),
16421840 _mm512_setzero_si512());
16431841}
16441842
1645static __inline__ __mmask64 __DEFAULT_FN_ATTRS
1843static __inline__ __mmask64 __DEFAULT_FN_ATTRS512
16461844_mm512_mask_test_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
16471845{
16481846 return _mm512_mask_cmpneq_epi8_mask (__U, _mm512_and_epi32 (__A, __B),
16491847 _mm512_setzero_si512());
16501848}
16511849
1652static __inline__ __mmask32 __DEFAULT_FN_ATTRS
1850static __inline__ __mmask32 __DEFAULT_FN_ATTRS512
16531851_mm512_test_epi16_mask (__m512i __A, __m512i __B)
16541852{
16551853 return _mm512_cmpneq_epi16_mask (_mm512_and_epi32 (__A, __B),
16561854 _mm512_setzero_si512());
16571855}
16581856
1659static __inline__ __mmask32 __DEFAULT_FN_ATTRS
1857static __inline__ __mmask32 __DEFAULT_FN_ATTRS512
16601858_mm512_mask_test_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
16611859{
16621860 return _mm512_mask_cmpneq_epi16_mask (__U, _mm512_and_epi32 (__A, __B),
16631861 _mm512_setzero_si512());
16641862}
16651863
1666static __inline__ __mmask64 __DEFAULT_FN_ATTRS
1864static __inline__ __mmask64 __DEFAULT_FN_ATTRS512
16671865_mm512_testn_epi8_mask (__m512i __A, __m512i __B)
16681866{
16691867 return _mm512_cmpeq_epi8_mask (_mm512_and_epi32 (__A, __B), _mm512_setzero_si512());
16701868}
16711869
1672static __inline__ __mmask64 __DEFAULT_FN_ATTRS
1870static __inline__ __mmask64 __DEFAULT_FN_ATTRS512
16731871_mm512_mask_testn_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
16741872{
16751873 return _mm512_mask_cmpeq_epi8_mask (__U, _mm512_and_epi32 (__A, __B),
16761874 _mm512_setzero_si512());
16771875}
16781876
1679static __inline__ __mmask32 __DEFAULT_FN_ATTRS
1877static __inline__ __mmask32 __DEFAULT_FN_ATTRS512
16801878_mm512_testn_epi16_mask (__m512i __A, __m512i __B)
16811879{
16821880 return _mm512_cmpeq_epi16_mask (_mm512_and_epi32 (__A, __B),
16831881 _mm512_setzero_si512());
16841882}
16851883
1686static __inline__ __mmask32 __DEFAULT_FN_ATTRS
1884static __inline__ __mmask32 __DEFAULT_FN_ATTRS512
16871885_mm512_mask_testn_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
16881886{
16891887 return _mm512_mask_cmpeq_epi16_mask (__U, _mm512_and_epi32 (__A, __B),
16901888 _mm512_setzero_si512());
16911889}
16921890
1693static __inline__ __mmask64 __DEFAULT_FN_ATTRS
1891static __inline__ __mmask64 __DEFAULT_FN_ATTRS512
16941892_mm512_movepi8_mask (__m512i __A)
16951893{
16961894 return (__mmask64) __builtin_ia32_cvtb2mask512 ((__v64qi) __A);
16971895}
16981896
1699static __inline__ __mmask32 __DEFAULT_FN_ATTRS
1897static __inline__ __mmask32 __DEFAULT_FN_ATTRS512
17001898_mm512_movepi16_mask (__m512i __A)
17011899{
17021900 return (__mmask32) __builtin_ia32_cvtw2mask512 ((__v32hi) __A);
17031901}
17041902
1705static __inline__ __m512i __DEFAULT_FN_ATTRS
1903static __inline__ __m512i __DEFAULT_FN_ATTRS512
17061904_mm512_movm_epi8 (__mmask64 __A)
17071905{
17081906 return (__m512i) __builtin_ia32_cvtmask2b512 (__A);
17091907}
17101908
1711static __inline__ __m512i __DEFAULT_FN_ATTRS
1909static __inline__ __m512i __DEFAULT_FN_ATTRS512
17121910_mm512_movm_epi16 (__mmask32 __A)
17131911{
17141912 return (__m512i) __builtin_ia32_cvtmask2w512 (__A);
17151913}
17161914
1717static __inline__ __m512i __DEFAULT_FN_ATTRS
1915static __inline__ __m512i __DEFAULT_FN_ATTRS512
17181916_mm512_broadcastb_epi8 (__m128i __A)
17191917{
17201918 return (__m512i)__builtin_shufflevector((__v16qi) __A, (__v16qi) __A,
......@@ -1724,7 +1922,7 @@ _mm512_broadcastb_epi8 (__m128i __A)
17241922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
17251923}
17261924
1727static __inline__ __m512i __DEFAULT_FN_ATTRS
1925static __inline__ __m512i __DEFAULT_FN_ATTRS512
17281926_mm512_mask_broadcastb_epi8 (__m512i __O, __mmask64 __M, __m128i __A)
17291927{
17301928 return (__m512i)__builtin_ia32_selectb_512(__M,
......@@ -1732,7 +1930,7 @@ _mm512_mask_broadcastb_epi8 (__m512i __O, __mmask64 __M, __m128i __A)
17321930 (__v64qi) __O);
17331931}
17341932
1735static __inline__ __m512i __DEFAULT_FN_ATTRS
1933static __inline__ __m512i __DEFAULT_FN_ATTRS512
17361934_mm512_maskz_broadcastb_epi8 (__mmask64 __M, __m128i __A)
17371935{
17381936 return (__m512i)__builtin_ia32_selectb_512(__M,
......@@ -1740,7 +1938,7 @@ _mm512_maskz_broadcastb_epi8 (__mmask64 __M, __m128i __A)
17401938 (__v64qi) _mm512_setzero_si512());
17411939}
17421940
1743static __inline__ __m512i __DEFAULT_FN_ATTRS
1941static __inline__ __m512i __DEFAULT_FN_ATTRS512
17441942_mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A)
17451943{
17461944 return (__m512i) __builtin_ia32_selectw_512(__M,
......@@ -1748,7 +1946,7 @@ _mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A)
17481946 (__v32hi) __O);
17491947}
17501948
1751static __inline__ __m512i __DEFAULT_FN_ATTRS
1949static __inline__ __m512i __DEFAULT_FN_ATTRS512
17521950_mm512_maskz_set1_epi16 (__mmask32 __M, short __A)
17531951{
17541952 return (__m512i) __builtin_ia32_selectw_512(__M,
......@@ -1756,7 +1954,7 @@ _mm512_maskz_set1_epi16 (__mmask32 __M, short __A)
17561954 (__v32hi) _mm512_setzero_si512());
17571955}
17581956
1759static __inline__ __m512i __DEFAULT_FN_ATTRS
1957static __inline__ __m512i __DEFAULT_FN_ATTRS512
17601958_mm512_broadcastw_epi16 (__m128i __A)
17611959{
17621960 return (__m512i)__builtin_shufflevector((__v8hi) __A, (__v8hi) __A,
......@@ -1764,7 +1962,7 @@ _mm512_broadcastw_epi16 (__m128i __A)
17641962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
17651963}
17661964
1767static __inline__ __m512i __DEFAULT_FN_ATTRS
1965static __inline__ __m512i __DEFAULT_FN_ATTRS512
17681966_mm512_mask_broadcastw_epi16 (__m512i __O, __mmask32 __M, __m128i __A)
17691967{
17701968 return (__m512i)__builtin_ia32_selectw_512(__M,
......@@ -1772,7 +1970,7 @@ _mm512_mask_broadcastw_epi16 (__m512i __O, __mmask32 __M, __m128i __A)
17721970 (__v32hi) __O);
17731971}
17741972
1775static __inline__ __m512i __DEFAULT_FN_ATTRS
1973static __inline__ __m512i __DEFAULT_FN_ATTRS512
17761974_mm512_maskz_broadcastw_epi16 (__mmask32 __M, __m128i __A)
17771975{
17781976 return (__m512i)__builtin_ia32_selectw_512(__M,
......@@ -1780,13 +1978,13 @@ _mm512_maskz_broadcastw_epi16 (__mmask32 __M, __m128i __A)
17801978 (__v32hi) _mm512_setzero_si512());
17811979}
17821980
1783static __inline__ __m512i __DEFAULT_FN_ATTRS
1981static __inline__ __m512i __DEFAULT_FN_ATTRS512
17841982_mm512_permutexvar_epi16 (__m512i __A, __m512i __B)
17851983{
17861984 return (__m512i)__builtin_ia32_permvarhi512((__v32hi)__B, (__v32hi)__A);
17871985}
17881986
1789static __inline__ __m512i __DEFAULT_FN_ATTRS
1987static __inline__ __m512i __DEFAULT_FN_ATTRS512
17901988_mm512_maskz_permutexvar_epi16 (__mmask32 __M, __m512i __A,
17911989 __m512i __B)
17921990{
......@@ -1795,7 +1993,7 @@ _mm512_maskz_permutexvar_epi16 (__mmask32 __M, __m512i __A,
17951993 (__v32hi)_mm512_setzero_si512());
17961994}
17971995
1798static __inline__ __m512i __DEFAULT_FN_ATTRS
1996static __inline__ __m512i __DEFAULT_FN_ATTRS512
17991997_mm512_mask_permutexvar_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
18001998 __m512i __B)
18011999{
......@@ -1832,15 +2030,14 @@ _mm512_mask_permutexvar_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
18322030 (__v32hi)_mm512_dbsad_epu8((A), (B), (imm)), \
18332031 (__v32hi)_mm512_setzero_si512())
18342032
1835static __inline__ __m512i __DEFAULT_FN_ATTRS
2033static __inline__ __m512i __DEFAULT_FN_ATTRS512
18362034_mm512_sad_epu8 (__m512i __A, __m512i __B)
18372035{
18382036 return (__m512i) __builtin_ia32_psadbw512 ((__v64qi) __A,
18392037 (__v64qi) __B);
18402038}
18412039
1842
1843
2040#undef __DEFAULT_FN_ATTRS512
18442041#undef __DEFAULT_FN_ATTRS
18452042
18462043#endif
c_headers/avx512dqintrin.h+216-86
......@@ -29,180 +29,309 @@
2929#define __AVX512DQINTRIN_H
3030
3131/* Define the default attributes for the functions in this file. */
32#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512)))
32#define __DEFAULT_FN_ATTRS512 __attribute__((__always_inline__, __nodebug__, __target__("avx512dq"), __min_vector_width__(512)))
33#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512dq")))
3334
34static __inline__ __m512i __DEFAULT_FN_ATTRS
35static __inline __mmask8 __DEFAULT_FN_ATTRS
36_knot_mask8(__mmask8 __M)
37{
38 return __builtin_ia32_knotqi(__M);
39}
40
41static __inline__ __mmask8 __DEFAULT_FN_ATTRS
42_kand_mask8(__mmask8 __A, __mmask8 __B)
43{
44 return (__mmask8)__builtin_ia32_kandqi((__mmask8)__A, (__mmask8)__B);
45}
46
47static __inline__ __mmask8 __DEFAULT_FN_ATTRS
48_kandn_mask8(__mmask8 __A, __mmask8 __B)
49{
50 return (__mmask8)__builtin_ia32_kandnqi((__mmask8)__A, (__mmask8)__B);
51}
52
53static __inline__ __mmask8 __DEFAULT_FN_ATTRS
54_kor_mask8(__mmask8 __A, __mmask8 __B)
55{
56 return (__mmask8)__builtin_ia32_korqi((__mmask8)__A, (__mmask8)__B);
57}
58
59static __inline__ __mmask8 __DEFAULT_FN_ATTRS
60_kxnor_mask8(__mmask8 __A, __mmask8 __B)
61{
62 return (__mmask8)__builtin_ia32_kxnorqi((__mmask8)__A, (__mmask8)__B);
63}
64
65static __inline__ __mmask8 __DEFAULT_FN_ATTRS
66_kxor_mask8(__mmask8 __A, __mmask8 __B)
67{
68 return (__mmask8)__builtin_ia32_kxorqi((__mmask8)__A, (__mmask8)__B);
69}
70
71static __inline__ unsigned char __DEFAULT_FN_ATTRS
72_kortestc_mask8_u8(__mmask8 __A, __mmask8 __B)
73{
74 return (unsigned char)__builtin_ia32_kortestcqi(__A, __B);
75}
76
77static __inline__ unsigned char __DEFAULT_FN_ATTRS
78_kortestz_mask8_u8(__mmask8 __A, __mmask8 __B)
79{
80 return (unsigned char)__builtin_ia32_kortestzqi(__A, __B);
81}
82
83static __inline__ unsigned char __DEFAULT_FN_ATTRS
84_kortest_mask8_u8(__mmask8 __A, __mmask8 __B, unsigned char *__C) {
85 *__C = (unsigned char)__builtin_ia32_kortestcqi(__A, __B);
86 return (unsigned char)__builtin_ia32_kortestzqi(__A, __B);
87}
88
89static __inline__ unsigned char __DEFAULT_FN_ATTRS
90_ktestc_mask8_u8(__mmask8 __A, __mmask8 __B)
91{
92 return (unsigned char)__builtin_ia32_ktestcqi(__A, __B);
93}
94
95static __inline__ unsigned char __DEFAULT_FN_ATTRS
96_ktestz_mask8_u8(__mmask8 __A, __mmask8 __B)
97{
98 return (unsigned char)__builtin_ia32_ktestzqi(__A, __B);
99}
100
101static __inline__ unsigned char __DEFAULT_FN_ATTRS
102_ktest_mask8_u8(__mmask8 __A, __mmask8 __B, unsigned char *__C) {
103 *__C = (unsigned char)__builtin_ia32_ktestcqi(__A, __B);
104 return (unsigned char)__builtin_ia32_ktestzqi(__A, __B);
105}
106
107static __inline__ unsigned char __DEFAULT_FN_ATTRS
108_ktestc_mask16_u8(__mmask16 __A, __mmask16 __B)
109{
110 return (unsigned char)__builtin_ia32_ktestchi(__A, __B);
111}
112
113static __inline__ unsigned char __DEFAULT_FN_ATTRS
114_ktestz_mask16_u8(__mmask16 __A, __mmask16 __B)
115{
116 return (unsigned char)__builtin_ia32_ktestzhi(__A, __B);
117}
118
119static __inline__ unsigned char __DEFAULT_FN_ATTRS
120_ktest_mask16_u8(__mmask16 __A, __mmask16 __B, unsigned char *__C) {
121 *__C = (unsigned char)__builtin_ia32_ktestchi(__A, __B);
122 return (unsigned char)__builtin_ia32_ktestzhi(__A, __B);
123}
124
125static __inline__ __mmask8 __DEFAULT_FN_ATTRS
126_kadd_mask8(__mmask8 __A, __mmask8 __B)
127{
128 return (__mmask8)__builtin_ia32_kaddqi((__mmask8)__A, (__mmask8)__B);
129}
130
131static __inline__ __mmask16 __DEFAULT_FN_ATTRS
132_kadd_mask16(__mmask16 __A, __mmask16 __B)
133{
134 return (__mmask16)__builtin_ia32_kaddhi((__mmask16)__A, (__mmask16)__B);
135}
136
137#define _kshiftli_mask8(A, I) \
138 (__mmask8)__builtin_ia32_kshiftliqi((__mmask8)(A), (unsigned int)(I))
139
140#define _kshiftri_mask8(A, I) \
141 (__mmask8)__builtin_ia32_kshiftriqi((__mmask8)(A), (unsigned int)(I))
142
143static __inline__ unsigned int __DEFAULT_FN_ATTRS
144_cvtmask8_u32(__mmask8 __A) {
145 return (unsigned int)__builtin_ia32_kmovb((__mmask8)__A);
146}
147
148static __inline__ __mmask8 __DEFAULT_FN_ATTRS
149_cvtu32_mask8(unsigned int __A) {
150 return (__mmask8)__builtin_ia32_kmovb((__mmask8)__A);
151}
152
153static __inline__ __mmask8 __DEFAULT_FN_ATTRS
154_load_mask8(__mmask8 *__A) {
155 return (__mmask8)__builtin_ia32_kmovb(*(__mmask8 *)__A);
156}
157
158static __inline__ void __DEFAULT_FN_ATTRS
159_store_mask8(__mmask8 *__A, __mmask8 __B) {
160 *(__mmask8 *)__A = __builtin_ia32_kmovb((__mmask8)__B);
161}
162
163static __inline__ __m512i __DEFAULT_FN_ATTRS512
35164_mm512_mullo_epi64 (__m512i __A, __m512i __B) {
36165 return (__m512i) ((__v8du) __A * (__v8du) __B);
37166}
38167
39static __inline__ __m512i __DEFAULT_FN_ATTRS
168static __inline__ __m512i __DEFAULT_FN_ATTRS512
40169_mm512_mask_mullo_epi64(__m512i __W, __mmask8 __U, __m512i __A, __m512i __B) {
41170 return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
42171 (__v8di)_mm512_mullo_epi64(__A, __B),
43172 (__v8di)__W);
44173}
45174
46static __inline__ __m512i __DEFAULT_FN_ATTRS
175static __inline__ __m512i __DEFAULT_FN_ATTRS512
47176_mm512_maskz_mullo_epi64(__mmask8 __U, __m512i __A, __m512i __B) {
48177 return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
49178 (__v8di)_mm512_mullo_epi64(__A, __B),
50179 (__v8di)_mm512_setzero_si512());
51180}
52181
53static __inline__ __m512d __DEFAULT_FN_ATTRS
182static __inline__ __m512d __DEFAULT_FN_ATTRS512
54183_mm512_xor_pd(__m512d __A, __m512d __B) {
55184 return (__m512d)((__v8du)__A ^ (__v8du)__B);
56185}
57186
58static __inline__ __m512d __DEFAULT_FN_ATTRS
187static __inline__ __m512d __DEFAULT_FN_ATTRS512
59188_mm512_mask_xor_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
60189 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
61190 (__v8df)_mm512_xor_pd(__A, __B),
62191 (__v8df)__W);
63192}
64193
65static __inline__ __m512d __DEFAULT_FN_ATTRS
194static __inline__ __m512d __DEFAULT_FN_ATTRS512
66195_mm512_maskz_xor_pd(__mmask8 __U, __m512d __A, __m512d __B) {
67196 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
68197 (__v8df)_mm512_xor_pd(__A, __B),
69198 (__v8df)_mm512_setzero_pd());
70199}
71200
72static __inline__ __m512 __DEFAULT_FN_ATTRS
201static __inline__ __m512 __DEFAULT_FN_ATTRS512
73202_mm512_xor_ps (__m512 __A, __m512 __B) {
74203 return (__m512)((__v16su)__A ^ (__v16su)__B);
75204}
76205
77static __inline__ __m512 __DEFAULT_FN_ATTRS
206static __inline__ __m512 __DEFAULT_FN_ATTRS512
78207_mm512_mask_xor_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
79208 return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
80209 (__v16sf)_mm512_xor_ps(__A, __B),
81210 (__v16sf)__W);
82211}
83212
84static __inline__ __m512 __DEFAULT_FN_ATTRS
213static __inline__ __m512 __DEFAULT_FN_ATTRS512
85214_mm512_maskz_xor_ps(__mmask16 __U, __m512 __A, __m512 __B) {
86215 return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
87216 (__v16sf)_mm512_xor_ps(__A, __B),
88217 (__v16sf)_mm512_setzero_ps());
89218}
90219
91static __inline__ __m512d __DEFAULT_FN_ATTRS
220static __inline__ __m512d __DEFAULT_FN_ATTRS512
92221_mm512_or_pd(__m512d __A, __m512d __B) {
93222 return (__m512d)((__v8du)__A | (__v8du)__B);
94223}
95224
96static __inline__ __m512d __DEFAULT_FN_ATTRS
225static __inline__ __m512d __DEFAULT_FN_ATTRS512
97226_mm512_mask_or_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
98227 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
99228 (__v8df)_mm512_or_pd(__A, __B),
100229 (__v8df)__W);
101230}
102231
103static __inline__ __m512d __DEFAULT_FN_ATTRS
232static __inline__ __m512d __DEFAULT_FN_ATTRS512
104233_mm512_maskz_or_pd(__mmask8 __U, __m512d __A, __m512d __B) {
105234 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
106235 (__v8df)_mm512_or_pd(__A, __B),
107236 (__v8df)_mm512_setzero_pd());
108237}
109238
110static __inline__ __m512 __DEFAULT_FN_ATTRS
239static __inline__ __m512 __DEFAULT_FN_ATTRS512
111240_mm512_or_ps(__m512 __A, __m512 __B) {
112241 return (__m512)((__v16su)__A | (__v16su)__B);
113242}
114243
115static __inline__ __m512 __DEFAULT_FN_ATTRS
244static __inline__ __m512 __DEFAULT_FN_ATTRS512
116245_mm512_mask_or_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
117246 return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
118247 (__v16sf)_mm512_or_ps(__A, __B),
119248 (__v16sf)__W);
120249}
121250
122static __inline__ __m512 __DEFAULT_FN_ATTRS
251static __inline__ __m512 __DEFAULT_FN_ATTRS512
123252_mm512_maskz_or_ps(__mmask16 __U, __m512 __A, __m512 __B) {
124253 return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
125254 (__v16sf)_mm512_or_ps(__A, __B),
126255 (__v16sf)_mm512_setzero_ps());
127256}
128257
129static __inline__ __m512d __DEFAULT_FN_ATTRS
258static __inline__ __m512d __DEFAULT_FN_ATTRS512
130259_mm512_and_pd(__m512d __A, __m512d __B) {
131260 return (__m512d)((__v8du)__A & (__v8du)__B);
132261}
133262
134static __inline__ __m512d __DEFAULT_FN_ATTRS
263static __inline__ __m512d __DEFAULT_FN_ATTRS512
135264_mm512_mask_and_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
136265 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
137266 (__v8df)_mm512_and_pd(__A, __B),
138267 (__v8df)__W);
139268}
140269
141static __inline__ __m512d __DEFAULT_FN_ATTRS
270static __inline__ __m512d __DEFAULT_FN_ATTRS512
142271_mm512_maskz_and_pd(__mmask8 __U, __m512d __A, __m512d __B) {
143272 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
144273 (__v8df)_mm512_and_pd(__A, __B),
145274 (__v8df)_mm512_setzero_pd());
146275}
147276
148static __inline__ __m512 __DEFAULT_FN_ATTRS
277static __inline__ __m512 __DEFAULT_FN_ATTRS512
149278_mm512_and_ps(__m512 __A, __m512 __B) {
150279 return (__m512)((__v16su)__A & (__v16su)__B);
151280}
152281
153static __inline__ __m512 __DEFAULT_FN_ATTRS
282static __inline__ __m512 __DEFAULT_FN_ATTRS512
154283_mm512_mask_and_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
155284 return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
156285 (__v16sf)_mm512_and_ps(__A, __B),
157286 (__v16sf)__W);
158287}
159288
160static __inline__ __m512 __DEFAULT_FN_ATTRS
289static __inline__ __m512 __DEFAULT_FN_ATTRS512
161290_mm512_maskz_and_ps(__mmask16 __U, __m512 __A, __m512 __B) {
162291 return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
163292 (__v16sf)_mm512_and_ps(__A, __B),
164293 (__v16sf)_mm512_setzero_ps());
165294}
166295
167static __inline__ __m512d __DEFAULT_FN_ATTRS
296static __inline__ __m512d __DEFAULT_FN_ATTRS512
168297_mm512_andnot_pd(__m512d __A, __m512d __B) {
169298 return (__m512d)(~(__v8du)__A & (__v8du)__B);
170299}
171300
172static __inline__ __m512d __DEFAULT_FN_ATTRS
301static __inline__ __m512d __DEFAULT_FN_ATTRS512
173302_mm512_mask_andnot_pd(__m512d __W, __mmask8 __U, __m512d __A, __m512d __B) {
174303 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
175304 (__v8df)_mm512_andnot_pd(__A, __B),
176305 (__v8df)__W);
177306}
178307
179static __inline__ __m512d __DEFAULT_FN_ATTRS
308static __inline__ __m512d __DEFAULT_FN_ATTRS512
180309_mm512_maskz_andnot_pd(__mmask8 __U, __m512d __A, __m512d __B) {
181310 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
182311 (__v8df)_mm512_andnot_pd(__A, __B),
183312 (__v8df)_mm512_setzero_pd());
184313}
185314
186static __inline__ __m512 __DEFAULT_FN_ATTRS
315static __inline__ __m512 __DEFAULT_FN_ATTRS512
187316_mm512_andnot_ps(__m512 __A, __m512 __B) {
188317 return (__m512)(~(__v16su)__A & (__v16su)__B);
189318}
190319
191static __inline__ __m512 __DEFAULT_FN_ATTRS
320static __inline__ __m512 __DEFAULT_FN_ATTRS512
192321_mm512_mask_andnot_ps(__m512 __W, __mmask16 __U, __m512 __A, __m512 __B) {
193322 return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
194323 (__v16sf)_mm512_andnot_ps(__A, __B),
195324 (__v16sf)__W);
196325}
197326
198static __inline__ __m512 __DEFAULT_FN_ATTRS
327static __inline__ __m512 __DEFAULT_FN_ATTRS512
199328_mm512_maskz_andnot_ps(__mmask16 __U, __m512 __A, __m512 __B) {
200329 return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
201330 (__v16sf)_mm512_andnot_ps(__A, __B),
202331 (__v16sf)_mm512_setzero_ps());
203332}
204333
205static __inline__ __m512i __DEFAULT_FN_ATTRS
334static __inline__ __m512i __DEFAULT_FN_ATTRS512
206335_mm512_cvtpd_epi64 (__m512d __A) {
207336 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
208337 (__v8di) _mm512_setzero_si512(),
......@@ -210,7 +339,7 @@ _mm512_cvtpd_epi64 (__m512d __A) {
210339 _MM_FROUND_CUR_DIRECTION);
211340}
212341
213static __inline__ __m512i __DEFAULT_FN_ATTRS
342static __inline__ __m512i __DEFAULT_FN_ATTRS512
214343_mm512_mask_cvtpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) {
215344 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
216345 (__v8di) __W,
......@@ -218,7 +347,7 @@ _mm512_mask_cvtpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) {
218347 _MM_FROUND_CUR_DIRECTION);
219348}
220349
221static __inline__ __m512i __DEFAULT_FN_ATTRS
350static __inline__ __m512i __DEFAULT_FN_ATTRS512
222351_mm512_maskz_cvtpd_epi64 (__mmask8 __U, __m512d __A) {
223352 return (__m512i) __builtin_ia32_cvtpd2qq512_mask ((__v8df) __A,
224353 (__v8di) _mm512_setzero_si512(),
......@@ -241,7 +370,7 @@ _mm512_maskz_cvtpd_epi64 (__mmask8 __U, __m512d __A) {
241370 (__v8di)_mm512_setzero_si512(), \
242371 (__mmask8)(U), (int)(R))
243372
244static __inline__ __m512i __DEFAULT_FN_ATTRS
373static __inline__ __m512i __DEFAULT_FN_ATTRS512
245374_mm512_cvtpd_epu64 (__m512d __A) {
246375 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
247376 (__v8di) _mm512_setzero_si512(),
......@@ -249,7 +378,7 @@ _mm512_cvtpd_epu64 (__m512d __A) {
249378 _MM_FROUND_CUR_DIRECTION);
250379}
251380
252static __inline__ __m512i __DEFAULT_FN_ATTRS
381static __inline__ __m512i __DEFAULT_FN_ATTRS512
253382_mm512_mask_cvtpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) {
254383 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
255384 (__v8di) __W,
......@@ -257,7 +386,7 @@ _mm512_mask_cvtpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) {
257386 _MM_FROUND_CUR_DIRECTION);
258387}
259388
260static __inline__ __m512i __DEFAULT_FN_ATTRS
389static __inline__ __m512i __DEFAULT_FN_ATTRS512
261390_mm512_maskz_cvtpd_epu64 (__mmask8 __U, __m512d __A) {
262391 return (__m512i) __builtin_ia32_cvtpd2uqq512_mask ((__v8df) __A,
263392 (__v8di) _mm512_setzero_si512(),
......@@ -280,7 +409,7 @@ _mm512_maskz_cvtpd_epu64 (__mmask8 __U, __m512d __A) {
280409 (__v8di)_mm512_setzero_si512(), \
281410 (__mmask8)(U), (int)(R))
282411
283static __inline__ __m512i __DEFAULT_FN_ATTRS
412static __inline__ __m512i __DEFAULT_FN_ATTRS512
284413_mm512_cvtps_epi64 (__m256 __A) {
285414 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
286415 (__v8di) _mm512_setzero_si512(),
......@@ -288,7 +417,7 @@ _mm512_cvtps_epi64 (__m256 __A) {
288417 _MM_FROUND_CUR_DIRECTION);
289418}
290419
291static __inline__ __m512i __DEFAULT_FN_ATTRS
420static __inline__ __m512i __DEFAULT_FN_ATTRS512
292421_mm512_mask_cvtps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) {
293422 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
294423 (__v8di) __W,
......@@ -296,7 +425,7 @@ _mm512_mask_cvtps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) {
296425 _MM_FROUND_CUR_DIRECTION);
297426}
298427
299static __inline__ __m512i __DEFAULT_FN_ATTRS
428static __inline__ __m512i __DEFAULT_FN_ATTRS512
300429_mm512_maskz_cvtps_epi64 (__mmask8 __U, __m256 __A) {
301430 return (__m512i) __builtin_ia32_cvtps2qq512_mask ((__v8sf) __A,
302431 (__v8di) _mm512_setzero_si512(),
......@@ -319,7 +448,7 @@ _mm512_maskz_cvtps_epi64 (__mmask8 __U, __m256 __A) {
319448 (__v8di)_mm512_setzero_si512(), \
320449 (__mmask8)(U), (int)(R))
321450
322static __inline__ __m512i __DEFAULT_FN_ATTRS
451static __inline__ __m512i __DEFAULT_FN_ATTRS512
323452_mm512_cvtps_epu64 (__m256 __A) {
324453 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
325454 (__v8di) _mm512_setzero_si512(),
......@@ -327,7 +456,7 @@ _mm512_cvtps_epu64 (__m256 __A) {
327456 _MM_FROUND_CUR_DIRECTION);
328457}
329458
330static __inline__ __m512i __DEFAULT_FN_ATTRS
459static __inline__ __m512i __DEFAULT_FN_ATTRS512
331460_mm512_mask_cvtps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) {
332461 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
333462 (__v8di) __W,
......@@ -335,7 +464,7 @@ _mm512_mask_cvtps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) {
335464 _MM_FROUND_CUR_DIRECTION);
336465}
337466
338static __inline__ __m512i __DEFAULT_FN_ATTRS
467static __inline__ __m512i __DEFAULT_FN_ATTRS512
339468_mm512_maskz_cvtps_epu64 (__mmask8 __U, __m256 __A) {
340469 return (__m512i) __builtin_ia32_cvtps2uqq512_mask ((__v8sf) __A,
341470 (__v8di) _mm512_setzero_si512(),
......@@ -359,19 +488,19 @@ _mm512_maskz_cvtps_epu64 (__mmask8 __U, __m256 __A) {
359488 (__mmask8)(U), (int)(R))
360489
361490
362static __inline__ __m512d __DEFAULT_FN_ATTRS
491static __inline__ __m512d __DEFAULT_FN_ATTRS512
363492_mm512_cvtepi64_pd (__m512i __A) {
364493 return (__m512d)__builtin_convertvector((__v8di)__A, __v8df);
365494}
366495
367static __inline__ __m512d __DEFAULT_FN_ATTRS
496static __inline__ __m512d __DEFAULT_FN_ATTRS512
368497_mm512_mask_cvtepi64_pd (__m512d __W, __mmask8 __U, __m512i __A) {
369498 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
370499 (__v8df)_mm512_cvtepi64_pd(__A),
371500 (__v8df)__W);
372501}
373502
374static __inline__ __m512d __DEFAULT_FN_ATTRS
503static __inline__ __m512d __DEFAULT_FN_ATTRS512
375504_mm512_maskz_cvtepi64_pd (__mmask8 __U, __m512i __A) {
376505 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
377506 (__v8df)_mm512_cvtepi64_pd(__A),
......@@ -393,7 +522,7 @@ _mm512_maskz_cvtepi64_pd (__mmask8 __U, __m512i __A) {
393522 (__v8df)_mm512_setzero_pd(), \
394523 (__mmask8)(U), (int)(R))
395524
396static __inline__ __m256 __DEFAULT_FN_ATTRS
525static __inline__ __m256 __DEFAULT_FN_ATTRS512
397526_mm512_cvtepi64_ps (__m512i __A) {
398527 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
399528 (__v8sf) _mm256_setzero_ps(),
......@@ -401,7 +530,7 @@ _mm512_cvtepi64_ps (__m512i __A) {
401530 _MM_FROUND_CUR_DIRECTION);
402531}
403532
404static __inline__ __m256 __DEFAULT_FN_ATTRS
533static __inline__ __m256 __DEFAULT_FN_ATTRS512
405534_mm512_mask_cvtepi64_ps (__m256 __W, __mmask8 __U, __m512i __A) {
406535 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
407536 (__v8sf) __W,
......@@ -409,7 +538,7 @@ _mm512_mask_cvtepi64_ps (__m256 __W, __mmask8 __U, __m512i __A) {
409538 _MM_FROUND_CUR_DIRECTION);
410539}
411540
412static __inline__ __m256 __DEFAULT_FN_ATTRS
541static __inline__ __m256 __DEFAULT_FN_ATTRS512
413542_mm512_maskz_cvtepi64_ps (__mmask8 __U, __m512i __A) {
414543 return (__m256) __builtin_ia32_cvtqq2ps512_mask ((__v8di) __A,
415544 (__v8sf) _mm256_setzero_ps(),
......@@ -433,7 +562,7 @@ _mm512_maskz_cvtepi64_ps (__mmask8 __U, __m512i __A) {
433562 (__mmask8)(U), (int)(R))
434563
435564
436static __inline__ __m512i __DEFAULT_FN_ATTRS
565static __inline__ __m512i __DEFAULT_FN_ATTRS512
437566_mm512_cvttpd_epi64 (__m512d __A) {
438567 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
439568 (__v8di) _mm512_setzero_si512(),
......@@ -441,7 +570,7 @@ _mm512_cvttpd_epi64 (__m512d __A) {
441570 _MM_FROUND_CUR_DIRECTION);
442571}
443572
444static __inline__ __m512i __DEFAULT_FN_ATTRS
573static __inline__ __m512i __DEFAULT_FN_ATTRS512
445574_mm512_mask_cvttpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) {
446575 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
447576 (__v8di) __W,
......@@ -449,7 +578,7 @@ _mm512_mask_cvttpd_epi64 (__m512i __W, __mmask8 __U, __m512d __A) {
449578 _MM_FROUND_CUR_DIRECTION);
450579}
451580
452static __inline__ __m512i __DEFAULT_FN_ATTRS
581static __inline__ __m512i __DEFAULT_FN_ATTRS512
453582_mm512_maskz_cvttpd_epi64 (__mmask8 __U, __m512d __A) {
454583 return (__m512i) __builtin_ia32_cvttpd2qq512_mask ((__v8df) __A,
455584 (__v8di) _mm512_setzero_si512(),
......@@ -472,7 +601,7 @@ _mm512_maskz_cvttpd_epi64 (__mmask8 __U, __m512d __A) {
472601 (__v8di)_mm512_setzero_si512(), \
473602 (__mmask8)(U), (int)(R))
474603
475static __inline__ __m512i __DEFAULT_FN_ATTRS
604static __inline__ __m512i __DEFAULT_FN_ATTRS512
476605_mm512_cvttpd_epu64 (__m512d __A) {
477606 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
478607 (__v8di) _mm512_setzero_si512(),
......@@ -480,7 +609,7 @@ _mm512_cvttpd_epu64 (__m512d __A) {
480609 _MM_FROUND_CUR_DIRECTION);
481610}
482611
483static __inline__ __m512i __DEFAULT_FN_ATTRS
612static __inline__ __m512i __DEFAULT_FN_ATTRS512
484613_mm512_mask_cvttpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) {
485614 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
486615 (__v8di) __W,
......@@ -488,7 +617,7 @@ _mm512_mask_cvttpd_epu64 (__m512i __W, __mmask8 __U, __m512d __A) {
488617 _MM_FROUND_CUR_DIRECTION);
489618}
490619
491static __inline__ __m512i __DEFAULT_FN_ATTRS
620static __inline__ __m512i __DEFAULT_FN_ATTRS512
492621_mm512_maskz_cvttpd_epu64 (__mmask8 __U, __m512d __A) {
493622 return (__m512i) __builtin_ia32_cvttpd2uqq512_mask ((__v8df) __A,
494623 (__v8di) _mm512_setzero_si512(),
......@@ -511,7 +640,7 @@ _mm512_maskz_cvttpd_epu64 (__mmask8 __U, __m512d __A) {
511640 (__v8di)_mm512_setzero_si512(), \
512641 (__mmask8)(U), (int)(R))
513642
514static __inline__ __m512i __DEFAULT_FN_ATTRS
643static __inline__ __m512i __DEFAULT_FN_ATTRS512
515644_mm512_cvttps_epi64 (__m256 __A) {
516645 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
517646 (__v8di) _mm512_setzero_si512(),
......@@ -519,7 +648,7 @@ _mm512_cvttps_epi64 (__m256 __A) {
519648 _MM_FROUND_CUR_DIRECTION);
520649}
521650
522static __inline__ __m512i __DEFAULT_FN_ATTRS
651static __inline__ __m512i __DEFAULT_FN_ATTRS512
523652_mm512_mask_cvttps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) {
524653 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
525654 (__v8di) __W,
......@@ -527,7 +656,7 @@ _mm512_mask_cvttps_epi64 (__m512i __W, __mmask8 __U, __m256 __A) {
527656 _MM_FROUND_CUR_DIRECTION);
528657}
529658
530static __inline__ __m512i __DEFAULT_FN_ATTRS
659static __inline__ __m512i __DEFAULT_FN_ATTRS512
531660_mm512_maskz_cvttps_epi64 (__mmask8 __U, __m256 __A) {
532661 return (__m512i) __builtin_ia32_cvttps2qq512_mask ((__v8sf) __A,
533662 (__v8di) _mm512_setzero_si512(),
......@@ -550,7 +679,7 @@ _mm512_maskz_cvttps_epi64 (__mmask8 __U, __m256 __A) {
550679 (__v8di)_mm512_setzero_si512(), \
551680 (__mmask8)(U), (int)(R))
552681
553static __inline__ __m512i __DEFAULT_FN_ATTRS
682static __inline__ __m512i __DEFAULT_FN_ATTRS512
554683_mm512_cvttps_epu64 (__m256 __A) {
555684 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
556685 (__v8di) _mm512_setzero_si512(),
......@@ -558,7 +687,7 @@ _mm512_cvttps_epu64 (__m256 __A) {
558687 _MM_FROUND_CUR_DIRECTION);
559688}
560689
561static __inline__ __m512i __DEFAULT_FN_ATTRS
690static __inline__ __m512i __DEFAULT_FN_ATTRS512
562691_mm512_mask_cvttps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) {
563692 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
564693 (__v8di) __W,
......@@ -566,7 +695,7 @@ _mm512_mask_cvttps_epu64 (__m512i __W, __mmask8 __U, __m256 __A) {
566695 _MM_FROUND_CUR_DIRECTION);
567696}
568697
569static __inline__ __m512i __DEFAULT_FN_ATTRS
698static __inline__ __m512i __DEFAULT_FN_ATTRS512
570699_mm512_maskz_cvttps_epu64 (__mmask8 __U, __m256 __A) {
571700 return (__m512i) __builtin_ia32_cvttps2uqq512_mask ((__v8sf) __A,
572701 (__v8di) _mm512_setzero_si512(),
......@@ -589,19 +718,19 @@ _mm512_maskz_cvttps_epu64 (__mmask8 __U, __m256 __A) {
589718 (__v8di)_mm512_setzero_si512(), \
590719 (__mmask8)(U), (int)(R))
591720
592static __inline__ __m512d __DEFAULT_FN_ATTRS
721static __inline__ __m512d __DEFAULT_FN_ATTRS512
593722_mm512_cvtepu64_pd (__m512i __A) {
594723 return (__m512d)__builtin_convertvector((__v8du)__A, __v8df);
595724}
596725
597static __inline__ __m512d __DEFAULT_FN_ATTRS
726static __inline__ __m512d __DEFAULT_FN_ATTRS512
598727_mm512_mask_cvtepu64_pd (__m512d __W, __mmask8 __U, __m512i __A) {
599728 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
600729 (__v8df)_mm512_cvtepu64_pd(__A),
601730 (__v8df)__W);
602731}
603732
604static __inline__ __m512d __DEFAULT_FN_ATTRS
733static __inline__ __m512d __DEFAULT_FN_ATTRS512
605734_mm512_maskz_cvtepu64_pd (__mmask8 __U, __m512i __A) {
606735 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__U,
607736 (__v8df)_mm512_cvtepu64_pd(__A),
......@@ -625,7 +754,7 @@ _mm512_maskz_cvtepu64_pd (__mmask8 __U, __m512i __A) {
625754 (__mmask8)(U), (int)(R))
626755
627756
628static __inline__ __m256 __DEFAULT_FN_ATTRS
757static __inline__ __m256 __DEFAULT_FN_ATTRS512
629758_mm512_cvtepu64_ps (__m512i __A) {
630759 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
631760 (__v8sf) _mm256_setzero_ps(),
......@@ -633,7 +762,7 @@ _mm512_cvtepu64_ps (__m512i __A) {
633762 _MM_FROUND_CUR_DIRECTION);
634763}
635764
636static __inline__ __m256 __DEFAULT_FN_ATTRS
765static __inline__ __m256 __DEFAULT_FN_ATTRS512
637766_mm512_mask_cvtepu64_ps (__m256 __W, __mmask8 __U, __m512i __A) {
638767 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
639768 (__v8sf) __W,
......@@ -641,7 +770,7 @@ _mm512_mask_cvtepu64_ps (__m256 __W, __mmask8 __U, __m512i __A) {
641770 _MM_FROUND_CUR_DIRECTION);
642771}
643772
644static __inline__ __m256 __DEFAULT_FN_ATTRS
773static __inline__ __m256 __DEFAULT_FN_ATTRS512
645774_mm512_maskz_cvtepu64_ps (__mmask8 __U, __m512i __A) {
646775 return (__m256) __builtin_ia32_cvtuqq2ps512_mask ((__v8di) __A,
647776 (__v8sf) _mm256_setzero_ps(),
......@@ -935,32 +1064,32 @@ _mm512_maskz_cvtepu64_ps (__mmask8 __U, __m512i __A) {
9351064 (__v2df)_mm_setzero_pd(), \
9361065 (__mmask8)(U), (int)(C), (int)(R))
9371066
938static __inline__ __mmask16 __DEFAULT_FN_ATTRS
1067static __inline__ __mmask16 __DEFAULT_FN_ATTRS512
9391068_mm512_movepi32_mask (__m512i __A)
9401069{
9411070 return (__mmask16) __builtin_ia32_cvtd2mask512 ((__v16si) __A);
9421071}
9431072
944static __inline__ __m512i __DEFAULT_FN_ATTRS
1073static __inline__ __m512i __DEFAULT_FN_ATTRS512
9451074_mm512_movm_epi32 (__mmask16 __A)
9461075{
9471076 return (__m512i) __builtin_ia32_cvtmask2d512 (__A);
9481077}
9491078
950static __inline__ __m512i __DEFAULT_FN_ATTRS
1079static __inline__ __m512i __DEFAULT_FN_ATTRS512
9511080_mm512_movm_epi64 (__mmask8 __A)
9521081{
9531082 return (__m512i) __builtin_ia32_cvtmask2q512 (__A);
9541083}
9551084
956static __inline__ __mmask8 __DEFAULT_FN_ATTRS
1085static __inline__ __mmask8 __DEFAULT_FN_ATTRS512
9571086_mm512_movepi64_mask (__m512i __A)
9581087{
9591088 return (__mmask8) __builtin_ia32_cvtq2mask512 ((__v8di) __A);
9601089}
9611090
9621091
963static __inline__ __m512 __DEFAULT_FN_ATTRS
1092static __inline__ __m512 __DEFAULT_FN_ATTRS512
9641093_mm512_broadcast_f32x2 (__m128 __A)
9651094{
9661095 return (__m512)__builtin_shufflevector((__v4sf)__A, (__v4sf)__A,
......@@ -968,7 +1097,7 @@ _mm512_broadcast_f32x2 (__m128 __A)
9681097 0, 1, 0, 1, 0, 1, 0, 1);
9691098}
9701099
971static __inline__ __m512 __DEFAULT_FN_ATTRS
1100static __inline__ __m512 __DEFAULT_FN_ATTRS512
9721101_mm512_mask_broadcast_f32x2 (__m512 __O, __mmask16 __M, __m128 __A)
9731102{
9741103 return (__m512)__builtin_ia32_selectps_512((__mmask16)__M,
......@@ -976,7 +1105,7 @@ _mm512_mask_broadcast_f32x2 (__m512 __O, __mmask16 __M, __m128 __A)
9761105 (__v16sf)__O);
9771106}
9781107
979static __inline__ __m512 __DEFAULT_FN_ATTRS
1108static __inline__ __m512 __DEFAULT_FN_ATTRS512
9801109_mm512_maskz_broadcast_f32x2 (__mmask16 __M, __m128 __A)
9811110{
9821111 return (__m512)__builtin_ia32_selectps_512((__mmask16)__M,
......@@ -984,7 +1113,7 @@ _mm512_maskz_broadcast_f32x2 (__mmask16 __M, __m128 __A)
9841113 (__v16sf)_mm512_setzero_ps());
9851114}
9861115
987static __inline__ __m512 __DEFAULT_FN_ATTRS
1116static __inline__ __m512 __DEFAULT_FN_ATTRS512
9881117_mm512_broadcast_f32x8(__m256 __A)
9891118{
9901119 return (__m512)__builtin_shufflevector((__v8sf)__A, (__v8sf)__A,
......@@ -992,7 +1121,7 @@ _mm512_broadcast_f32x8(__m256 __A)
9921121 0, 1, 2, 3, 4, 5, 6, 7);
9931122}
9941123
995static __inline__ __m512 __DEFAULT_FN_ATTRS
1124static __inline__ __m512 __DEFAULT_FN_ATTRS512
9961125_mm512_mask_broadcast_f32x8(__m512 __O, __mmask16 __M, __m256 __A)
9971126{
9981127 return (__m512)__builtin_ia32_selectps_512((__mmask16)__M,
......@@ -1000,7 +1129,7 @@ _mm512_mask_broadcast_f32x8(__m512 __O, __mmask16 __M, __m256 __A)
10001129 (__v16sf)__O);
10011130}
10021131
1003static __inline__ __m512 __DEFAULT_FN_ATTRS
1132static __inline__ __m512 __DEFAULT_FN_ATTRS512
10041133_mm512_maskz_broadcast_f32x8(__mmask16 __M, __m256 __A)
10051134{
10061135 return (__m512)__builtin_ia32_selectps_512((__mmask16)__M,
......@@ -1008,14 +1137,14 @@ _mm512_maskz_broadcast_f32x8(__mmask16 __M, __m256 __A)
10081137 (__v16sf)_mm512_setzero_ps());
10091138}
10101139
1011static __inline__ __m512d __DEFAULT_FN_ATTRS
1140static __inline__ __m512d __DEFAULT_FN_ATTRS512
10121141_mm512_broadcast_f64x2(__m128d __A)
10131142{
10141143 return (__m512d)__builtin_shufflevector((__v2df)__A, (__v2df)__A,
10151144 0, 1, 0, 1, 0, 1, 0, 1);
10161145}
10171146
1018static __inline__ __m512d __DEFAULT_FN_ATTRS
1147static __inline__ __m512d __DEFAULT_FN_ATTRS512
10191148_mm512_mask_broadcast_f64x2(__m512d __O, __mmask8 __M, __m128d __A)
10201149{
10211150 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__M,
......@@ -1023,7 +1152,7 @@ _mm512_mask_broadcast_f64x2(__m512d __O, __mmask8 __M, __m128d __A)
10231152 (__v8df)__O);
10241153}
10251154
1026static __inline__ __m512d __DEFAULT_FN_ATTRS
1155static __inline__ __m512d __DEFAULT_FN_ATTRS512
10271156_mm512_maskz_broadcast_f64x2(__mmask8 __M, __m128d __A)
10281157{
10291158 return (__m512d)__builtin_ia32_selectpd_512((__mmask8)__M,
......@@ -1031,7 +1160,7 @@ _mm512_maskz_broadcast_f64x2(__mmask8 __M, __m128d __A)
10311160 (__v8df)_mm512_setzero_pd());
10321161}
10331162
1034static __inline__ __m512i __DEFAULT_FN_ATTRS
1163static __inline__ __m512i __DEFAULT_FN_ATTRS512
10351164_mm512_broadcast_i32x2 (__m128i __A)
10361165{
10371166 return (__m512i)__builtin_shufflevector((__v4si)__A, (__v4si)__A,
......@@ -1039,7 +1168,7 @@ _mm512_broadcast_i32x2 (__m128i __A)
10391168 0, 1, 0, 1, 0, 1, 0, 1);
10401169}
10411170
1042static __inline__ __m512i __DEFAULT_FN_ATTRS
1171static __inline__ __m512i __DEFAULT_FN_ATTRS512
10431172_mm512_mask_broadcast_i32x2 (__m512i __O, __mmask16 __M, __m128i __A)
10441173{
10451174 return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M,
......@@ -1047,7 +1176,7 @@ _mm512_mask_broadcast_i32x2 (__m512i __O, __mmask16 __M, __m128i __A)
10471176 (__v16si)__O);
10481177}
10491178
1050static __inline__ __m512i __DEFAULT_FN_ATTRS
1179static __inline__ __m512i __DEFAULT_FN_ATTRS512
10511180_mm512_maskz_broadcast_i32x2 (__mmask16 __M, __m128i __A)
10521181{
10531182 return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M,
......@@ -1055,7 +1184,7 @@ _mm512_maskz_broadcast_i32x2 (__mmask16 __M, __m128i __A)
10551184 (__v16si)_mm512_setzero_si512());
10561185}
10571186
1058static __inline__ __m512i __DEFAULT_FN_ATTRS
1187static __inline__ __m512i __DEFAULT_FN_ATTRS512
10591188_mm512_broadcast_i32x8(__m256i __A)
10601189{
10611190 return (__m512i)__builtin_shufflevector((__v8si)__A, (__v8si)__A,
......@@ -1063,7 +1192,7 @@ _mm512_broadcast_i32x8(__m256i __A)
10631192 0, 1, 2, 3, 4, 5, 6, 7);
10641193}
10651194
1066static __inline__ __m512i __DEFAULT_FN_ATTRS
1195static __inline__ __m512i __DEFAULT_FN_ATTRS512
10671196_mm512_mask_broadcast_i32x8(__m512i __O, __mmask16 __M, __m256i __A)
10681197{
10691198 return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M,
......@@ -1071,7 +1200,7 @@ _mm512_mask_broadcast_i32x8(__m512i __O, __mmask16 __M, __m256i __A)
10711200 (__v16si)__O);
10721201}
10731202
1074static __inline__ __m512i __DEFAULT_FN_ATTRS
1203static __inline__ __m512i __DEFAULT_FN_ATTRS512
10751204_mm512_maskz_broadcast_i32x8(__mmask16 __M, __m256i __A)
10761205{
10771206 return (__m512i)__builtin_ia32_selectd_512((__mmask16)__M,
......@@ -1079,14 +1208,14 @@ _mm512_maskz_broadcast_i32x8(__mmask16 __M, __m256i __A)
10791208 (__v16si)_mm512_setzero_si512());
10801209}
10811210
1082static __inline__ __m512i __DEFAULT_FN_ATTRS
1211static __inline__ __m512i __DEFAULT_FN_ATTRS512
10831212_mm512_broadcast_i64x2(__m128i __A)
10841213{
10851214 return (__m512i)__builtin_shufflevector((__v2di)__A, (__v2di)__A,
10861215 0, 1, 0, 1, 0, 1, 0, 1);
10871216}
10881217
1089static __inline__ __m512i __DEFAULT_FN_ATTRS
1218static __inline__ __m512i __DEFAULT_FN_ATTRS512
10901219_mm512_mask_broadcast_i64x2(__m512i __O, __mmask8 __M, __m128i __A)
10911220{
10921221 return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M,
......@@ -1094,7 +1223,7 @@ _mm512_mask_broadcast_i64x2(__m512i __O, __mmask8 __M, __m128i __A)
10941223 (__v8di)__O);
10951224}
10961225
1097static __inline__ __m512i __DEFAULT_FN_ATTRS
1226static __inline__ __m512i __DEFAULT_FN_ATTRS512
10981227_mm512_maskz_broadcast_i64x2(__mmask8 __M, __m128i __A)
10991228{
11001229 return (__m512i)__builtin_ia32_selectq_512((__mmask8)__M,
......@@ -1256,6 +1385,7 @@ _mm512_maskz_broadcast_i64x2(__mmask8 __M, __m128i __A)
12561385 (__mmask8)__builtin_ia32_fpclassss_mask((__v4sf)(__m128)(A), (int)(imm), \
12571386 (__mmask8)(U))
12581387
1388#undef __DEFAULT_FN_ATTRS512
12591389#undef __DEFAULT_FN_ATTRS
12601390
12611391#endif
c_headers/avx512fintrin.h+133-44
......@@ -175,6 +175,7 @@ typedef enum
175175/* Define the default attributes for the functions in this file. */
176176#define __DEFAULT_FN_ATTRS512 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(512)))
177177#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512f"), __min_vector_width__(128)))
178#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512f")))
178179
179180/* Create vectors with repeated elements */
180181
......@@ -508,13 +509,13 @@ _mm512_castsi512_si256 (__m512i __A)
508509 return (__m256i)__builtin_shufflevector(__A, __A , 0, 1, 2, 3);
509510}
510511
511static __inline__ __mmask16 __DEFAULT_FN_ATTRS512
512static __inline__ __mmask16 __DEFAULT_FN_ATTRS
512513_mm512_int2mask(int __a)
513514{
514515 return (__mmask16)__a;
515516}
516517
517static __inline__ int __DEFAULT_FN_ATTRS512
518static __inline__ int __DEFAULT_FN_ATTRS
518519_mm512_mask2int(__mmask16 __a)
519520{
520521 return (int)__a;
......@@ -4328,6 +4329,15 @@ _mm512_loadu_si512 (void const *__P)
43284329 return ((struct __loadu_si512*)__P)->__v;
43294330}
43304331
4332static __inline __m512i __DEFAULT_FN_ATTRS512
4333_mm512_loadu_epi32 (void const *__P)
4334{
4335 struct __loadu_epi32 {
4336 __m512i __v;
4337 } __attribute__((__packed__, __may_alias__));
4338 return ((struct __loadu_epi32*)__P)->__v;
4339}
4340
43314341static __inline __m512i __DEFAULT_FN_ATTRS512
43324342_mm512_mask_loadu_epi32 (__m512i __W, __mmask16 __U, void const *__P)
43334343{
......@@ -4346,6 +4356,15 @@ _mm512_maskz_loadu_epi32(__mmask16 __U, void const *__P)
43464356 (__mmask16) __U);
43474357}
43484358
4359static __inline __m512i __DEFAULT_FN_ATTRS512
4360_mm512_loadu_epi64 (void const *__P)
4361{
4362 struct __loadu_epi64 {
4363 __m512i __v;
4364 } __attribute__((__packed__, __may_alias__));
4365 return ((struct __loadu_epi64*)__P)->__v;
4366}
4367
43494368static __inline __m512i __DEFAULT_FN_ATTRS512
43504369_mm512_mask_loadu_epi64 (__m512i __W, __mmask8 __U, void const *__P)
43514370{
......@@ -4481,6 +4500,15 @@ _mm512_load_epi64 (void const *__P)
44814500
44824501/* SIMD store ops */
44834502
4503static __inline void __DEFAULT_FN_ATTRS512
4504_mm512_storeu_epi64 (void *__P, __m512i __A)
4505{
4506 struct __storeu_epi64 {
4507 __m512i __v;
4508 } __attribute__((__packed__, __may_alias__));
4509 ((struct __storeu_epi64*)__P)->__v = __A;
4510}
4511
44844512static __inline void __DEFAULT_FN_ATTRS512
44854513_mm512_mask_storeu_epi64(void *__P, __mmask8 __U, __m512i __A)
44864514{
......@@ -4497,6 +4525,15 @@ _mm512_storeu_si512 (void *__P, __m512i __A)
44974525 ((struct __storeu_si512*)__P)->__v = __A;
44984526}
44994527
4528static __inline void __DEFAULT_FN_ATTRS512
4529_mm512_storeu_epi32 (void *__P, __m512i __A)
4530{
4531 struct __storeu_epi32 {
4532 __m512i __v;
4533 } __attribute__((__packed__, __may_alias__));
4534 ((struct __storeu_epi32*)__P)->__v = __A;
4535}
4536
45004537static __inline void __DEFAULT_FN_ATTRS512
45014538_mm512_mask_storeu_epi32(void *__P, __mmask16 __U, __m512i __A)
45024539{
......@@ -4580,7 +4617,7 @@ _mm512_store_epi64 (void *__P, __m512i __A)
45804617
45814618/* Mask ops */
45824619
4583static __inline __mmask16 __DEFAULT_FN_ATTRS512
4620static __inline __mmask16 __DEFAULT_FN_ATTRS
45844621_mm512_knot(__mmask16 __M)
45854622{
45864623 return __builtin_ia32_knothi(__M);
......@@ -5622,7 +5659,7 @@ _mm_maskz_getexp_ss (__mmask8 __U, __m128 __A, __m128 __B)
56225659 (__v4sf)_mm_setzero_ps(), \
56235660 (__mmask8)(U), (int)(R))
56245661
5625static __inline__ __mmask16 __DEFAULT_FN_ATTRS512
5662static __inline__ __mmask16 __DEFAULT_FN_ATTRS
56265663_mm512_kmov (__mmask16 __A)
56275664{
56285665 return __A;
......@@ -7593,177 +7630,177 @@ _mm512_maskz_getexp_ps (__mmask16 __U, __m512 __A)
75937630
75947631#define _mm512_i64gather_ps(index, addr, scale) \
75957632 (__m256)__builtin_ia32_gatherdiv16sf((__v8sf)_mm256_undefined_ps(), \
7596 (float const *)(addr), \
7633 (void const *)(addr), \
75977634 (__v8di)(__m512i)(index), (__mmask8)-1, \
75987635 (int)(scale))
75997636
76007637#define _mm512_mask_i64gather_ps(v1_old, mask, index, addr, scale) \
76017638 (__m256)__builtin_ia32_gatherdiv16sf((__v8sf)(__m256)(v1_old),\
7602 (float const *)(addr), \
7639 (void const *)(addr), \
76037640 (__v8di)(__m512i)(index), \
76047641 (__mmask8)(mask), (int)(scale))
76057642
76067643#define _mm512_i64gather_epi32(index, addr, scale) \
76077644 (__m256i)__builtin_ia32_gatherdiv16si((__v8si)_mm256_undefined_si256(), \
7608 (int const *)(addr), \
7645 (void const *)(addr), \
76097646 (__v8di)(__m512i)(index), \
76107647 (__mmask8)-1, (int)(scale))
76117648
76127649#define _mm512_mask_i64gather_epi32(v1_old, mask, index, addr, scale) \
76137650 (__m256i)__builtin_ia32_gatherdiv16si((__v8si)(__m256i)(v1_old), \
7614 (int const *)(addr), \
7651 (void const *)(addr), \
76157652 (__v8di)(__m512i)(index), \
76167653 (__mmask8)(mask), (int)(scale))
76177654
76187655#define _mm512_i64gather_pd(index, addr, scale) \
76197656 (__m512d)__builtin_ia32_gatherdiv8df((__v8df)_mm512_undefined_pd(), \
7620 (double const *)(addr), \
7657 (void const *)(addr), \
76217658 (__v8di)(__m512i)(index), (__mmask8)-1, \
76227659 (int)(scale))
76237660
76247661#define _mm512_mask_i64gather_pd(v1_old, mask, index, addr, scale) \
76257662 (__m512d)__builtin_ia32_gatherdiv8df((__v8df)(__m512d)(v1_old), \
7626 (double const *)(addr), \
7663 (void const *)(addr), \
76277664 (__v8di)(__m512i)(index), \
76287665 (__mmask8)(mask), (int)(scale))
76297666
76307667#define _mm512_i64gather_epi64(index, addr, scale) \
76317668 (__m512i)__builtin_ia32_gatherdiv8di((__v8di)_mm512_undefined_epi32(), \
7632 (long long const *)(addr), \
7669 (void const *)(addr), \
76337670 (__v8di)(__m512i)(index), (__mmask8)-1, \
76347671 (int)(scale))
76357672
76367673#define _mm512_mask_i64gather_epi64(v1_old, mask, index, addr, scale) \
76377674 (__m512i)__builtin_ia32_gatherdiv8di((__v8di)(__m512i)(v1_old), \
7638 (long long const *)(addr), \
7675 (void const *)(addr), \
76397676 (__v8di)(__m512i)(index), \
76407677 (__mmask8)(mask), (int)(scale))
76417678
76427679#define _mm512_i32gather_ps(index, addr, scale) \
76437680 (__m512)__builtin_ia32_gathersiv16sf((__v16sf)_mm512_undefined_ps(), \
7644 (float const *)(addr), \
7681 (void const *)(addr), \
76457682 (__v16sf)(__m512)(index), \
76467683 (__mmask16)-1, (int)(scale))
76477684
76487685#define _mm512_mask_i32gather_ps(v1_old, mask, index, addr, scale) \
76497686 (__m512)__builtin_ia32_gathersiv16sf((__v16sf)(__m512)(v1_old), \
7650 (float const *)(addr), \
7687 (void const *)(addr), \
76517688 (__v16sf)(__m512)(index), \
76527689 (__mmask16)(mask), (int)(scale))
76537690
76547691#define _mm512_i32gather_epi32(index, addr, scale) \
76557692 (__m512i)__builtin_ia32_gathersiv16si((__v16si)_mm512_undefined_epi32(), \
7656 (int const *)(addr), \
7693 (void const *)(addr), \
76577694 (__v16si)(__m512i)(index), \
76587695 (__mmask16)-1, (int)(scale))
76597696
76607697#define _mm512_mask_i32gather_epi32(v1_old, mask, index, addr, scale) \
76617698 (__m512i)__builtin_ia32_gathersiv16si((__v16si)(__m512i)(v1_old), \
7662 (int const *)(addr), \
7699 (void const *)(addr), \
76637700 (__v16si)(__m512i)(index), \
76647701 (__mmask16)(mask), (int)(scale))
76657702
76667703#define _mm512_i32gather_pd(index, addr, scale) \
76677704 (__m512d)__builtin_ia32_gathersiv8df((__v8df)_mm512_undefined_pd(), \
7668 (double const *)(addr), \
7705 (void const *)(addr), \
76697706 (__v8si)(__m256i)(index), (__mmask8)-1, \
76707707 (int)(scale))
76717708
76727709#define _mm512_mask_i32gather_pd(v1_old, mask, index, addr, scale) \
76737710 (__m512d)__builtin_ia32_gathersiv8df((__v8df)(__m512d)(v1_old), \
7674 (double const *)(addr), \
7711 (void const *)(addr), \
76757712 (__v8si)(__m256i)(index), \
76767713 (__mmask8)(mask), (int)(scale))
76777714
76787715#define _mm512_i32gather_epi64(index, addr, scale) \
76797716 (__m512i)__builtin_ia32_gathersiv8di((__v8di)_mm512_undefined_epi32(), \
7680 (long long const *)(addr), \
7717 (void const *)(addr), \
76817718 (__v8si)(__m256i)(index), (__mmask8)-1, \
76827719 (int)(scale))
76837720
76847721#define _mm512_mask_i32gather_epi64(v1_old, mask, index, addr, scale) \
76857722 (__m512i)__builtin_ia32_gathersiv8di((__v8di)(__m512i)(v1_old), \
7686 (long long const *)(addr), \
7723 (void const *)(addr), \
76877724 (__v8si)(__m256i)(index), \
76887725 (__mmask8)(mask), (int)(scale))
76897726
76907727#define _mm512_i64scatter_ps(addr, index, v1, scale) \
7691 __builtin_ia32_scatterdiv16sf((float *)(addr), (__mmask8)-1, \
7728 __builtin_ia32_scatterdiv16sf((void *)(addr), (__mmask8)-1, \
76927729 (__v8di)(__m512i)(index), \
76937730 (__v8sf)(__m256)(v1), (int)(scale))
76947731
76957732#define _mm512_mask_i64scatter_ps(addr, mask, index, v1, scale) \
7696 __builtin_ia32_scatterdiv16sf((float *)(addr), (__mmask8)(mask), \
7733 __builtin_ia32_scatterdiv16sf((void *)(addr), (__mmask8)(mask), \
76977734 (__v8di)(__m512i)(index), \
76987735 (__v8sf)(__m256)(v1), (int)(scale))
76997736
77007737#define _mm512_i64scatter_epi32(addr, index, v1, scale) \
7701 __builtin_ia32_scatterdiv16si((int *)(addr), (__mmask8)-1, \
7738 __builtin_ia32_scatterdiv16si((void *)(addr), (__mmask8)-1, \
77027739 (__v8di)(__m512i)(index), \
77037740 (__v8si)(__m256i)(v1), (int)(scale))
77047741
77057742#define _mm512_mask_i64scatter_epi32(addr, mask, index, v1, scale) \
7706 __builtin_ia32_scatterdiv16si((int *)(addr), (__mmask8)(mask), \
7743 __builtin_ia32_scatterdiv16si((void *)(addr), (__mmask8)(mask), \
77077744 (__v8di)(__m512i)(index), \
77087745 (__v8si)(__m256i)(v1), (int)(scale))
77097746
77107747#define _mm512_i64scatter_pd(addr, index, v1, scale) \
7711 __builtin_ia32_scatterdiv8df((double *)(addr), (__mmask8)-1, \
7748 __builtin_ia32_scatterdiv8df((void *)(addr), (__mmask8)-1, \
77127749 (__v8di)(__m512i)(index), \
77137750 (__v8df)(__m512d)(v1), (int)(scale))
77147751
77157752#define _mm512_mask_i64scatter_pd(addr, mask, index, v1, scale) \
7716 __builtin_ia32_scatterdiv8df((double *)(addr), (__mmask8)(mask), \
7753 __builtin_ia32_scatterdiv8df((void *)(addr), (__mmask8)(mask), \
77177754 (__v8di)(__m512i)(index), \
77187755 (__v8df)(__m512d)(v1), (int)(scale))
77197756
77207757#define _mm512_i64scatter_epi64(addr, index, v1, scale) \
7721 __builtin_ia32_scatterdiv8di((long long *)(addr), (__mmask8)-1, \
7758 __builtin_ia32_scatterdiv8di((void *)(addr), (__mmask8)-1, \
77227759 (__v8di)(__m512i)(index), \
77237760 (__v8di)(__m512i)(v1), (int)(scale))
77247761
77257762#define _mm512_mask_i64scatter_epi64(addr, mask, index, v1, scale) \
7726 __builtin_ia32_scatterdiv8di((long long *)(addr), (__mmask8)(mask), \
7763 __builtin_ia32_scatterdiv8di((void *)(addr), (__mmask8)(mask), \
77277764 (__v8di)(__m512i)(index), \
77287765 (__v8di)(__m512i)(v1), (int)(scale))
77297766
77307767#define _mm512_i32scatter_ps(addr, index, v1, scale) \
7731 __builtin_ia32_scattersiv16sf((float *)(addr), (__mmask16)-1, \
7768 __builtin_ia32_scattersiv16sf((void *)(addr), (__mmask16)-1, \
77327769 (__v16si)(__m512i)(index), \
77337770 (__v16sf)(__m512)(v1), (int)(scale))
77347771
77357772#define _mm512_mask_i32scatter_ps(addr, mask, index, v1, scale) \
7736 __builtin_ia32_scattersiv16sf((float *)(addr), (__mmask16)(mask), \
7773 __builtin_ia32_scattersiv16sf((void *)(addr), (__mmask16)(mask), \
77377774 (__v16si)(__m512i)(index), \
77387775 (__v16sf)(__m512)(v1), (int)(scale))
77397776
77407777#define _mm512_i32scatter_epi32(addr, index, v1, scale) \
7741 __builtin_ia32_scattersiv16si((int *)(addr), (__mmask16)-1, \
7778 __builtin_ia32_scattersiv16si((void *)(addr), (__mmask16)-1, \
77427779 (__v16si)(__m512i)(index), \
77437780 (__v16si)(__m512i)(v1), (int)(scale))
77447781
77457782#define _mm512_mask_i32scatter_epi32(addr, mask, index, v1, scale) \
7746 __builtin_ia32_scattersiv16si((int *)(addr), (__mmask16)(mask), \
7783 __builtin_ia32_scattersiv16si((void *)(addr), (__mmask16)(mask), \
77477784 (__v16si)(__m512i)(index), \
77487785 (__v16si)(__m512i)(v1), (int)(scale))
77497786
77507787#define _mm512_i32scatter_pd(addr, index, v1, scale) \
7751 __builtin_ia32_scattersiv8df((double *)(addr), (__mmask8)-1, \
7788 __builtin_ia32_scattersiv8df((void *)(addr), (__mmask8)-1, \
77527789 (__v8si)(__m256i)(index), \
77537790 (__v8df)(__m512d)(v1), (int)(scale))
77547791
77557792#define _mm512_mask_i32scatter_pd(addr, mask, index, v1, scale) \
7756 __builtin_ia32_scattersiv8df((double *)(addr), (__mmask8)(mask), \
7793 __builtin_ia32_scattersiv8df((void *)(addr), (__mmask8)(mask), \
77577794 (__v8si)(__m256i)(index), \
77587795 (__v8df)(__m512d)(v1), (int)(scale))
77597796
77607797#define _mm512_i32scatter_epi64(addr, index, v1, scale) \
7761 __builtin_ia32_scattersiv8di((long long *)(addr), (__mmask8)-1, \
7798 __builtin_ia32_scattersiv8di((void *)(addr), (__mmask8)-1, \
77627799 (__v8si)(__m256i)(index), \
77637800 (__v8di)(__m512i)(v1), (int)(scale))
77647801
77657802#define _mm512_mask_i32scatter_epi64(addr, mask, index, v1, scale) \
7766 __builtin_ia32_scattersiv8di((long long *)(addr), (__mmask8)(mask), \
7803 __builtin_ia32_scattersiv8di((void *)(addr), (__mmask8)(mask), \
77677804 (__v8si)(__m256i)(index), \
77687805 (__v8di)(__m512i)(v1), (int)(scale))
77697806
......@@ -8320,54 +8357,105 @@ _mm512_mask_permutexvar_epi32 (__m512i __W, __mmask16 __M, __m512i __X,
83208357
83218358#define _mm512_mask_permutevar_epi32 _mm512_mask_permutexvar_epi32
83228359
8323static __inline__ __mmask16 __DEFAULT_FN_ATTRS512
8360static __inline__ __mmask16 __DEFAULT_FN_ATTRS
83248361_mm512_kand (__mmask16 __A, __mmask16 __B)
83258362{
83268363 return (__mmask16) __builtin_ia32_kandhi ((__mmask16) __A, (__mmask16) __B);
83278364}
83288365
8329static __inline__ __mmask16 __DEFAULT_FN_ATTRS512
8366static __inline__ __mmask16 __DEFAULT_FN_ATTRS
83308367_mm512_kandn (__mmask16 __A, __mmask16 __B)
83318368{
83328369 return (__mmask16) __builtin_ia32_kandnhi ((__mmask16) __A, (__mmask16) __B);
83338370}
83348371
8335static __inline__ __mmask16 __DEFAULT_FN_ATTRS512
8372static __inline__ __mmask16 __DEFAULT_FN_ATTRS
83368373_mm512_kor (__mmask16 __A, __mmask16 __B)
83378374{
83388375 return (__mmask16) __builtin_ia32_korhi ((__mmask16) __A, (__mmask16) __B);
83398376}
83408377
8341static __inline__ int __DEFAULT_FN_ATTRS512
8378static __inline__ int __DEFAULT_FN_ATTRS
83428379_mm512_kortestc (__mmask16 __A, __mmask16 __B)
83438380{
83448381 return __builtin_ia32_kortestchi ((__mmask16) __A, (__mmask16) __B);
83458382}
83468383
8347static __inline__ int __DEFAULT_FN_ATTRS512
8384static __inline__ int __DEFAULT_FN_ATTRS
83488385_mm512_kortestz (__mmask16 __A, __mmask16 __B)
83498386{
83508387 return __builtin_ia32_kortestzhi ((__mmask16) __A, (__mmask16) __B);
83518388}
83528389
8353static __inline__ __mmask16 __DEFAULT_FN_ATTRS512
8390static __inline__ unsigned char __DEFAULT_FN_ATTRS
8391_kortestc_mask16_u8(__mmask16 __A, __mmask16 __B)
8392{
8393 return (unsigned char)__builtin_ia32_kortestchi(__A, __B);
8394}
8395
8396static __inline__ unsigned char __DEFAULT_FN_ATTRS
8397_kortestz_mask16_u8(__mmask16 __A, __mmask16 __B)
8398{
8399 return (unsigned char)__builtin_ia32_kortestzhi(__A, __B);
8400}
8401
8402static __inline__ unsigned char __DEFAULT_FN_ATTRS
8403_kortest_mask16_u8(__mmask16 __A, __mmask16 __B, unsigned char *__C) {
8404 *__C = (unsigned char)__builtin_ia32_kortestchi(__A, __B);
8405 return (unsigned char)__builtin_ia32_kortestzhi(__A, __B);
8406}
8407
8408static __inline__ __mmask16 __DEFAULT_FN_ATTRS
83548409_mm512_kunpackb (__mmask16 __A, __mmask16 __B)
83558410{
83568411 return (__mmask16) __builtin_ia32_kunpckhi ((__mmask16) __A, (__mmask16) __B);
83578412}
83588413
8359static __inline__ __mmask16 __DEFAULT_FN_ATTRS512
8414static __inline__ __mmask16 __DEFAULT_FN_ATTRS
83608415_mm512_kxnor (__mmask16 __A, __mmask16 __B)
83618416{
83628417 return (__mmask16) __builtin_ia32_kxnorhi ((__mmask16) __A, (__mmask16) __B);
83638418}
83648419
8365static __inline__ __mmask16 __DEFAULT_FN_ATTRS512
8420static __inline__ __mmask16 __DEFAULT_FN_ATTRS
83668421_mm512_kxor (__mmask16 __A, __mmask16 __B)
83678422{
83688423 return (__mmask16) __builtin_ia32_kxorhi ((__mmask16) __A, (__mmask16) __B);
83698424}
83708425
8426#define _kand_mask16 _mm512_kand
8427#define _kandn_mask16 _mm512_kandn
8428#define _knot_mask16 _mm512_knot
8429#define _kor_mask16 _mm512_kor
8430#define _kxnor_mask16 _mm512_kxnor
8431#define _kxor_mask16 _mm512_kxor
8432
8433#define _kshiftli_mask16(A, I) \
8434 (__mmask16)__builtin_ia32_kshiftlihi((__mmask16)(A), (unsigned int)(I))
8435
8436#define _kshiftri_mask16(A, I) \
8437 (__mmask16)__builtin_ia32_kshiftrihi((__mmask16)(A), (unsigned int)(I))
8438
8439static __inline__ unsigned int __DEFAULT_FN_ATTRS
8440_cvtmask16_u32(__mmask16 __A) {
8441 return (unsigned int)__builtin_ia32_kmovw((__mmask16)__A);
8442}
8443
8444static __inline__ __mmask16 __DEFAULT_FN_ATTRS
8445_cvtu32_mask16(unsigned int __A) {
8446 return (__mmask16)__builtin_ia32_kmovw((__mmask16)__A);
8447}
8448
8449static __inline__ __mmask16 __DEFAULT_FN_ATTRS
8450_load_mask16(__mmask16 *__A) {
8451 return (__mmask16)__builtin_ia32_kmovw(*(__mmask16 *)__A);
8452}
8453
8454static __inline__ void __DEFAULT_FN_ATTRS
8455_store_mask16(__mmask16 *__A, __mmask16 __B) {
8456 *(__mmask16 *)__A = __builtin_ia32_kmovw((__mmask16)__B);
8457}
8458
83718459static __inline__ void __DEFAULT_FN_ATTRS512
83728460_mm512_stream_si512 (__m512i * __P, __m512i __A)
83738461{
......@@ -9594,5 +9682,6 @@ _mm512_mask_reduce_min_ps(__mmask16 __M, __m512 __V) {
95949682
95959683#undef __DEFAULT_FN_ATTRS512
95969684#undef __DEFAULT_FN_ATTRS128
9685#undef __DEFAULT_FN_ATTRS
95979686
95989687#endif /* __AVX512FINTRIN_H */
c_headers/avx512pfintrin.h+16-16
......@@ -33,78 +33,78 @@
3333
3434#define _mm512_mask_prefetch_i32gather_pd(index, mask, addr, scale, hint) \
3535 __builtin_ia32_gatherpfdpd((__mmask8)(mask), (__v8si)(__m256i)(index), \
36 (long long const *)(addr), (int)(scale), \
36 (void const *)(addr), (int)(scale), \
3737 (int)(hint))
3838
3939#define _mm512_prefetch_i32gather_pd(index, addr, scale, hint) \
4040 __builtin_ia32_gatherpfdpd((__mmask8) -1, (__v8si)(__m256i)(index), \
41 (long long const *)(addr), (int)(scale), \
41 (void const *)(addr), (int)(scale), \
4242 (int)(hint))
4343
4444#define _mm512_mask_prefetch_i32gather_ps(index, mask, addr, scale, hint) \
4545 __builtin_ia32_gatherpfdps((__mmask16)(mask), \
46 (__v16si)(__m512i)(index), (int const *)(addr), \
46 (__v16si)(__m512i)(index), (void const *)(addr), \
4747 (int)(scale), (int)(hint))
4848
4949#define _mm512_prefetch_i32gather_ps(index, addr, scale, hint) \
5050 __builtin_ia32_gatherpfdps((__mmask16) -1, \
51 (__v16si)(__m512i)(index), (int const *)(addr), \
51 (__v16si)(__m512i)(index), (void const *)(addr), \
5252 (int)(scale), (int)(hint))
5353
5454#define _mm512_mask_prefetch_i64gather_pd(index, mask, addr, scale, hint) \
5555 __builtin_ia32_gatherpfqpd((__mmask8)(mask), (__v8di)(__m512i)(index), \
56 (long long const *)(addr), (int)(scale), \
56 (void const *)(addr), (int)(scale), \
5757 (int)(hint))
5858
5959#define _mm512_prefetch_i64gather_pd(index, addr, scale, hint) \
6060 __builtin_ia32_gatherpfqpd((__mmask8) -1, (__v8di)(__m512i)(index), \
61 (long long const *)(addr), (int)(scale), \
61 (void const *)(addr), (int)(scale), \
6262 (int)(hint))
6363
6464#define _mm512_mask_prefetch_i64gather_ps(index, mask, addr, scale, hint) \
6565 __builtin_ia32_gatherpfqps((__mmask8)(mask), (__v8di)(__m512i)(index), \
66 (int const *)(addr), (int)(scale), (int)(hint))
66 (void const *)(addr), (int)(scale), (int)(hint))
6767
6868#define _mm512_prefetch_i64gather_ps(index, addr, scale, hint) \
6969 __builtin_ia32_gatherpfqps((__mmask8) -1, (__v8di)(__m512i)(index), \
70 (int const *)(addr), (int)(scale), (int)(hint))
70 (void const *)(addr), (int)(scale), (int)(hint))
7171
7272#define _mm512_prefetch_i32scatter_pd(addr, index, scale, hint) \
7373 __builtin_ia32_scatterpfdpd((__mmask8)-1, (__v8si)(__m256i)(index), \
74 (long long *)(addr), (int)(scale), \
74 (void *)(addr), (int)(scale), \
7575 (int)(hint))
7676
7777#define _mm512_mask_prefetch_i32scatter_pd(addr, mask, index, scale, hint) \
7878 __builtin_ia32_scatterpfdpd((__mmask8)(mask), (__v8si)(__m256i)(index), \
79 (long long *)(addr), (int)(scale), \
79 (void *)(addr), (int)(scale), \
8080 (int)(hint))
8181
8282#define _mm512_prefetch_i32scatter_ps(addr, index, scale, hint) \
8383 __builtin_ia32_scatterpfdps((__mmask16)-1, (__v16si)(__m512i)(index), \
84 (int *)(addr), (int)(scale), (int)(hint))
84 (void *)(addr), (int)(scale), (int)(hint))
8585
8686#define _mm512_mask_prefetch_i32scatter_ps(addr, mask, index, scale, hint) \
8787 __builtin_ia32_scatterpfdps((__mmask16)(mask), \
88 (__v16si)(__m512i)(index), (int *)(addr), \
88 (__v16si)(__m512i)(index), (void *)(addr), \
8989 (int)(scale), (int)(hint))
9090
9191#define _mm512_prefetch_i64scatter_pd(addr, index, scale, hint) \
9292 __builtin_ia32_scatterpfqpd((__mmask8)-1, (__v8di)(__m512i)(index), \
93 (long long *)(addr), (int)(scale), \
93 (void *)(addr), (int)(scale), \
9494 (int)(hint))
9595
9696#define _mm512_mask_prefetch_i64scatter_pd(addr, mask, index, scale, hint) \
9797 __builtin_ia32_scatterpfqpd((__mmask8)(mask), (__v8di)(__m512i)(index), \
98 (long long *)(addr), (int)(scale), \
98 (void *)(addr), (int)(scale), \
9999 (int)(hint))
100100
101101#define _mm512_prefetch_i64scatter_ps(addr, index, scale, hint) \
102102 __builtin_ia32_scatterpfqps((__mmask8)-1, (__v8di)(__m512i)(index), \
103 (int *)(addr), (int)(scale), (int)(hint))
103 (void *)(addr), (int)(scale), (int)(hint))
104104
105105#define _mm512_mask_prefetch_i64scatter_ps(addr, mask, index, scale, hint) \
106106 __builtin_ia32_scatterpfqps((__mmask8)(mask), (__v8di)(__m512i)(index), \
107 (int *)(addr), (int)(scale), (int)(hint))
107 (void *)(addr), (int)(scale), (int)(hint))
108108
109109#undef __DEFAULT_FN_ATTRS
110110
c_headers/avx512vbmi2intrin.h+66-92
......@@ -227,167 +227,141 @@ _mm512_maskz_expandloadu_epi8(__mmask64 __U, void const *__P)
227227 (__v32hi)_mm512_setzero_si512())
228228
229229static __inline__ __m512i __DEFAULT_FN_ATTRS
230_mm512_mask_shldv_epi64(__m512i __S, __mmask8 __U, __m512i __A, __m512i __B)
230_mm512_shldv_epi64(__m512i __A, __m512i __B, __m512i __C)
231231{
232 return (__m512i) __builtin_ia32_vpshldvq512_mask ((__v8di) __S,
233 (__v8di) __A,
234 (__v8di) __B,
235 __U);
232 return (__m512i)__builtin_ia32_vpshldvq512((__v8di)__A, (__v8di)__B,
233 (__v8di)__C);
236234}
237235
238236static __inline__ __m512i __DEFAULT_FN_ATTRS
239_mm512_maskz_shldv_epi64(__mmask8 __U, __m512i __S, __m512i __A, __m512i __B)
237_mm512_mask_shldv_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C)
240238{
241 return (__m512i) __builtin_ia32_vpshldvq512_maskz ((__v8di) __S,
242 (__v8di) __A,
243 (__v8di) __B,
244 __U);
239 return (__m512i)__builtin_ia32_selectq_512(__U,
240 (__v8di)_mm512_shldv_epi64(__A, __B, __C),
241 (__v8di)__A);
245242}
246243
247244static __inline__ __m512i __DEFAULT_FN_ATTRS
248_mm512_shldv_epi64(__m512i __S, __m512i __A, __m512i __B)
245_mm512_maskz_shldv_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C)
249246{
250 return (__m512i) __builtin_ia32_vpshldvq512_mask ((__v8di) __S,
251 (__v8di) __A,
252 (__v8di) __B,
253 (__mmask8) -1);
247 return (__m512i)__builtin_ia32_selectq_512(__U,
248 (__v8di)_mm512_shldv_epi64(__A, __B, __C),
249 (__v8di)_mm512_setzero_si512());
254250}
255251
256252static __inline__ __m512i __DEFAULT_FN_ATTRS
257_mm512_mask_shldv_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B)
253_mm512_shldv_epi32(__m512i __A, __m512i __B, __m512i __C)
258254{
259 return (__m512i) __builtin_ia32_vpshldvd512_mask ((__v16si) __S,
260 (__v16si) __A,
261 (__v16si) __B,
262 __U);
255 return (__m512i)__builtin_ia32_vpshldvd512((__v16si)__A, (__v16si)__B,
256 (__v16si)__C);
263257}
264258
265259static __inline__ __m512i __DEFAULT_FN_ATTRS
266_mm512_maskz_shldv_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B)
260_mm512_mask_shldv_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C)
267261{
268 return (__m512i) __builtin_ia32_vpshldvd512_maskz ((__v16si) __S,
269 (__v16si) __A,
270 (__v16si) __B,
271 __U);
262 return (__m512i)__builtin_ia32_selectd_512(__U,
263 (__v16si)_mm512_shldv_epi32(__A, __B, __C),
264 (__v16si)__A);
272265}
273266
274267static __inline__ __m512i __DEFAULT_FN_ATTRS
275_mm512_shldv_epi32(__m512i __S, __m512i __A, __m512i __B)
268_mm512_maskz_shldv_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C)
276269{
277 return (__m512i) __builtin_ia32_vpshldvd512_mask ((__v16si) __S,
278 (__v16si) __A,
279 (__v16si) __B,
280 (__mmask16) -1);
270 return (__m512i)__builtin_ia32_selectd_512(__U,
271 (__v16si)_mm512_shldv_epi32(__A, __B, __C),
272 (__v16si)_mm512_setzero_si512());
281273}
282274
283
284275static __inline__ __m512i __DEFAULT_FN_ATTRS
285_mm512_mask_shldv_epi16(__m512i __S, __mmask32 __U, __m512i __A, __m512i __B)
276_mm512_shldv_epi16(__m512i __A, __m512i __B, __m512i __C)
286277{
287 return (__m512i) __builtin_ia32_vpshldvw512_mask ((__v32hi) __S,
288 (__v32hi) __A,
289 (__v32hi) __B,
290 __U);
278 return (__m512i)__builtin_ia32_vpshldvw512((__v32hi)__A, (__v32hi)__B,
279 (__v32hi)__C);
291280}
292281
293282static __inline__ __m512i __DEFAULT_FN_ATTRS
294_mm512_maskz_shldv_epi16(__mmask32 __U, __m512i __S, __m512i __A, __m512i __B)
283_mm512_mask_shldv_epi16(__m512i __A, __mmask32 __U, __m512i __B, __m512i __C)
295284{
296 return (__m512i) __builtin_ia32_vpshldvw512_maskz ((__v32hi) __S,
297 (__v32hi) __A,
298 (__v32hi) __B,
299 __U);
285 return (__m512i)__builtin_ia32_selectw_512(__U,
286 (__v32hi)_mm512_shldv_epi16(__A, __B, __C),
287 (__v32hi)__A);
300288}
301289
302290static __inline__ __m512i __DEFAULT_FN_ATTRS
303_mm512_shldv_epi16(__m512i __S, __m512i __A, __m512i __B)
291_mm512_maskz_shldv_epi16(__mmask32 __U, __m512i __A, __m512i __B, __m512i __C)
304292{
305 return (__m512i) __builtin_ia32_vpshldvw512_mask ((__v32hi) __S,
306 (__v32hi) __A,
307 (__v32hi) __B,
308 (__mmask32) -1);
293 return (__m512i)__builtin_ia32_selectw_512(__U,
294 (__v32hi)_mm512_shldv_epi16(__A, __B, __C),
295 (__v32hi)_mm512_setzero_si512());
309296}
310297
311298static __inline__ __m512i __DEFAULT_FN_ATTRS
312_mm512_mask_shrdv_epi64(__m512i __S, __mmask8 __U, __m512i __A, __m512i __B)
299_mm512_shrdv_epi64(__m512i __A, __m512i __B, __m512i __C)
313300{
314 return (__m512i) __builtin_ia32_vpshrdvq512_mask ((__v8di) __S,
315 (__v8di) __A,
316 (__v8di) __B,
317 __U);
301 return (__m512i)__builtin_ia32_vpshrdvq512((__v8di)__A, (__v8di)__B,
302 (__v8di)__C);
318303}
319304
320305static __inline__ __m512i __DEFAULT_FN_ATTRS
321_mm512_maskz_shrdv_epi64(__mmask8 __U, __m512i __S, __m512i __A, __m512i __B)
306_mm512_mask_shrdv_epi64(__m512i __A, __mmask8 __U, __m512i __B, __m512i __C)
322307{
323 return (__m512i) __builtin_ia32_vpshrdvq512_maskz ((__v8di) __S,
324 (__v8di) __A,
325 (__v8di) __B,
326 __U);
308 return (__m512i)__builtin_ia32_selectq_512(__U,
309 (__v8di)_mm512_shrdv_epi64(__A, __B, __C),
310 (__v8di)__A);
327311}
328312
329313static __inline__ __m512i __DEFAULT_FN_ATTRS
330_mm512_shrdv_epi64(__m512i __S, __m512i __A, __m512i __B)
314_mm512_maskz_shrdv_epi64(__mmask8 __U, __m512i __A, __m512i __B, __m512i __C)
331315{
332 return (__m512i) __builtin_ia32_vpshrdvq512_mask ((__v8di) __S,
333 (__v8di) __A,
334 (__v8di) __B,
335 (__mmask8) -1);
316 return (__m512i)__builtin_ia32_selectq_512(__U,
317 (__v8di)_mm512_shrdv_epi64(__A, __B, __C),
318 (__v8di)_mm512_setzero_si512());
336319}
337320
338321static __inline__ __m512i __DEFAULT_FN_ATTRS
339_mm512_mask_shrdv_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B)
322_mm512_shrdv_epi32(__m512i __A, __m512i __B, __m512i __C)
340323{
341 return (__m512i) __builtin_ia32_vpshrdvd512_mask ((__v16si) __S,
342 (__v16si) __A,
343 (__v16si) __B,
344 __U);
324 return (__m512i)__builtin_ia32_vpshrdvd512((__v16si)__A, (__v16si)__B,
325 (__v16si)__C);
345326}
346327
347328static __inline__ __m512i __DEFAULT_FN_ATTRS
348_mm512_maskz_shrdv_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B)
329_mm512_mask_shrdv_epi32(__m512i __A, __mmask16 __U, __m512i __B, __m512i __C)
349330{
350 return (__m512i) __builtin_ia32_vpshrdvd512_maskz ((__v16si) __S,
351 (__v16si) __A,
352 (__v16si) __B,
353 __U);
331 return (__m512i) __builtin_ia32_selectd_512(__U,
332 (__v16si)_mm512_shrdv_epi32(__A, __B, __C),
333 (__v16si)__A);
354334}
355335
356336static __inline__ __m512i __DEFAULT_FN_ATTRS
357_mm512_shrdv_epi32(__m512i __S, __m512i __A, __m512i __B)
337_mm512_maskz_shrdv_epi32(__mmask16 __U, __m512i __A, __m512i __B, __m512i __C)
358338{
359 return (__m512i) __builtin_ia32_vpshrdvd512_mask ((__v16si) __S,
360 (__v16si) __A,
361 (__v16si) __B,
362 (__mmask16) -1);
339 return (__m512i) __builtin_ia32_selectd_512(__U,
340 (__v16si)_mm512_shrdv_epi32(__A, __B, __C),
341 (__v16si)_mm512_setzero_si512());
363342}
364343
365
366344static __inline__ __m512i __DEFAULT_FN_ATTRS
367_mm512_mask_shrdv_epi16(__m512i __S, __mmask32 __U, __m512i __A, __m512i __B)
345_mm512_shrdv_epi16(__m512i __A, __m512i __B, __m512i __C)
368346{
369 return (__m512i) __builtin_ia32_vpshrdvw512_mask ((__v32hi) __S,
370 (__v32hi) __A,
371 (__v32hi) __B,
372 __U);
347 return (__m512i)__builtin_ia32_vpshrdvw512((__v32hi)__A, (__v32hi)__B,
348 (__v32hi)__C);
373349}
374350
375351static __inline__ __m512i __DEFAULT_FN_ATTRS
376_mm512_maskz_shrdv_epi16(__mmask32 __U, __m512i __S, __m512i __A, __m512i __B)
352_mm512_mask_shrdv_epi16(__m512i __A, __mmask32 __U, __m512i __B, __m512i __C)
377353{
378 return (__m512i) __builtin_ia32_vpshrdvw512_maskz ((__v32hi) __S,
379 (__v32hi) __A,
380 (__v32hi) __B,
381 __U);
354 return (__m512i)__builtin_ia32_selectw_512(__U,
355 (__v32hi)_mm512_shrdv_epi16(__A, __B, __C),
356 (__v32hi)__A);
382357}
383358
384359static __inline__ __m512i __DEFAULT_FN_ATTRS
385_mm512_shrdv_epi16(__m512i __S, __m512i __A, __m512i __B)
360_mm512_maskz_shrdv_epi16(__mmask32 __U, __m512i __A, __m512i __B, __m512i __C)
386361{
387 return (__m512i) __builtin_ia32_vpshrdvw512_mask ((__v32hi) __S,
388 (__v32hi) __A,
389 (__v32hi) __B,
390 (__mmask32) -1);
362 return (__m512i)__builtin_ia32_selectw_512(__U,
363 (__v32hi)_mm512_shrdv_epi16(__A, __B, __C),
364 (__v32hi)_mm512_setzero_si512());
391365}
392366
393367
c_headers/avx512vbmiintrin.h+11-15
......@@ -91,30 +91,26 @@ _mm512_mask_permutexvar_epi8 (__m512i __W, __mmask64 __M, __m512i __A,
9191}
9292
9393static __inline__ __m512i __DEFAULT_FN_ATTRS
94_mm512_mask_multishift_epi64_epi8 (__m512i __W, __mmask64 __M, __m512i __X, __m512i __Y)
94_mm512_multishift_epi64_epi8(__m512i __X, __m512i __Y)
9595{
96 return (__m512i) __builtin_ia32_vpmultishiftqb512_mask ((__v64qi) __X,
97 (__v64qi) __Y,
98 (__v64qi) __W,
99 (__mmask64) __M);
96 return (__m512i)__builtin_ia32_vpmultishiftqb512((__v64qi)__X, (__v64qi) __Y);
10097}
10198
10299static __inline__ __m512i __DEFAULT_FN_ATTRS
103_mm512_maskz_multishift_epi64_epi8 (__mmask64 __M, __m512i __X, __m512i __Y)
100_mm512_mask_multishift_epi64_epi8(__m512i __W, __mmask64 __M, __m512i __X,
101 __m512i __Y)
104102{
105 return (__m512i) __builtin_ia32_vpmultishiftqb512_mask ((__v64qi) __X,
106 (__v64qi) __Y,
107 (__v64qi) _mm512_setzero_si512 (),
108 (__mmask64) __M);
103 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
104 (__v64qi)_mm512_multishift_epi64_epi8(__X, __Y),
105 (__v64qi)__W);
109106}
110107
111108static __inline__ __m512i __DEFAULT_FN_ATTRS
112_mm512_multishift_epi64_epi8 (__m512i __X, __m512i __Y)
109_mm512_maskz_multishift_epi64_epi8(__mmask64 __M, __m512i __X, __m512i __Y)
113110{
114 return (__m512i) __builtin_ia32_vpmultishiftqb512_mask ((__v64qi) __X,
115 (__v64qi) __Y,
116 (__v64qi) _mm512_undefined_epi32 (),
117 (__mmask64) -1);
111 return (__m512i)__builtin_ia32_selectb_512((__mmask64)__M,
112 (__v64qi)_mm512_multishift_epi64_epi8(__X, __Y),
113 (__v64qi)_mm512_setzero_si512());
118114}
119115
120116
c_headers/avx512vbmivlintrin.h+22-34
......@@ -150,61 +150,49 @@ _mm256_mask_permutexvar_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
150150}
151151
152152static __inline__ __m128i __DEFAULT_FN_ATTRS128
153_mm_mask_multishift_epi64_epi8 (__m128i __W, __mmask16 __M, __m128i __X, __m128i __Y)
153_mm_multishift_epi64_epi8(__m128i __X, __m128i __Y)
154154{
155 return (__m128i) __builtin_ia32_vpmultishiftqb128_mask ((__v16qi) __X,
156 (__v16qi) __Y,
157 (__v16qi) __W,
158 (__mmask16) __M);
155 return (__m128i)__builtin_ia32_vpmultishiftqb128((__v16qi)__X, (__v16qi)__Y);
159156}
160157
161158static __inline__ __m128i __DEFAULT_FN_ATTRS128
162_mm_maskz_multishift_epi64_epi8 (__mmask16 __M, __m128i __X, __m128i __Y)
159_mm_mask_multishift_epi64_epi8(__m128i __W, __mmask16 __M, __m128i __X,
160 __m128i __Y)
163161{
164 return (__m128i) __builtin_ia32_vpmultishiftqb128_mask ((__v16qi) __X,
165 (__v16qi) __Y,
166 (__v16qi)
167 _mm_setzero_si128 (),
168 (__mmask16) __M);
162 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
163 (__v16qi)_mm_multishift_epi64_epi8(__X, __Y),
164 (__v16qi)__W);
169165}
170166
171167static __inline__ __m128i __DEFAULT_FN_ATTRS128
172_mm_multishift_epi64_epi8 (__m128i __X, __m128i __Y)
168_mm_maskz_multishift_epi64_epi8(__mmask16 __M, __m128i __X, __m128i __Y)
173169{
174 return (__m128i) __builtin_ia32_vpmultishiftqb128_mask ((__v16qi) __X,
175 (__v16qi) __Y,
176 (__v16qi)
177 _mm_undefined_si128 (),
178 (__mmask16) -1);
170 return (__m128i)__builtin_ia32_selectb_128((__mmask16)__M,
171 (__v16qi)_mm_multishift_epi64_epi8(__X, __Y),
172 (__v16qi)_mm_setzero_si128());
179173}
180174
181175static __inline__ __m256i __DEFAULT_FN_ATTRS256
182_mm256_mask_multishift_epi64_epi8 (__m256i __W, __mmask32 __M, __m256i __X, __m256i __Y)
176_mm256_multishift_epi64_epi8(__m256i __X, __m256i __Y)
183177{
184 return (__m256i) __builtin_ia32_vpmultishiftqb256_mask ((__v32qi) __X,
185 (__v32qi) __Y,
186 (__v32qi) __W,
187 (__mmask32) __M);
178 return (__m256i)__builtin_ia32_vpmultishiftqb256((__v32qi)__X, (__v32qi)__Y);
188179}
189180
190181static __inline__ __m256i __DEFAULT_FN_ATTRS256
191_mm256_maskz_multishift_epi64_epi8 (__mmask32 __M, __m256i __X, __m256i __Y)
182_mm256_mask_multishift_epi64_epi8(__m256i __W, __mmask32 __M, __m256i __X,
183 __m256i __Y)
192184{
193 return (__m256i) __builtin_ia32_vpmultishiftqb256_mask ((__v32qi) __X,
194 (__v32qi) __Y,
195 (__v32qi)
196 _mm256_setzero_si256 (),
197 (__mmask32) __M);
185 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
186 (__v32qi)_mm256_multishift_epi64_epi8(__X, __Y),
187 (__v32qi)__W);
198188}
199189
200190static __inline__ __m256i __DEFAULT_FN_ATTRS256
201_mm256_multishift_epi64_epi8 (__m256i __X, __m256i __Y)
191_mm256_maskz_multishift_epi64_epi8(__mmask32 __M, __m256i __X, __m256i __Y)
202192{
203 return (__m256i) __builtin_ia32_vpmultishiftqb256_mask ((__v32qi) __X,
204 (__v32qi) __Y,
205 (__v32qi)
206 _mm256_undefined_si256 (),
207 (__mmask32) -1);
193 return (__m256i)__builtin_ia32_selectb_256((__mmask32)__M,
194 (__v32qi)_mm256_multishift_epi64_epi8(__X, __Y),
195 (__v32qi)_mm256_setzero_si256());
208196}
209197
210198
c_headers/avx512vlbwintrin.h+74-1
......@@ -2297,6 +2297,15 @@ _mm256_maskz_set1_epi8 (__mmask32 __M, char __A)
22972297 (__v32qi) _mm256_setzero_si256());
22982298}
22992299
2300static __inline __m128i __DEFAULT_FN_ATTRS128
2301_mm_loadu_epi16 (void const *__P)
2302{
2303 struct __loadu_epi16 {
2304 __m128i __v;
2305 } __attribute__((__packed__, __may_alias__));
2306 return ((struct __loadu_epi16*)__P)->__v;
2307}
2308
23002309static __inline__ __m128i __DEFAULT_FN_ATTRS128
23012310_mm_mask_loadu_epi16 (__m128i __W, __mmask8 __U, void const *__P)
23022311{
......@@ -2314,6 +2323,15 @@ _mm_maskz_loadu_epi16 (__mmask8 __U, void const *__P)
23142323 (__mmask8) __U);
23152324}
23162325
2326static __inline __m256i __DEFAULT_FN_ATTRS256
2327_mm256_loadu_epi16 (void const *__P)
2328{
2329 struct __loadu_epi16 {
2330 __m256i __v;
2331 } __attribute__((__packed__, __may_alias__));
2332 return ((struct __loadu_epi16*)__P)->__v;
2333}
2334
23172335static __inline__ __m256i __DEFAULT_FN_ATTRS256
23182336_mm256_mask_loadu_epi16 (__m256i __W, __mmask16 __U, void const *__P)
23192337{
......@@ -2331,6 +2349,15 @@ _mm256_maskz_loadu_epi16 (__mmask16 __U, void const *__P)
23312349 (__mmask16) __U);
23322350}
23332351
2352static __inline __m128i __DEFAULT_FN_ATTRS128
2353_mm_loadu_epi8 (void const *__P)
2354{
2355 struct __loadu_epi8 {
2356 __m128i __v;
2357 } __attribute__((__packed__, __may_alias__));
2358 return ((struct __loadu_epi8*)__P)->__v;
2359}
2360
23342361static __inline__ __m128i __DEFAULT_FN_ATTRS128
23352362_mm_mask_loadu_epi8 (__m128i __W, __mmask16 __U, void const *__P)
23362363{
......@@ -2348,6 +2375,15 @@ _mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P)
23482375 (__mmask16) __U);
23492376}
23502377
2378static __inline __m256i __DEFAULT_FN_ATTRS256
2379_mm256_loadu_epi8 (void const *__P)
2380{
2381 struct __loadu_epi8 {
2382 __m256i __v;
2383 } __attribute__((__packed__, __may_alias__));
2384 return ((struct __loadu_epi8*)__P)->__v;
2385}
2386
23512387static __inline__ __m256i __DEFAULT_FN_ATTRS256
23522388_mm256_mask_loadu_epi8 (__m256i __W, __mmask32 __U, void const *__P)
23532389{
......@@ -2364,7 +2400,17 @@ _mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P)
23642400 _mm256_setzero_si256 (),
23652401 (__mmask32) __U);
23662402}
2367static __inline__ void __DEFAULT_FN_ATTRS256
2403
2404static __inline void __DEFAULT_FN_ATTRS128
2405_mm_storeu_epi16 (void *__P, __m128i __A)
2406{
2407 struct __storeu_epi16 {
2408 __m128i __v;
2409 } __attribute__((__packed__, __may_alias__));
2410 ((struct __storeu_epi16*)__P)->__v = __A;
2411}
2412
2413static __inline__ void __DEFAULT_FN_ATTRS128
23682414_mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A)
23692415{
23702416 __builtin_ia32_storedquhi128_mask ((__v8hi *) __P,
......@@ -2372,6 +2418,15 @@ _mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A)
23722418 (__mmask8) __U);
23732419}
23742420
2421static __inline void __DEFAULT_FN_ATTRS256
2422_mm256_storeu_epi16 (void *__P, __m256i __A)
2423{
2424 struct __storeu_epi16 {
2425 __m256i __v;
2426 } __attribute__((__packed__, __may_alias__));
2427 ((struct __storeu_epi16*)__P)->__v = __A;
2428}
2429
23752430static __inline__ void __DEFAULT_FN_ATTRS256
23762431_mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A)
23772432{
......@@ -2380,6 +2435,15 @@ _mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A)
23802435 (__mmask16) __U);
23812436}
23822437
2438static __inline void __DEFAULT_FN_ATTRS128
2439_mm_storeu_epi8 (void *__P, __m128i __A)
2440{
2441 struct __storeu_epi8 {
2442 __m128i __v;
2443 } __attribute__((__packed__, __may_alias__));
2444 ((struct __storeu_epi8*)__P)->__v = __A;
2445}
2446
23832447static __inline__ void __DEFAULT_FN_ATTRS128
23842448_mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A)
23852449{
......@@ -2388,6 +2452,15 @@ _mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A)
23882452 (__mmask16) __U);
23892453}
23902454
2455static __inline void __DEFAULT_FN_ATTRS256
2456_mm256_storeu_epi8 (void *__P, __m256i __A)
2457{
2458 struct __storeu_epi8 {
2459 __m256i __v;
2460 } __attribute__((__packed__, __may_alias__));
2461 ((struct __storeu_epi8*)__P)->__v = __A;
2462}
2463
23912464static __inline__ void __DEFAULT_FN_ATTRS256
23922465_mm256_mask_storeu_epi8 (void *__P, __mmask32 __U, __m256i __A)
23932466{
c_headers/avx512vlintrin.h+282-67
......@@ -461,11 +461,17 @@ _mm_mask_mullo_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B)
461461 (__v4si)__W);
462462}
463463
464static __inline__ __m256i __DEFAULT_FN_ATTRS256
465_mm256_and_epi32(__m256i __a, __m256i __b)
466{
467 return (__m256i)((__v8su)__a & (__v8su)__b);
468}
469
464470static __inline__ __m256i __DEFAULT_FN_ATTRS256
465471_mm256_mask_and_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
466472{
467473 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
468 (__v8si)_mm256_and_si256(__A, __B),
474 (__v8si)_mm256_and_epi32(__A, __B),
469475 (__v8si)__W);
470476}
471477
......@@ -475,11 +481,17 @@ _mm256_maskz_and_epi32(__mmask8 __U, __m256i __A, __m256i __B)
475481 return (__m256i)_mm256_mask_and_epi32(_mm256_setzero_si256(), __U, __A, __B);
476482}
477483
484static __inline__ __m128i __DEFAULT_FN_ATTRS128
485_mm_and_epi32(__m128i __a, __m128i __b)
486{
487 return (__m128i)((__v4su)__a & (__v4su)__b);
488}
489
478490static __inline__ __m128i __DEFAULT_FN_ATTRS128
479491_mm_mask_and_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
480492{
481493 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
482 (__v4si)_mm_and_si128(__A, __B),
494 (__v4si)_mm_and_epi32(__A, __B),
483495 (__v4si)__W);
484496}
485497
......@@ -489,11 +501,17 @@ _mm_maskz_and_epi32(__mmask8 __U, __m128i __A, __m128i __B)
489501 return (__m128i)_mm_mask_and_epi32(_mm_setzero_si128(), __U, __A, __B);
490502}
491503
504static __inline__ __m256i __DEFAULT_FN_ATTRS256
505_mm256_andnot_epi32(__m256i __A, __m256i __B)
506{
507 return (__m256i)(~(__v8su)__A & (__v8su)__B);
508}
509
492510static __inline__ __m256i __DEFAULT_FN_ATTRS256
493511_mm256_mask_andnot_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
494512{
495513 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
496 (__v8si)_mm256_andnot_si256(__A, __B),
514 (__v8si)_mm256_andnot_epi32(__A, __B),
497515 (__v8si)__W);
498516}
499517
......@@ -504,25 +522,37 @@ _mm256_maskz_andnot_epi32(__mmask8 __U, __m256i __A, __m256i __B)
504522 __U, __A, __B);
505523}
506524
525static __inline__ __m128i __DEFAULT_FN_ATTRS128
526_mm_andnot_epi32(__m128i __A, __m128i __B)
527{
528 return (__m128i)(~(__v4su)__A & (__v4su)__B);
529}
530
507531static __inline__ __m128i __DEFAULT_FN_ATTRS128
508532_mm_mask_andnot_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
509533{
510534 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
511 (__v4si)_mm_andnot_si128(__A, __B),
535 (__v4si)_mm_andnot_epi32(__A, __B),
512536 (__v4si)__W);
513537}
514538
515539static __inline__ __m128i __DEFAULT_FN_ATTRS128
516_mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
540_mm_maskz_andnot_epi32(__mmask8 __U, __m128i __A, __m128i __B)
517541{
518542 return (__m128i)_mm_mask_andnot_epi32(_mm_setzero_si128(), __U, __A, __B);
519543}
520544
545static __inline__ __m256i __DEFAULT_FN_ATTRS256
546_mm256_or_epi32(__m256i __a, __m256i __b)
547{
548 return (__m256i)((__v8su)__a | (__v8su)__b);
549}
550
521551static __inline__ __m256i __DEFAULT_FN_ATTRS256
522552_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
523553{
524554 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
525 (__v8si)_mm256_or_si256(__A, __B),
555 (__v8si)_mm256_or_epi32(__A, __B),
526556 (__v8si)__W);
527557}
528558
......@@ -532,11 +562,17 @@ _mm256_maskz_or_epi32(__mmask8 __U, __m256i __A, __m256i __B)
532562 return (__m256i)_mm256_mask_or_epi32(_mm256_setzero_si256(), __U, __A, __B);
533563}
534564
565static __inline__ __m128i __DEFAULT_FN_ATTRS128
566_mm_or_epi32(__m128i __a, __m128i __b)
567{
568 return (__m128i)((__v4su)__a | (__v4su)__b);
569}
570
535571static __inline__ __m128i __DEFAULT_FN_ATTRS128
536572_mm_mask_or_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
537573{
538574 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
539 (__v4si)_mm_or_si128(__A, __B),
575 (__v4si)_mm_or_epi32(__A, __B),
540576 (__v4si)__W);
541577}
542578
......@@ -546,11 +582,17 @@ _mm_maskz_or_epi32(__mmask8 __U, __m128i __A, __m128i __B)
546582 return (__m128i)_mm_mask_or_epi32(_mm_setzero_si128(), __U, __A, __B);
547583}
548584
585static __inline__ __m256i __DEFAULT_FN_ATTRS256
586_mm256_xor_epi32(__m256i __a, __m256i __b)
587{
588 return (__m256i)((__v8su)__a ^ (__v8su)__b);
589}
590
549591static __inline__ __m256i __DEFAULT_FN_ATTRS256
550592_mm256_mask_xor_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
551593{
552594 return (__m256i)__builtin_ia32_selectd_256((__mmask8)__U,
553 (__v8si)_mm256_xor_si256(__A, __B),
595 (__v8si)_mm256_xor_epi32(__A, __B),
554596 (__v8si)__W);
555597}
556598
......@@ -561,11 +603,16 @@ _mm256_maskz_xor_epi32(__mmask8 __U, __m256i __A, __m256i __B)
561603}
562604
563605static __inline__ __m128i __DEFAULT_FN_ATTRS128
564_mm_mask_xor_epi32(__m128i __W, __mmask8 __U, __m128i __A,
565 __m128i __B)
606_mm_xor_epi32(__m128i __a, __m128i __b)
607{
608 return (__m128i)((__v4su)__a ^ (__v4su)__b);
609}
610
611static __inline__ __m128i __DEFAULT_FN_ATTRS128
612_mm_mask_xor_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
566613{
567614 return (__m128i)__builtin_ia32_selectd_128((__mmask8)__U,
568 (__v4si)_mm_xor_si128(__A, __B),
615 (__v4si)_mm_xor_epi32(__A, __B),
569616 (__v4si)__W);
570617}
571618
......@@ -575,11 +622,17 @@ _mm_maskz_xor_epi32(__mmask8 __U, __m128i __A, __m128i __B)
575622 return (__m128i)_mm_mask_xor_epi32(_mm_setzero_si128(), __U, __A, __B);
576623}
577624
625static __inline__ __m256i __DEFAULT_FN_ATTRS256
626_mm256_and_epi64(__m256i __a, __m256i __b)
627{
628 return (__m256i)((__v4du)__a & (__v4du)__b);
629}
630
578631static __inline__ __m256i __DEFAULT_FN_ATTRS256
579632_mm256_mask_and_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
580633{
581634 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
582 (__v4di)_mm256_and_si256(__A, __B),
635 (__v4di)_mm256_and_epi64(__A, __B),
583636 (__v4di)__W);
584637}
585638
......@@ -589,11 +642,17 @@ _mm256_maskz_and_epi64(__mmask8 __U, __m256i __A, __m256i __B)
589642 return (__m256i)_mm256_mask_and_epi64(_mm256_setzero_si256(), __U, __A, __B);
590643}
591644
645static __inline__ __m128i __DEFAULT_FN_ATTRS128
646_mm_and_epi64(__m128i __a, __m128i __b)
647{
648 return (__m128i)((__v2du)__a & (__v2du)__b);
649}
650
592651static __inline__ __m128i __DEFAULT_FN_ATTRS128
593652_mm_mask_and_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
594653{
595654 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
596 (__v2di)_mm_and_si128(__A, __B),
655 (__v2di)_mm_and_epi64(__A, __B),
597656 (__v2di)__W);
598657}
599658
......@@ -603,11 +662,17 @@ _mm_maskz_and_epi64(__mmask8 __U, __m128i __A, __m128i __B)
603662 return (__m128i)_mm_mask_and_epi64(_mm_setzero_si128(), __U, __A, __B);
604663}
605664
665static __inline__ __m256i __DEFAULT_FN_ATTRS256
666_mm256_andnot_epi64(__m256i __A, __m256i __B)
667{
668 return (__m256i)(~(__v4du)__A & (__v4du)__B);
669}
670
606671static __inline__ __m256i __DEFAULT_FN_ATTRS256
607672_mm256_mask_andnot_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
608673{
609674 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
610 (__v4di)_mm256_andnot_si256(__A, __B),
675 (__v4di)_mm256_andnot_epi64(__A, __B),
611676 (__v4di)__W);
612677}
613678
......@@ -618,11 +683,17 @@ _mm256_maskz_andnot_epi64(__mmask8 __U, __m256i __A, __m256i __B)
618683 __U, __A, __B);
619684}
620685
686static __inline__ __m128i __DEFAULT_FN_ATTRS128
687_mm_andnot_epi64(__m128i __A, __m128i __B)
688{
689 return (__m128i)(~(__v2du)__A & (__v2du)__B);
690}
691
621692static __inline__ __m128i __DEFAULT_FN_ATTRS128
622693_mm_mask_andnot_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
623694{
624695 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
625 (__v2di)_mm_andnot_si128(__A, __B),
696 (__v2di)_mm_andnot_epi64(__A, __B),
626697 (__v2di)__W);
627698}
628699
......@@ -632,11 +703,17 @@ _mm_maskz_andnot_epi64(__mmask8 __U, __m128i __A, __m128i __B)
632703 return (__m128i)_mm_mask_andnot_epi64(_mm_setzero_si128(), __U, __A, __B);
633704}
634705
706static __inline__ __m256i __DEFAULT_FN_ATTRS256
707_mm256_or_epi64(__m256i __a, __m256i __b)
708{
709 return (__m256i)((__v4du)__a | (__v4du)__b);
710}
711
635712static __inline__ __m256i __DEFAULT_FN_ATTRS256
636713_mm256_mask_or_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
637714{
638715 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
639 (__v4di)_mm256_or_si256(__A, __B),
716 (__v4di)_mm256_or_epi64(__A, __B),
640717 (__v4di)__W);
641718}
642719
......@@ -646,11 +723,17 @@ _mm256_maskz_or_epi64(__mmask8 __U, __m256i __A, __m256i __B)
646723 return (__m256i)_mm256_mask_or_epi64(_mm256_setzero_si256(), __U, __A, __B);
647724}
648725
726static __inline__ __m128i __DEFAULT_FN_ATTRS128
727_mm_or_epi64(__m128i __a, __m128i __b)
728{
729 return (__m128i)((__v2du)__a | (__v2du)__b);
730}
731
649732static __inline__ __m128i __DEFAULT_FN_ATTRS128
650733_mm_mask_or_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B)
651734{
652735 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
653 (__v2di)_mm_or_si128(__A, __B),
736 (__v2di)_mm_or_epi64(__A, __B),
654737 (__v2di)__W);
655738}
656739
......@@ -660,11 +743,17 @@ _mm_maskz_or_epi64(__mmask8 __U, __m128i __A, __m128i __B)
660743 return (__m128i)_mm_mask_or_epi64(_mm_setzero_si128(), __U, __A, __B);
661744}
662745
746static __inline__ __m256i __DEFAULT_FN_ATTRS256
747_mm256_xor_epi64(__m256i __a, __m256i __b)
748{
749 return (__m256i)((__v4du)__a ^ (__v4du)__b);
750}
751
663752static __inline__ __m256i __DEFAULT_FN_ATTRS256
664753_mm256_mask_xor_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B)
665754{
666755 return (__m256i)__builtin_ia32_selectq_256((__mmask8)__U,
667 (__v4di)_mm256_xor_si256(__A, __B),
756 (__v4di)_mm256_xor_epi64(__A, __B),
668757 (__v4di)__W);
669758}
670759
......@@ -674,12 +763,18 @@ _mm256_maskz_xor_epi64(__mmask8 __U, __m256i __A, __m256i __B)
674763 return (__m256i)_mm256_mask_xor_epi64(_mm256_setzero_si256(), __U, __A, __B);
675764}
676765
766static __inline__ __m128i __DEFAULT_FN_ATTRS128
767_mm_xor_epi64(__m128i __a, __m128i __b)
768{
769 return (__m128i)((__v2du)__a ^ (__v2du)__b);
770}
771
677772static __inline__ __m128i __DEFAULT_FN_ATTRS128
678773_mm_mask_xor_epi64(__m128i __W, __mmask8 __U, __m128i __A,
679774 __m128i __B)
680775{
681776 return (__m128i)__builtin_ia32_selectq_128((__mmask8)__U,
682 (__v2di)_mm_xor_si128(__A, __B),
777 (__v2di)_mm_xor_epi64(__A, __B),
683778 (__v2di)__W);
684779}
685780
......@@ -3389,162 +3484,162 @@ _mm256_maskz_scalef_ps (__mmask8 __U, __m256 __A, __m256 __B) {
33893484}
33903485
33913486#define _mm_i64scatter_pd(addr, index, v1, scale) \
3392 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)-1, \
3487 __builtin_ia32_scatterdiv2df((void *)(addr), (__mmask8)-1, \
33933488 (__v2di)(__m128i)(index), \
33943489 (__v2df)(__m128d)(v1), (int)(scale))
33953490
33963491#define _mm_mask_i64scatter_pd(addr, mask, index, v1, scale) \
3397 __builtin_ia32_scatterdiv2df((double *)(addr), (__mmask8)(mask), \
3492 __builtin_ia32_scatterdiv2df((void *)(addr), (__mmask8)(mask), \
33983493 (__v2di)(__m128i)(index), \
33993494 (__v2df)(__m128d)(v1), (int)(scale))
34003495
34013496#define _mm_i64scatter_epi64(addr, index, v1, scale) \
3402 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)-1, \
3497 __builtin_ia32_scatterdiv2di((void *)(addr), (__mmask8)-1, \
34033498 (__v2di)(__m128i)(index), \
34043499 (__v2di)(__m128i)(v1), (int)(scale))
34053500
34063501#define _mm_mask_i64scatter_epi64(addr, mask, index, v1, scale) \
3407 __builtin_ia32_scatterdiv2di((long long *)(addr), (__mmask8)(mask), \
3502 __builtin_ia32_scatterdiv2di((void *)(addr), (__mmask8)(mask), \
34083503 (__v2di)(__m128i)(index), \
34093504 (__v2di)(__m128i)(v1), (int)(scale))
34103505
34113506#define _mm256_i64scatter_pd(addr, index, v1, scale) \
3412 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)-1, \
3507 __builtin_ia32_scatterdiv4df((void *)(addr), (__mmask8)-1, \
34133508 (__v4di)(__m256i)(index), \
34143509 (__v4df)(__m256d)(v1), (int)(scale))
34153510
34163511#define _mm256_mask_i64scatter_pd(addr, mask, index, v1, scale) \
3417 __builtin_ia32_scatterdiv4df((double *)(addr), (__mmask8)(mask), \
3512 __builtin_ia32_scatterdiv4df((void *)(addr), (__mmask8)(mask), \
34183513 (__v4di)(__m256i)(index), \
34193514 (__v4df)(__m256d)(v1), (int)(scale))
34203515
34213516#define _mm256_i64scatter_epi64(addr, index, v1, scale) \
3422 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)-1, \
3517 __builtin_ia32_scatterdiv4di((void *)(addr), (__mmask8)-1, \
34233518 (__v4di)(__m256i)(index), \
34243519 (__v4di)(__m256i)(v1), (int)(scale))
34253520
34263521#define _mm256_mask_i64scatter_epi64(addr, mask, index, v1, scale) \
3427 __builtin_ia32_scatterdiv4di((long long *)(addr), (__mmask8)(mask), \
3522 __builtin_ia32_scatterdiv4di((void *)(addr), (__mmask8)(mask), \
34283523 (__v4di)(__m256i)(index), \
34293524 (__v4di)(__m256i)(v1), (int)(scale))
34303525
34313526#define _mm_i64scatter_ps(addr, index, v1, scale) \
3432 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)-1, \
3527 __builtin_ia32_scatterdiv4sf((void *)(addr), (__mmask8)-1, \
34333528 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
34343529 (int)(scale))
34353530
34363531#define _mm_mask_i64scatter_ps(addr, mask, index, v1, scale) \
3437 __builtin_ia32_scatterdiv4sf((float *)(addr), (__mmask8)(mask), \
3532 __builtin_ia32_scatterdiv4sf((void *)(addr), (__mmask8)(mask), \
34383533 (__v2di)(__m128i)(index), (__v4sf)(__m128)(v1), \
34393534 (int)(scale))
34403535
34413536#define _mm_i64scatter_epi32(addr, index, v1, scale) \
3442 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)-1, \
3537 __builtin_ia32_scatterdiv4si((void *)(addr), (__mmask8)-1, \
34433538 (__v2di)(__m128i)(index), \
34443539 (__v4si)(__m128i)(v1), (int)(scale))
34453540
34463541#define _mm_mask_i64scatter_epi32(addr, mask, index, v1, scale) \
3447 __builtin_ia32_scatterdiv4si((int *)(addr), (__mmask8)(mask), \
3542 __builtin_ia32_scatterdiv4si((void *)(addr), (__mmask8)(mask), \
34483543 (__v2di)(__m128i)(index), \
34493544 (__v4si)(__m128i)(v1), (int)(scale))
34503545
34513546#define _mm256_i64scatter_ps(addr, index, v1, scale) \
3452 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)-1, \
3547 __builtin_ia32_scatterdiv8sf((void *)(addr), (__mmask8)-1, \
34533548 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
34543549 (int)(scale))
34553550
34563551#define _mm256_mask_i64scatter_ps(addr, mask, index, v1, scale) \
3457 __builtin_ia32_scatterdiv8sf((float *)(addr), (__mmask8)(mask), \
3552 __builtin_ia32_scatterdiv8sf((void *)(addr), (__mmask8)(mask), \
34583553 (__v4di)(__m256i)(index), (__v4sf)(__m128)(v1), \
34593554 (int)(scale))
34603555
34613556#define _mm256_i64scatter_epi32(addr, index, v1, scale) \
3462 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)-1, \
3557 __builtin_ia32_scatterdiv8si((void *)(addr), (__mmask8)-1, \
34633558 (__v4di)(__m256i)(index), \
34643559 (__v4si)(__m128i)(v1), (int)(scale))
34653560
34663561#define _mm256_mask_i64scatter_epi32(addr, mask, index, v1, scale) \
3467 __builtin_ia32_scatterdiv8si((int *)(addr), (__mmask8)(mask), \
3562 __builtin_ia32_scatterdiv8si((void *)(addr), (__mmask8)(mask), \
34683563 (__v4di)(__m256i)(index), \
34693564 (__v4si)(__m128i)(v1), (int)(scale))
34703565
34713566#define _mm_i32scatter_pd(addr, index, v1, scale) \
3472 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)-1, \
3567 __builtin_ia32_scattersiv2df((void *)(addr), (__mmask8)-1, \
34733568 (__v4si)(__m128i)(index), \
34743569 (__v2df)(__m128d)(v1), (int)(scale))
34753570
34763571#define _mm_mask_i32scatter_pd(addr, mask, index, v1, scale) \
3477 __builtin_ia32_scattersiv2df((double *)(addr), (__mmask8)(mask), \
3572 __builtin_ia32_scattersiv2df((void *)(addr), (__mmask8)(mask), \
34783573 (__v4si)(__m128i)(index), \
34793574 (__v2df)(__m128d)(v1), (int)(scale))
34803575
34813576#define _mm_i32scatter_epi64(addr, index, v1, scale) \
3482 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)-1, \
3577 __builtin_ia32_scattersiv2di((void *)(addr), (__mmask8)-1, \
34833578 (__v4si)(__m128i)(index), \
34843579 (__v2di)(__m128i)(v1), (int)(scale))
34853580
34863581#define _mm_mask_i32scatter_epi64(addr, mask, index, v1, scale) \
3487 __builtin_ia32_scattersiv2di((long long *)(addr), (__mmask8)(mask), \
3582 __builtin_ia32_scattersiv2di((void *)(addr), (__mmask8)(mask), \
34883583 (__v4si)(__m128i)(index), \
34893584 (__v2di)(__m128i)(v1), (int)(scale))
34903585
34913586#define _mm256_i32scatter_pd(addr, index, v1, scale) \
3492 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)-1, \
3587 __builtin_ia32_scattersiv4df((void *)(addr), (__mmask8)-1, \
34933588 (__v4si)(__m128i)(index), \
34943589 (__v4df)(__m256d)(v1), (int)(scale))
34953590
34963591#define _mm256_mask_i32scatter_pd(addr, mask, index, v1, scale) \
3497 __builtin_ia32_scattersiv4df((double *)(addr), (__mmask8)(mask), \
3592 __builtin_ia32_scattersiv4df((void *)(addr), (__mmask8)(mask), \
34983593 (__v4si)(__m128i)(index), \
34993594 (__v4df)(__m256d)(v1), (int)(scale))
35003595
35013596#define _mm256_i32scatter_epi64(addr, index, v1, scale) \
3502 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)-1, \
3597 __builtin_ia32_scattersiv4di((void *)(addr), (__mmask8)-1, \
35033598 (__v4si)(__m128i)(index), \
35043599 (__v4di)(__m256i)(v1), (int)(scale))
35053600
35063601#define _mm256_mask_i32scatter_epi64(addr, mask, index, v1, scale) \
3507 __builtin_ia32_scattersiv4di((long long *)(addr), (__mmask8)(mask), \
3602 __builtin_ia32_scattersiv4di((void *)(addr), (__mmask8)(mask), \
35083603 (__v4si)(__m128i)(index), \
35093604 (__v4di)(__m256i)(v1), (int)(scale))
35103605
35113606#define _mm_i32scatter_ps(addr, index, v1, scale) \
3512 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)-1, \
3607 __builtin_ia32_scattersiv4sf((void *)(addr), (__mmask8)-1, \
35133608 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
35143609 (int)(scale))
35153610
35163611#define _mm_mask_i32scatter_ps(addr, mask, index, v1, scale) \
3517 __builtin_ia32_scattersiv4sf((float *)(addr), (__mmask8)(mask), \
3612 __builtin_ia32_scattersiv4sf((void *)(addr), (__mmask8)(mask), \
35183613 (__v4si)(__m128i)(index), (__v4sf)(__m128)(v1), \
35193614 (int)(scale))
35203615
35213616#define _mm_i32scatter_epi32(addr, index, v1, scale) \
3522 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)-1, \
3617 __builtin_ia32_scattersiv4si((void *)(addr), (__mmask8)-1, \
35233618 (__v4si)(__m128i)(index), \
35243619 (__v4si)(__m128i)(v1), (int)(scale))
35253620
35263621#define _mm_mask_i32scatter_epi32(addr, mask, index, v1, scale) \
3527 __builtin_ia32_scattersiv4si((int *)(addr), (__mmask8)(mask), \
3622 __builtin_ia32_scattersiv4si((void *)(addr), (__mmask8)(mask), \
35283623 (__v4si)(__m128i)(index), \
35293624 (__v4si)(__m128i)(v1), (int)(scale))
35303625
35313626#define _mm256_i32scatter_ps(addr, index, v1, scale) \
3532 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)-1, \
3627 __builtin_ia32_scattersiv8sf((void *)(addr), (__mmask8)-1, \
35333628 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
35343629 (int)(scale))
35353630
35363631#define _mm256_mask_i32scatter_ps(addr, mask, index, v1, scale) \
3537 __builtin_ia32_scattersiv8sf((float *)(addr), (__mmask8)(mask), \
3632 __builtin_ia32_scattersiv8sf((void *)(addr), (__mmask8)(mask), \
35383633 (__v8si)(__m256i)(index), (__v8sf)(__m256)(v1), \
35393634 (int)(scale))
35403635
35413636#define _mm256_i32scatter_epi32(addr, index, v1, scale) \
3542 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)-1, \
3637 __builtin_ia32_scattersiv8si((void *)(addr), (__mmask8)-1, \
35433638 (__v8si)(__m256i)(index), \
35443639 (__v8si)(__m256i)(v1), (int)(scale))
35453640
35463641#define _mm256_mask_i32scatter_epi32(addr, mask, index, v1, scale) \
3547 __builtin_ia32_scattersiv8si((int *)(addr), (__mmask8)(mask), \
3642 __builtin_ia32_scattersiv8si((void *)(addr), (__mmask8)(mask), \
35483643 (__v8si)(__m256i)(index), \
35493644 (__v8si)(__m256i)(v1), (int)(scale))
35503645
......@@ -4989,6 +5084,12 @@ _mm256_maskz_mov_epi32 (__mmask8 __U, __m256i __A)
49895084 (__v8si) _mm256_setzero_si256 ());
49905085}
49915086
5087static __inline __m128i __DEFAULT_FN_ATTRS128
5088_mm_load_epi32 (void const *__P)
5089{
5090 return *(__m128i *) __P;
5091}
5092
49925093static __inline__ __m128i __DEFAULT_FN_ATTRS128
49935094_mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P)
49945095{
......@@ -5008,6 +5109,12 @@ _mm_maskz_load_epi32 (__mmask8 __U, void const *__P)
50085109 __U);
50095110}
50105111
5112static __inline __m256i __DEFAULT_FN_ATTRS256
5113_mm256_load_epi32 (void const *__P)
5114{
5115 return *(__m256i *) __P;
5116}
5117
50115118static __inline__ __m256i __DEFAULT_FN_ATTRS256
50125119_mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P)
50135120{
......@@ -5027,6 +5134,12 @@ _mm256_maskz_load_epi32 (__mmask8 __U, void const *__P)
50275134 __U);
50285135}
50295136
5137static __inline void __DEFAULT_FN_ATTRS128
5138_mm_store_epi32 (void *__P, __m128i __A)
5139{
5140 *(__m128i *) __P = __A;
5141}
5142
50305143static __inline__ void __DEFAULT_FN_ATTRS128
50315144_mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A)
50325145{
......@@ -5035,6 +5148,12 @@ _mm_mask_store_epi32 (void *__P, __mmask8 __U, __m128i __A)
50355148 (__mmask8) __U);
50365149}
50375150
5151static __inline void __DEFAULT_FN_ATTRS256
5152_mm256_store_epi32 (void *__P, __m256i __A)
5153{
5154 *(__m256i *) __P = __A;
5155}
5156
50385157static __inline__ void __DEFAULT_FN_ATTRS256
50395158_mm256_mask_store_epi32 (void *__P, __mmask8 __U, __m256i __A)
50405159{
......@@ -5075,6 +5194,12 @@ _mm256_maskz_mov_epi64 (__mmask8 __U, __m256i __A)
50755194 (__v4di) _mm256_setzero_si256 ());
50765195}
50775196
5197static __inline __m128i __DEFAULT_FN_ATTRS128
5198_mm_load_epi64 (void const *__P)
5199{
5200 return *(__m128i *) __P;
5201}
5202
50785203static __inline__ __m128i __DEFAULT_FN_ATTRS128
50795204_mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P)
50805205{
......@@ -5094,6 +5219,12 @@ _mm_maskz_load_epi64 (__mmask8 __U, void const *__P)
50945219 __U);
50955220}
50965221
5222static __inline __m256i __DEFAULT_FN_ATTRS256
5223_mm256_load_epi64 (void const *__P)
5224{
5225 return *(__m256i *) __P;
5226}
5227
50975228static __inline__ __m256i __DEFAULT_FN_ATTRS256
50985229_mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P)
50995230{
......@@ -5113,6 +5244,12 @@ _mm256_maskz_load_epi64 (__mmask8 __U, void const *__P)
51135244 __U);
51145245}
51155246
5247static __inline void __DEFAULT_FN_ATTRS128
5248_mm_store_epi64 (void *__P, __m128i __A)
5249{
5250 *(__m128i *) __P = __A;
5251}
5252
51165253static __inline__ void __DEFAULT_FN_ATTRS128
51175254_mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A)
51185255{
......@@ -5121,6 +5258,12 @@ _mm_mask_store_epi64 (void *__P, __mmask8 __U, __m128i __A)
51215258 (__mmask8) __U);
51225259}
51235260
5261static __inline void __DEFAULT_FN_ATTRS256
5262_mm256_store_epi64 (void *__P, __m256i __A)
5263{
5264 *(__m256i *) __P = __A;
5265}
5266
51245267static __inline__ void __DEFAULT_FN_ATTRS256
51255268_mm256_mask_store_epi64 (void *__P, __mmask8 __U, __m256i __A)
51265269{
......@@ -5366,6 +5509,15 @@ _mm256_maskz_load_ps (__mmask8 __U, void const *__P)
53665509 (__mmask8) __U);
53675510}
53685511
5512static __inline __m128i __DEFAULT_FN_ATTRS128
5513_mm_loadu_epi64 (void const *__P)
5514{
5515 struct __loadu_epi64 {
5516 __m128i __v;
5517 } __attribute__((__packed__, __may_alias__));
5518 return ((struct __loadu_epi64*)__P)->__v;
5519}
5520
53695521static __inline__ __m128i __DEFAULT_FN_ATTRS128
53705522_mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P)
53715523{
......@@ -5383,6 +5535,15 @@ _mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
53835535 (__mmask8) __U);
53845536}
53855537
5538static __inline __m256i __DEFAULT_FN_ATTRS256
5539_mm256_loadu_epi64 (void const *__P)
5540{
5541 struct __loadu_epi64 {
5542 __m256i __v;
5543 } __attribute__((__packed__, __may_alias__));
5544 return ((struct __loadu_epi64*)__P)->__v;
5545}
5546
53865547static __inline__ __m256i __DEFAULT_FN_ATTRS256
53875548_mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P)
53885549{
......@@ -5400,6 +5561,15 @@ _mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
54005561 (__mmask8) __U);
54015562}
54025563
5564static __inline __m128i __DEFAULT_FN_ATTRS128
5565_mm_loadu_epi32 (void const *__P)
5566{
5567 struct __loadu_epi32 {
5568 __m128i __v;
5569 } __attribute__((__packed__, __may_alias__));
5570 return ((struct __loadu_epi32*)__P)->__v;
5571}
5572
54035573static __inline__ __m128i __DEFAULT_FN_ATTRS128
54045574_mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P)
54055575{
......@@ -5417,6 +5587,15 @@ _mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P)
54175587 (__mmask8) __U);
54185588}
54195589
5590static __inline __m256i __DEFAULT_FN_ATTRS256
5591_mm256_loadu_epi32 (void const *__P)
5592{
5593 struct __loadu_epi32 {
5594 __m256i __v;
5595 } __attribute__((__packed__, __may_alias__));
5596 return ((struct __loadu_epi32*)__P)->__v;
5597}
5598
54205599static __inline__ __m256i __DEFAULT_FN_ATTRS256
54215600_mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P)
54225601{
......@@ -5534,6 +5713,15 @@ _mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A)
55345713 (__mmask8) __U);
55355714}
55365715
5716static __inline void __DEFAULT_FN_ATTRS128
5717_mm_storeu_epi64 (void *__P, __m128i __A)
5718{
5719 struct __storeu_epi64 {
5720 __m128i __v;
5721 } __attribute__((__packed__, __may_alias__));
5722 ((struct __storeu_epi64*)__P)->__v = __A;
5723}
5724
55375725static __inline__ void __DEFAULT_FN_ATTRS128
55385726_mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A)
55395727{
......@@ -5542,6 +5730,15 @@ _mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A)
55425730 (__mmask8) __U);
55435731}
55445732
5733static __inline void __DEFAULT_FN_ATTRS256
5734_mm256_storeu_epi64 (void *__P, __m256i __A)
5735{
5736 struct __storeu_epi64 {
5737 __m256i __v;
5738 } __attribute__((__packed__, __may_alias__));
5739 ((struct __storeu_epi64*)__P)->__v = __A;
5740}
5741
55455742static __inline__ void __DEFAULT_FN_ATTRS256
55465743_mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A)
55475744{
......@@ -5550,6 +5747,15 @@ _mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A)
55505747 (__mmask8) __U);
55515748}
55525749
5750static __inline void __DEFAULT_FN_ATTRS128
5751_mm_storeu_epi32 (void *__P, __m128i __A)
5752{
5753 struct __storeu_epi32 {
5754 __m128i __v;
5755 } __attribute__((__packed__, __may_alias__));
5756 ((struct __storeu_epi32*)__P)->__v = __A;
5757}
5758
55535759static __inline__ void __DEFAULT_FN_ATTRS128
55545760_mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A)
55555761{
......@@ -5558,6 +5764,15 @@ _mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A)
55585764 (__mmask8) __U);
55595765}
55605766
5767static __inline void __DEFAULT_FN_ATTRS256
5768_mm256_storeu_epi32 (void *__P, __m256i __A)
5769{
5770 struct __storeu_epi32 {
5771 __m256i __v;
5772 } __attribute__((__packed__, __may_alias__));
5773 ((struct __storeu_epi32*)__P)->__v = __A;
5774}
5775
55615776static __inline__ void __DEFAULT_FN_ATTRS256
55625777_mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A)
55635778{
......@@ -7769,97 +7984,97 @@ _mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
77697984
77707985#define _mm_mmask_i64gather_pd(v1_old, mask, index, addr, scale) \
77717986 (__m128d)__builtin_ia32_gather3div2df((__v2df)(__m128d)(v1_old), \
7772 (double const *)(addr), \
7987 (void const *)(addr), \
77737988 (__v2di)(__m128i)(index), \
77747989 (__mmask8)(mask), (int)(scale))
77757990
77767991#define _mm_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) \
77777992 (__m128i)__builtin_ia32_gather3div2di((__v2di)(__m128i)(v1_old), \
7778 (long long const *)(addr), \
7993 (void const *)(addr), \
77797994 (__v2di)(__m128i)(index), \
77807995 (__mmask8)(mask), (int)(scale))
77817996
77827997#define _mm256_mmask_i64gather_pd(v1_old, mask, index, addr, scale) \
77837998 (__m256d)__builtin_ia32_gather3div4df((__v4df)(__m256d)(v1_old), \
7784 (double const *)(addr), \
7999 (void const *)(addr), \
77858000 (__v4di)(__m256i)(index), \
77868001 (__mmask8)(mask), (int)(scale))
77878002
77888003#define _mm256_mmask_i64gather_epi64(v1_old, mask, index, addr, scale) \
77898004 (__m256i)__builtin_ia32_gather3div4di((__v4di)(__m256i)(v1_old), \
7790 (long long const *)(addr), \
8005 (void const *)(addr), \
77918006 (__v4di)(__m256i)(index), \
77928007 (__mmask8)(mask), (int)(scale))
77938008
77948009#define _mm_mmask_i64gather_ps(v1_old, mask, index, addr, scale) \
77958010 (__m128)__builtin_ia32_gather3div4sf((__v4sf)(__m128)(v1_old), \
7796 (float const *)(addr), \
8011 (void const *)(addr), \
77978012 (__v2di)(__m128i)(index), \
77988013 (__mmask8)(mask), (int)(scale))
77998014
78008015#define _mm_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) \
78018016 (__m128i)__builtin_ia32_gather3div4si((__v4si)(__m128i)(v1_old), \
7802 (int const *)(addr), \
8017 (void const *)(addr), \
78038018 (__v2di)(__m128i)(index), \
78048019 (__mmask8)(mask), (int)(scale))
78058020
78068021#define _mm256_mmask_i64gather_ps(v1_old, mask, index, addr, scale) \
78078022 (__m128)__builtin_ia32_gather3div8sf((__v4sf)(__m128)(v1_old), \
7808 (float const *)(addr), \
8023 (void const *)(addr), \
78098024 (__v4di)(__m256i)(index), \
78108025 (__mmask8)(mask), (int)(scale))
78118026
78128027#define _mm256_mmask_i64gather_epi32(v1_old, mask, index, addr, scale) \
78138028 (__m128i)__builtin_ia32_gather3div8si((__v4si)(__m128i)(v1_old), \
7814 (int const *)(addr), \
8029 (void const *)(addr), \
78158030 (__v4di)(__m256i)(index), \
78168031 (__mmask8)(mask), (int)(scale))
78178032
78188033#define _mm_mmask_i32gather_pd(v1_old, mask, index, addr, scale) \
78198034 (__m128d)__builtin_ia32_gather3siv2df((__v2df)(__m128d)(v1_old), \
7820 (double const *)(addr), \
8035 (void const *)(addr), \
78218036 (__v4si)(__m128i)(index), \
78228037 (__mmask8)(mask), (int)(scale))
78238038
78248039#define _mm_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) \
78258040 (__m128i)__builtin_ia32_gather3siv2di((__v2di)(__m128i)(v1_old), \
7826 (long long const *)(addr), \
8041 (void const *)(addr), \
78278042 (__v4si)(__m128i)(index), \
78288043 (__mmask8)(mask), (int)(scale))
78298044
78308045#define _mm256_mmask_i32gather_pd(v1_old, mask, index, addr, scale) \
78318046 (__m256d)__builtin_ia32_gather3siv4df((__v4df)(__m256d)(v1_old), \
7832 (double const *)(addr), \
8047 (void const *)(addr), \
78338048 (__v4si)(__m128i)(index), \
78348049 (__mmask8)(mask), (int)(scale))
78358050
78368051#define _mm256_mmask_i32gather_epi64(v1_old, mask, index, addr, scale) \
78378052 (__m256i)__builtin_ia32_gather3siv4di((__v4di)(__m256i)(v1_old), \
7838 (long long const *)(addr), \
8053 (void const *)(addr), \
78398054 (__v4si)(__m128i)(index), \
78408055 (__mmask8)(mask), (int)(scale))
78418056
78428057#define _mm_mmask_i32gather_ps(v1_old, mask, index, addr, scale) \
78438058 (__m128)__builtin_ia32_gather3siv4sf((__v4sf)(__m128)(v1_old), \
7844 (float const *)(addr), \
8059 (void const *)(addr), \
78458060 (__v4si)(__m128i)(index), \
78468061 (__mmask8)(mask), (int)(scale))
78478062
78488063#define _mm_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) \
78498064 (__m128i)__builtin_ia32_gather3siv4si((__v4si)(__m128i)(v1_old), \
7850 (int const *)(addr), \
8065 (void const *)(addr), \
78518066 (__v4si)(__m128i)(index), \
78528067 (__mmask8)(mask), (int)(scale))
78538068
78548069#define _mm256_mmask_i32gather_ps(v1_old, mask, index, addr, scale) \
78558070 (__m256)__builtin_ia32_gather3siv8sf((__v8sf)(__m256)(v1_old), \
7856 (float const *)(addr), \
8071 (void const *)(addr), \
78578072 (__v8si)(__m256i)(index), \
78588073 (__mmask8)(mask), (int)(scale))
78598074
78608075#define _mm256_mmask_i32gather_epi32(v1_old, mask, index, addr, scale) \
78618076 (__m256i)__builtin_ia32_gather3siv8si((__v8si)(__m256i)(v1_old), \
7862 (int const *)(addr), \
8077 (void const *)(addr), \
78638078 (__v8si)(__m256i)(index), \
78648079 (__mmask8)(mask), (int)(scale))
78658080
c_headers/avx512vlvbmi2intrin.h+132-180
......@@ -421,327 +421,279 @@ _mm256_maskz_expandloadu_epi8(__mmask32 __U, void const *__P)
421421 (__v8hi)_mm_setzero_si128())
422422
423423static __inline__ __m256i __DEFAULT_FN_ATTRS256
424_mm256_mask_shldv_epi64(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B)
424_mm256_shldv_epi64(__m256i __A, __m256i __B, __m256i __C)
425425{
426 return (__m256i) __builtin_ia32_vpshldvq256_mask ((__v4di) __S,
427 (__v4di) __A,
428 (__v4di) __B,
429 __U);
426 return (__m256i)__builtin_ia32_vpshldvq256((__v4di)__A, (__v4di)__B,
427 (__v4di)__C);
430428}
431429
432430static __inline__ __m256i __DEFAULT_FN_ATTRS256
433_mm256_maskz_shldv_epi64(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B)
431_mm256_mask_shldv_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C)
434432{
435 return (__m256i) __builtin_ia32_vpshldvq256_maskz ((__v4di) __S,
436 (__v4di) __A,
437 (__v4di) __B,
438 __U);
433 return (__m256i)__builtin_ia32_selectq_256(__U,
434 (__v4di)_mm256_shldv_epi64(__A, __B, __C),
435 (__v4di)__A);
439436}
440437
441438static __inline__ __m256i __DEFAULT_FN_ATTRS256
442_mm256_shldv_epi64(__m256i __S, __m256i __A, __m256i __B)
439_mm256_maskz_shldv_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C)
443440{
444 return (__m256i) __builtin_ia32_vpshldvq256_mask ((__v4di) __S,
445 (__v4di) __A,
446 (__v4di) __B,
447 (__mmask8) -1);
441 return (__m256i)__builtin_ia32_selectq_256(__U,
442 (__v4di)_mm256_shldv_epi64(__A, __B, __C),
443 (__v4di)_mm256_setzero_si256());
448444}
449445
450446static __inline__ __m128i __DEFAULT_FN_ATTRS128
451_mm_mask_shldv_epi64(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B)
447_mm_shldv_epi64(__m128i __A, __m128i __B, __m128i __C)
452448{
453 return (__m128i) __builtin_ia32_vpshldvq128_mask ((__v2di) __S,
454 (__v2di) __A,
455 (__v2di) __B,
456 __U);
449 return (__m128i)__builtin_ia32_vpshldvq128((__v2di)__A, (__v2di)__B,
450 (__v2di)__C);
457451}
458452
459453static __inline__ __m128i __DEFAULT_FN_ATTRS128
460_mm_maskz_shldv_epi64(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B)
454_mm_mask_shldv_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
461455{
462 return (__m128i) __builtin_ia32_vpshldvq128_maskz ((__v2di) __S,
463 (__v2di) __A,
464 (__v2di) __B,
465 __U);
456 return (__m128i)__builtin_ia32_selectq_128(__U,
457 (__v2di)_mm_shldv_epi64(__A, __B, __C),
458 (__v2di)__A);
466459}
467460
468461static __inline__ __m128i __DEFAULT_FN_ATTRS128
469_mm_shldv_epi64(__m128i __S, __m128i __A, __m128i __B)
462_mm_maskz_shldv_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
470463{
471 return (__m128i) __builtin_ia32_vpshldvq128_mask ((__v2di) __S,
472 (__v2di) __A,
473 (__v2di) __B,
474 (__mmask8) -1);
464 return (__m128i)__builtin_ia32_selectq_128(__U,
465 (__v2di)_mm_shldv_epi64(__A, __B, __C),
466 (__v2di)_mm_setzero_si128());
475467}
476468
477469static __inline__ __m256i __DEFAULT_FN_ATTRS256
478_mm256_mask_shldv_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B)
470_mm256_shldv_epi32(__m256i __A, __m256i __B, __m256i __C)
479471{
480 return (__m256i) __builtin_ia32_vpshldvd256_mask ((__v8si) __S,
481 (__v8si) __A,
482 (__v8si) __B,
483 __U);
472 return (__m256i)__builtin_ia32_vpshldvd256((__v8si)__A, (__v8si)__B,
473 (__v8si)__C);
484474}
485475
486476static __inline__ __m256i __DEFAULT_FN_ATTRS256
487_mm256_maskz_shldv_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B)
477_mm256_mask_shldv_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C)
488478{
489 return (__m256i) __builtin_ia32_vpshldvd256_maskz ((__v8si) __S,
490 (__v8si) __A,
491 (__v8si) __B,
492 __U);
479 return (__m256i)__builtin_ia32_selectd_256(__U,
480 (__v8si)_mm256_shldv_epi32(__A, __B, __C),
481 (__v8si)__A);
493482}
494483
495484static __inline__ __m256i __DEFAULT_FN_ATTRS256
496_mm256_shldv_epi32(__m256i __S, __m256i __A, __m256i __B)
485_mm256_maskz_shldv_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C)
497486{
498 return (__m256i) __builtin_ia32_vpshldvd256_mask ((__v8si) __S,
499 (__v8si) __A,
500 (__v8si) __B,
501 (__mmask8) -1);
487 return (__m256i)__builtin_ia32_selectd_256(__U,
488 (__v8si)_mm256_shldv_epi32(__A, __B, __C),
489 (__v8si)_mm256_setzero_si256());
502490}
503491
504492static __inline__ __m128i __DEFAULT_FN_ATTRS128
505_mm_mask_shldv_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B)
493_mm_shldv_epi32(__m128i __A, __m128i __B, __m128i __C)
506494{
507 return (__m128i) __builtin_ia32_vpshldvd128_mask ((__v4si) __S,
508 (__v4si) __A,
509 (__v4si) __B,
510 __U);
495 return (__m128i)__builtin_ia32_vpshldvd128((__v4si)__A, (__v4si)__B,
496 (__v4si)__C);
511497}
512498
513499static __inline__ __m128i __DEFAULT_FN_ATTRS128
514_mm_maskz_shldv_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B)
500_mm_mask_shldv_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
515501{
516 return (__m128i) __builtin_ia32_vpshldvd128_maskz ((__v4si) __S,
517 (__v4si) __A,
518 (__v4si) __B,
519 __U);
502 return (__m128i)__builtin_ia32_selectd_128(__U,
503 (__v4si)_mm_shldv_epi32(__A, __B, __C),
504 (__v4si)__A);
520505}
521506
522507static __inline__ __m128i __DEFAULT_FN_ATTRS128
523_mm_shldv_epi32(__m128i __S, __m128i __A, __m128i __B)
508_mm_maskz_shldv_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
524509{
525 return (__m128i) __builtin_ia32_vpshldvd128_mask ((__v4si) __S,
526 (__v4si) __A,
527 (__v4si) __B,
528 (__mmask8) -1);
510 return (__m128i)__builtin_ia32_selectd_128(__U,
511 (__v4si)_mm_shldv_epi32(__A, __B, __C),
512 (__v4si)_mm_setzero_si128());
529513}
530514
531515static __inline__ __m256i __DEFAULT_FN_ATTRS256
532_mm256_mask_shldv_epi16(__m256i __S, __mmask16 __U, __m256i __A, __m256i __B)
516_mm256_shldv_epi16(__m256i __A, __m256i __B, __m256i __C)
533517{
534 return (__m256i) __builtin_ia32_vpshldvw256_mask ((__v16hi) __S,
535 (__v16hi) __A,
536 (__v16hi) __B,
537 __U);
518 return (__m256i)__builtin_ia32_vpshldvw256((__v16hi)__A, (__v16hi)__B,
519 (__v16hi)__C);
538520}
539521
540522static __inline__ __m256i __DEFAULT_FN_ATTRS256
541_mm256_maskz_shldv_epi16(__mmask16 __U, __m256i __S, __m256i __A, __m256i __B)
523_mm256_mask_shldv_epi16(__m256i __A, __mmask16 __U, __m256i __B, __m256i __C)
542524{
543 return (__m256i) __builtin_ia32_vpshldvw256_maskz ((__v16hi) __S,
544 (__v16hi) __A,
545 (__v16hi) __B,
546 __U);
525 return (__m256i)__builtin_ia32_selectw_256(__U,
526 (__v16hi)_mm256_shldv_epi16(__A, __B, __C),
527 (__v16hi)__A);
547528}
548529
549530static __inline__ __m256i __DEFAULT_FN_ATTRS256
550_mm256_shldv_epi16(__m256i __S, __m256i __A, __m256i __B)
531_mm256_maskz_shldv_epi16(__mmask16 __U, __m256i __A, __m256i __B, __m256i __C)
551532{
552 return (__m256i) __builtin_ia32_vpshldvw256_mask ((__v16hi) __S,
553 (__v16hi) __A,
554 (__v16hi) __B,
555 (__mmask16) -1);
533 return (__m256i)__builtin_ia32_selectw_256(__U,
534 (__v16hi)_mm256_shldv_epi16(__A, __B, __C),
535 (__v16hi)_mm256_setzero_si256());
556536}
557537
558538static __inline__ __m128i __DEFAULT_FN_ATTRS128
559_mm_mask_shldv_epi16(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B)
539_mm_shldv_epi16(__m128i __A, __m128i __B, __m128i __C)
560540{
561 return (__m128i) __builtin_ia32_vpshldvw128_mask ((__v8hi) __S,
562 (__v8hi) __A,
563 (__v8hi) __B,
564 __U);
541 return (__m128i)__builtin_ia32_vpshldvw128((__v8hi)__A, (__v8hi)__B,
542 (__v8hi)__C);
565543}
566544
567545static __inline__ __m128i __DEFAULT_FN_ATTRS128
568_mm_maskz_shldv_epi16(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B)
546_mm_mask_shldv_epi16(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
569547{
570 return (__m128i) __builtin_ia32_vpshldvw128_maskz ((__v8hi) __S,
571 (__v8hi) __A,
572 (__v8hi) __B,
573 __U);
548 return (__m128i)__builtin_ia32_selectw_128(__U,
549 (__v8hi)_mm_shldv_epi16(__A, __B, __C),
550 (__v8hi)__A);
574551}
575552
576553static __inline__ __m128i __DEFAULT_FN_ATTRS128
577_mm_shldv_epi16(__m128i __S, __m128i __A, __m128i __B)
554_mm_maskz_shldv_epi16(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
578555{
579 return (__m128i) __builtin_ia32_vpshldvw128_mask ((__v8hi) __S,
580 (__v8hi) __A,
581 (__v8hi) __B,
582 (__mmask8) -1);
556 return (__m128i)__builtin_ia32_selectw_128(__U,
557 (__v8hi)_mm_shldv_epi16(__A, __B, __C),
558 (__v8hi)_mm_setzero_si128());
583559}
584560
585561static __inline__ __m256i __DEFAULT_FN_ATTRS256
586_mm256_mask_shrdv_epi64(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B)
562_mm256_shrdv_epi64(__m256i __A, __m256i __B, __m256i __C)
587563{
588 return (__m256i) __builtin_ia32_vpshrdvq256_mask ((__v4di) __S,
589 (__v4di) __A,
590 (__v4di) __B,
591 __U);
564 return (__m256i)__builtin_ia32_vpshrdvq256((__v4di)__A, (__v4di)__B,
565 (__v4di)__C);
592566}
593567
594568static __inline__ __m256i __DEFAULT_FN_ATTRS256
595_mm256_maskz_shrdv_epi64(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B)
569_mm256_mask_shrdv_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C)
596570{
597 return (__m256i) __builtin_ia32_vpshrdvq256_maskz ((__v4di) __S,
598 (__v4di) __A,
599 (__v4di) __B,
600 __U);
571 return (__m256i)__builtin_ia32_selectq_256(__U,
572 (__v4di)_mm256_shrdv_epi64(__A, __B, __C),
573 (__v4di)__A);
601574}
602575
603576static __inline__ __m256i __DEFAULT_FN_ATTRS256
604_mm256_shrdv_epi64(__m256i __S, __m256i __A, __m256i __B)
577_mm256_maskz_shrdv_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C)
605578{
606 return (__m256i) __builtin_ia32_vpshrdvq256_mask ((__v4di) __S,
607 (__v4di) __A,
608 (__v4di) __B,
609 (__mmask8) -1);
579 return (__m256i)__builtin_ia32_selectq_256(__U,
580 (__v4di)_mm256_shrdv_epi64(__A, __B, __C),
581 (__v4di)_mm256_setzero_si256());
610582}
611583
612584static __inline__ __m128i __DEFAULT_FN_ATTRS128
613_mm_mask_shrdv_epi64(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B)
585_mm_shrdv_epi64(__m128i __A, __m128i __B, __m128i __C)
614586{
615 return (__m128i) __builtin_ia32_vpshrdvq128_mask ((__v2di) __S,
616 (__v2di) __A,
617 (__v2di) __B,
618 __U);
587 return (__m128i)__builtin_ia32_vpshrdvq128((__v2di)__A, (__v2di)__B,
588 (__v2di)__C);
619589}
620590
621591static __inline__ __m128i __DEFAULT_FN_ATTRS128
622_mm_maskz_shrdv_epi64(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B)
592_mm_mask_shrdv_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
623593{
624 return (__m128i) __builtin_ia32_vpshrdvq128_maskz ((__v2di) __S,
625 (__v2di) __A,
626 (__v2di) __B,
627 __U);
594 return (__m128i)__builtin_ia32_selectq_128(__U,
595 (__v2di)_mm_shrdv_epi64(__A, __B, __C),
596 (__v2di)__A);
628597}
629598
630599static __inline__ __m128i __DEFAULT_FN_ATTRS128
631_mm_shrdv_epi64(__m128i __S, __m128i __A, __m128i __B)
600_mm_maskz_shrdv_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
632601{
633 return (__m128i) __builtin_ia32_vpshrdvq128_mask ((__v2di) __S,
634 (__v2di) __A,
635 (__v2di) __B,
636 (__mmask8) -1);
602 return (__m128i)__builtin_ia32_selectq_128(__U,
603 (__v2di)_mm_shrdv_epi64(__A, __B, __C),
604 (__v2di)_mm_setzero_si128());
637605}
638606
639607static __inline__ __m256i __DEFAULT_FN_ATTRS256
640_mm256_mask_shrdv_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B)
608_mm256_shrdv_epi32(__m256i __A, __m256i __B, __m256i __C)
641609{
642 return (__m256i) __builtin_ia32_vpshrdvd256_mask ((__v8si) __S,
643 (__v8si) __A,
644 (__v8si) __B,
645 __U);
610 return (__m256i)__builtin_ia32_vpshrdvd256((__v8si)__A, (__v8si)__B,
611 (__v8si)__C);
646612}
647613
648614static __inline__ __m256i __DEFAULT_FN_ATTRS256
649_mm256_maskz_shrdv_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B)
615_mm256_mask_shrdv_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C)
650616{
651 return (__m256i) __builtin_ia32_vpshrdvd256_maskz ((__v8si) __S,
652 (__v8si) __A,
653 (__v8si) __B,
654 __U);
617 return (__m256i)__builtin_ia32_selectd_256(__U,
618 (__v8si)_mm256_shrdv_epi32(__A, __B, __C),
619 (__v8si)__A);
655620}
656621
657622static __inline__ __m256i __DEFAULT_FN_ATTRS256
658_mm256_shrdv_epi32(__m256i __S, __m256i __A, __m256i __B)
623_mm256_maskz_shrdv_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C)
659624{
660 return (__m256i) __builtin_ia32_vpshrdvd256_mask ((__v8si) __S,
661 (__v8si) __A,
662 (__v8si) __B,
663 (__mmask8) -1);
625 return (__m256i)__builtin_ia32_selectd_256(__U,
626 (__v8si)_mm256_shrdv_epi32(__A, __B, __C),
627 (__v8si)_mm256_setzero_si256());
664628}
665629
666630static __inline__ __m128i __DEFAULT_FN_ATTRS128
667_mm_mask_shrdv_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B)
631_mm_shrdv_epi32(__m128i __A, __m128i __B, __m128i __C)
668632{
669 return (__m128i) __builtin_ia32_vpshrdvd128_mask ((__v4si) __S,
670 (__v4si) __A,
671 (__v4si) __B,
672 __U);
633 return (__m128i)__builtin_ia32_vpshrdvd128((__v4si)__A, (__v4si)__B,
634 (__v4si)__C);
673635}
674636
675637static __inline__ __m128i __DEFAULT_FN_ATTRS128
676_mm_maskz_shrdv_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B)
638_mm_mask_shrdv_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
677639{
678 return (__m128i) __builtin_ia32_vpshrdvd128_maskz ((__v4si) __S,
679 (__v4si) __A,
680 (__v4si) __B,
681 __U);
640 return (__m128i)__builtin_ia32_selectd_128(__U,
641 (__v4si)_mm_shrdv_epi32(__A, __B, __C),
642 (__v4si)__A);
682643}
683644
684645static __inline__ __m128i __DEFAULT_FN_ATTRS128
685_mm_shrdv_epi32(__m128i __S, __m128i __A, __m128i __B)
646_mm_maskz_shrdv_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
686647{
687 return (__m128i) __builtin_ia32_vpshrdvd128_mask ((__v4si) __S,
688 (__v4si) __A,
689 (__v4si) __B,
690 (__mmask8) -1);
648 return (__m128i)__builtin_ia32_selectd_128(__U,
649 (__v4si)_mm_shrdv_epi32(__A, __B, __C),
650 (__v4si)_mm_setzero_si128());
691651}
692652
693653static __inline__ __m256i __DEFAULT_FN_ATTRS256
694_mm256_mask_shrdv_epi16(__m256i __S, __mmask16 __U, __m256i __A, __m256i __B)
654_mm256_shrdv_epi16(__m256i __A, __m256i __B, __m256i __C)
695655{
696 return (__m256i) __builtin_ia32_vpshrdvw256_mask ((__v16hi) __S,
697 (__v16hi) __A,
698 (__v16hi) __B,
699 __U);
656 return (__m256i)__builtin_ia32_vpshrdvw256((__v16hi)__A, (__v16hi)__B,
657 (__v16hi)__C);
700658}
701659
702660static __inline__ __m256i __DEFAULT_FN_ATTRS256
703_mm256_maskz_shrdv_epi16(__mmask16 __U, __m256i __S, __m256i __A, __m256i __B)
661_mm256_mask_shrdv_epi16(__m256i __A, __mmask16 __U, __m256i __B, __m256i __C)
704662{
705 return (__m256i) __builtin_ia32_vpshrdvw256_maskz ((__v16hi) __S,
706 (__v16hi) __A,
707 (__v16hi) __B,
708 __U);
663 return (__m256i)__builtin_ia32_selectw_256(__U,
664 (__v16hi)_mm256_shrdv_epi16(__A, __B, __C),
665 (__v16hi)__A);
709666}
710667
711668static __inline__ __m256i __DEFAULT_FN_ATTRS256
712_mm256_shrdv_epi16(__m256i __S, __m256i __A, __m256i __B)
669_mm256_maskz_shrdv_epi16(__mmask16 __U, __m256i __A, __m256i __B, __m256i __C)
713670{
714 return (__m256i) __builtin_ia32_vpshrdvw256_mask ((__v16hi) __S,
715 (__v16hi) __A,
716 (__v16hi) __B,
717 (__mmask16) -1);
671 return (__m256i)__builtin_ia32_selectw_256(__U,
672 (__v16hi)_mm256_shrdv_epi16(__A, __B, __C),
673 (__v16hi)_mm256_setzero_si256());
718674}
719675
720676static __inline__ __m128i __DEFAULT_FN_ATTRS128
721_mm_mask_shrdv_epi16(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B)
677_mm_shrdv_epi16(__m128i __A, __m128i __B, __m128i __C)
722678{
723 return (__m128i) __builtin_ia32_vpshrdvw128_mask ((__v8hi) __S,
724 (__v8hi) __A,
725 (__v8hi) __B,
726 __U);
679 return (__m128i)__builtin_ia32_vpshrdvw128((__v8hi)__A, (__v8hi)__B,
680 (__v8hi)__C);
727681}
728682
729683static __inline__ __m128i __DEFAULT_FN_ATTRS128
730_mm_maskz_shrdv_epi16(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B)
684_mm_mask_shrdv_epi16(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C)
731685{
732 return (__m128i) __builtin_ia32_vpshrdvw128_maskz ((__v8hi) __S,
733 (__v8hi) __A,
734 (__v8hi) __B,
735 __U);
686 return (__m128i)__builtin_ia32_selectw_128(__U,
687 (__v8hi)_mm_shrdv_epi16(__A, __B, __C),
688 (__v8hi)__A);
736689}
737690
738691static __inline__ __m128i __DEFAULT_FN_ATTRS128
739_mm_shrdv_epi16(__m128i __S, __m128i __A, __m128i __B)
692_mm_maskz_shrdv_epi16(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C)
740693{
741 return (__m128i) __builtin_ia32_vpshrdvw128_mask ((__v8hi) __S,
742 (__v8hi) __A,
743 (__v8hi) __B,
744 (__mmask8) -1);
694 return (__m128i)__builtin_ia32_selectw_128(__U,
695 (__v8hi)_mm_shrdv_epi16(__A, __B, __C),
696 (__v8hi)_mm_setzero_si128());
745697}
746698
747699
c_headers/bmiintrin.h+5-5
......@@ -62,7 +62,7 @@
6262static __inline__ unsigned short __RELAXED_FN_ATTRS
6363__tzcnt_u16(unsigned short __X)
6464{
65 return __X ? __builtin_ctzs(__X) : 16;
65 return __builtin_ia32_tzcnt_u16(__X);
6666}
6767
6868/// Performs a bitwise AND of the second operand with the one's
......@@ -196,7 +196,7 @@ __blsr_u32(unsigned int __X)
196196static __inline__ unsigned int __RELAXED_FN_ATTRS
197197__tzcnt_u32(unsigned int __X)
198198{
199 return __X ? __builtin_ctz(__X) : 32;
199 return __builtin_ia32_tzcnt_u32(__X);
200200}
201201
202202/// Counts the number of trailing zero bits in the operand.
......@@ -212,7 +212,7 @@ __tzcnt_u32(unsigned int __X)
212212static __inline__ int __RELAXED_FN_ATTRS
213213_mm_tzcnt_32(unsigned int __X)
214214{
215 return __X ? __builtin_ctz(__X) : 32;
215 return __builtin_ia32_tzcnt_u32(__X);
216216}
217217
218218#ifdef __x86_64__
......@@ -359,7 +359,7 @@ __blsr_u64(unsigned long long __X)
359359static __inline__ unsigned long long __RELAXED_FN_ATTRS
360360__tzcnt_u64(unsigned long long __X)
361361{
362 return __X ? __builtin_ctzll(__X) : 64;
362 return __builtin_ia32_tzcnt_u64(__X);
363363}
364364
365365/// Counts the number of trailing zero bits in the operand.
......@@ -375,7 +375,7 @@ __tzcnt_u64(unsigned long long __X)
375375static __inline__ long long __RELAXED_FN_ATTRS
376376_mm_tzcnt_64(unsigned long long __X)
377377{
378 return __X ? __builtin_ctzll(__X) : 64;
378 return __builtin_ia32_tzcnt_u64(__X);
379379}
380380
381381#endif /* __x86_64__ */
c_headers/cuda_wrappers/new+4-2
......@@ -73,10 +73,12 @@ __device__ inline void operator delete[](void *ptr,
7373
7474// Sized delete, C++14 only.
7575#if __cplusplus >= 201402L
76__device__ void operator delete(void *ptr, __SIZE_TYPE__ size) CUDA_NOEXCEPT {
76__device__ inline void operator delete(void *ptr,
77 __SIZE_TYPE__ size) CUDA_NOEXCEPT {
7778 ::operator delete(ptr);
7879}
79__device__ void operator delete[](void *ptr, __SIZE_TYPE__ size) CUDA_NOEXCEPT {
80__device__ inline void operator delete[](void *ptr,
81 __SIZE_TYPE__ size) CUDA_NOEXCEPT {
8082 ::operator delete(ptr);
8183}
8284#endif
c_headers/emmintrin.h+106-1
......@@ -1675,7 +1675,49 @@ _mm_loadu_si64(void const *__a)
16751675 long long __v;
16761676 } __attribute__((__packed__, __may_alias__));
16771677 long long __u = ((struct __loadu_si64*)__a)->__v;
1678 return __extension__ (__m128i)(__v2di){__u, 0L};
1678 return __extension__ (__m128i)(__v2di){__u, 0LL};
1679}
1680
1681/// Loads a 32-bit integer value to the low element of a 128-bit integer
1682/// vector and clears the upper element.
1683///
1684/// \headerfile <x86intrin.h>
1685///
1686/// This intrinsic corresponds to the <c> VMOVD / MOVD </c> instruction.
1687///
1688/// \param __a
1689/// A pointer to a 32-bit memory location. The address of the memory
1690/// location does not have to be aligned.
1691/// \returns A 128-bit vector of [4 x i32] containing the loaded value.
1692static __inline__ __m128i __DEFAULT_FN_ATTRS
1693_mm_loadu_si32(void const *__a)
1694{
1695 struct __loadu_si32 {
1696 int __v;
1697 } __attribute__((__packed__, __may_alias__));
1698 int __u = ((struct __loadu_si32*)__a)->__v;
1699 return __extension__ (__m128i)(__v4si){__u, 0, 0, 0};
1700}
1701
1702/// Loads a 16-bit integer value to the low element of a 128-bit integer
1703/// vector and clears the upper element.
1704///
1705/// \headerfile <x86intrin.h>
1706///
1707/// This intrinsic does not correspond to a specific instruction.
1708///
1709/// \param __a
1710/// A pointer to a 16-bit memory location. The address of the memory
1711/// location does not have to be aligned.
1712/// \returns A 128-bit vector of [8 x i16] containing the loaded value.
1713static __inline__ __m128i __DEFAULT_FN_ATTRS
1714_mm_loadu_si16(void const *__a)
1715{
1716 struct __loadu_si16 {
1717 short __v;
1718 } __attribute__((__packed__, __may_alias__));
1719 short __u = ((struct __loadu_si16*)__a)->__v;
1720 return __extension__ (__m128i)(__v8hi){__u, 0, 0, 0, 0, 0, 0, 0};
16791721}
16801722
16811723/// Loads a 64-bit double-precision value to the low element of a
......@@ -3993,6 +4035,69 @@ _mm_storeu_si128(__m128i *__p, __m128i __b)
39934035 ((struct __storeu_si128*)__p)->__v = __b;
39944036}
39954037
4038/// Stores a 64-bit integer value from the low element of a 128-bit integer
4039/// vector.
4040///
4041/// \headerfile <x86intrin.h>
4042///
4043/// This intrinsic corresponds to the <c> VMOVQ / MOVQ </c> instruction.
4044///
4045/// \param __p
4046/// A pointer to a 64-bit memory location. The address of the memory
4047/// location does not have to be algned.
4048/// \param __b
4049/// A 128-bit integer vector containing the value to be stored.
4050static __inline__ void __DEFAULT_FN_ATTRS
4051_mm_storeu_si64(void const *__p, __m128i __b)
4052{
4053 struct __storeu_si64 {
4054 long long __v;
4055 } __attribute__((__packed__, __may_alias__));
4056 ((struct __storeu_si64*)__p)->__v = ((__v2di)__b)[0];
4057}
4058
4059/// Stores a 32-bit integer value from the low element of a 128-bit integer
4060/// vector.
4061///
4062/// \headerfile <x86intrin.h>
4063///
4064/// This intrinsic corresponds to the <c> VMOVD / MOVD </c> instruction.
4065///
4066/// \param __p
4067/// A pointer to a 32-bit memory location. The address of the memory
4068/// location does not have to be aligned.
4069/// \param __b
4070/// A 128-bit integer vector containing the value to be stored.
4071static __inline__ void __DEFAULT_FN_ATTRS
4072_mm_storeu_si32(void const *__p, __m128i __b)
4073{
4074 struct __storeu_si32 {
4075 int __v;
4076 } __attribute__((__packed__, __may_alias__));
4077 ((struct __storeu_si32*)__p)->__v = ((__v4si)__b)[0];
4078}
4079
4080/// Stores a 16-bit integer value from the low element of a 128-bit integer
4081/// vector.
4082///
4083/// \headerfile <x86intrin.h>
4084///
4085/// This intrinsic does not correspond to a specific instruction.
4086///
4087/// \param __p
4088/// A pointer to a 16-bit memory location. The address of the memory
4089/// location does not have to be aligned.
4090/// \param __b
4091/// A 128-bit integer vector containing the value to be stored.
4092static __inline__ void __DEFAULT_FN_ATTRS
4093_mm_storeu_si16(void const *__p, __m128i __b)
4094{
4095 struct __storeu_si16 {
4096 short __v;
4097 } __attribute__((__packed__, __may_alias__));
4098 ((struct __storeu_si16*)__p)->__v = ((__v8hi)__b)[0];
4099}
4100
39964101/// Moves bytes selected by the mask from the first operand to the
39974102/// specified unaligned memory location. When a mask bit is 1, the
39984103/// corresponding byte is written, otherwise it is not written.
c_headers/float.h+9-3
......@@ -21,8 +21,8 @@
2121 *===-----------------------------------------------------------------------===
2222 */
2323
24#ifndef __FLOAT_H
25#define __FLOAT_H
24#ifndef __CLANG_FLOAT_H
25#define __CLANG_FLOAT_H
2626
2727/* If we're on MinGW, fall back to the system's float.h, which might have
2828 * additional definitions provided for Windows.
......@@ -85,6 +85,9 @@
8585# undef FLT_DECIMAL_DIG
8686# undef DBL_DECIMAL_DIG
8787# undef LDBL_DECIMAL_DIG
88# undef FLT_HAS_SUBNORM
89# undef DBL_HAS_SUBNORM
90# undef LDBL_HAS_SUBNORM
8891# endif
8992#endif
9093
......@@ -141,6 +144,9 @@
141144# define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__
142145# define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__
143146# define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__
147# define FLT_HAS_SUBNORM __FLT_HAS_DENORM__
148# define DBL_HAS_SUBNORM __DBL_HAS_DENORM__
149# define LDBL_HAS_SUBNORM __LDBL_HAS_DENORM__
144150#endif
145151
146152#ifdef __STDC_WANT_IEC_60559_TYPES_EXT__
......@@ -157,4 +163,4 @@
157163# define FLT16_TRUE_MIN __FLT16_TRUE_MIN__
158164#endif /* __STDC_WANT_IEC_60559_TYPES_EXT__ */
159165
160#endif /* __FLOAT_H */
166#endif /* __CLANG_FLOAT_H */
c_headers/immintrin.h+59
......@@ -306,6 +306,65 @@ _writegsbase_u64(unsigned long long __V)
306306#endif
307307#endif /* __FSGSBASE__ */
308308
309#if !defined(_MSC_VER) || __has_feature(modules) || defined(__MOVBE__)
310
311/* The structs used below are to force the load/store to be unaligned. This
312 * is accomplished with the __packed__ attribute. The __may_alias__ prevents
313 * tbaa metadata from being generated based on the struct and the type of the
314 * field inside of it.
315 */
316
317static __inline__ short __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
318_loadbe_i16(void const * __P) {
319 struct __loadu_i16 {
320 short __v;
321 } __attribute__((__packed__, __may_alias__));
322 return __builtin_bswap16(((struct __loadu_i16*)__P)->__v);
323}
324
325static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
326_storebe_i16(void * __P, short __D) {
327 struct __storeu_i16 {
328 short __v;
329 } __attribute__((__packed__, __may_alias__));
330 ((struct __storeu_i16*)__P)->__v = __builtin_bswap16(__D);
331}
332
333static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
334_loadbe_i32(void const * __P) {
335 struct __loadu_i32 {
336 int __v;
337 } __attribute__((__packed__, __may_alias__));
338 return __builtin_bswap32(((struct __loadu_i32*)__P)->__v);
339}
340
341static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
342_storebe_i32(void * __P, int __D) {
343 struct __storeu_i32 {
344 int __v;
345 } __attribute__((__packed__, __may_alias__));
346 ((struct __storeu_i32*)__P)->__v = __builtin_bswap32(__D);
347}
348
349#ifdef __x86_64__
350static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
351_loadbe_i64(void const * __P) {
352 struct __loadu_i64 {
353 long long __v;
354 } __attribute__((__packed__, __may_alias__));
355 return __builtin_bswap64(((struct __loadu_i64*)__P)->__v);
356}
357
358static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
359_storebe_i64(void * __P, long long __D) {
360 struct __storeu_i64 {
361 long long __v;
362 } __attribute__((__packed__, __may_alias__));
363 ((struct __storeu_i64*)__P)->__v = __builtin_bswap64(__D);
364}
365#endif
366#endif /* __MOVBE */
367
309368#if !defined(_MSC_VER) || __has_feature(modules) || defined(__RTM__)
310369#include <rtmintrin.h>
311370#include <xtestintrin.h>
c_headers/intrin.h+126-412
......@@ -90,8 +90,6 @@ void __inwordstring(unsigned short, unsigned short *, unsigned long);
9090void __lidt(void *);
9191unsigned __int64 __ll_lshift(unsigned __int64, int);
9292__int64 __ll_rshift(__int64, int);
93unsigned int __lzcnt(unsigned int);
94unsigned short __lzcnt16(unsigned short);
9593static __inline__
9694void __movsb(unsigned char *, unsigned char const *, size_t);
9795static __inline__
......@@ -219,7 +217,6 @@ void __incgsbyte(unsigned long);
219217void __incgsdword(unsigned long);
220218void __incgsqword(unsigned long);
221219void __incgsword(unsigned long);
222unsigned __int64 __lzcnt64(unsigned __int64);
223220static __inline__
224221void __movsq(unsigned long long *, unsigned long long const *, size_t);
225222static __inline__
......@@ -329,189 +326,63 @@ __int64 _InterlockedAnd64(__int64 volatile *_Value, __int64 _Mask);
329326|* Interlocked Exchange Add
330327\*----------------------------------------------------------------------------*/
331328#if defined(__arm__) || defined(__aarch64__)
332static __inline__ char __DEFAULT_FN_ATTRS
333_InterlockedExchangeAdd8_acq(char volatile *_Addend, char _Value) {
334 return __atomic_fetch_add(_Addend, _Value, __ATOMIC_ACQUIRE);
335}
336static __inline__ char __DEFAULT_FN_ATTRS
337_InterlockedExchangeAdd8_nf(char volatile *_Addend, char _Value) {
338 return __atomic_fetch_add(_Addend, _Value, __ATOMIC_RELAXED);
339}
340static __inline__ char __DEFAULT_FN_ATTRS
341_InterlockedExchangeAdd8_rel(char volatile *_Addend, char _Value) {
342 return __atomic_fetch_add(_Addend, _Value, __ATOMIC_RELAXED);
343}
344static __inline__ short __DEFAULT_FN_ATTRS
345_InterlockedExchangeAdd16_acq(short volatile *_Addend, short _Value) {
346 return __atomic_fetch_add(_Addend, _Value, __ATOMIC_ACQUIRE);
347}
348static __inline__ short __DEFAULT_FN_ATTRS
349_InterlockedExchangeAdd16_nf(short volatile *_Addend, short _Value) {
350 return __atomic_fetch_add(_Addend, _Value, __ATOMIC_RELAXED);
351}
352static __inline__ short __DEFAULT_FN_ATTRS
353_InterlockedExchangeAdd16_rel(short volatile *_Addend, short _Value) {
354 return __atomic_fetch_add(_Addend, _Value, __ATOMIC_RELEASE);
355}
356static __inline__ long __DEFAULT_FN_ATTRS
357_InterlockedExchangeAdd_acq(long volatile *_Addend, long _Value) {
358 return __atomic_fetch_add(_Addend, _Value, __ATOMIC_ACQUIRE);
359}
360static __inline__ long __DEFAULT_FN_ATTRS
361_InterlockedExchangeAdd_nf(long volatile *_Addend, long _Value) {
362 return __atomic_fetch_add(_Addend, _Value, __ATOMIC_RELAXED);
363}
364static __inline__ long __DEFAULT_FN_ATTRS
365_InterlockedExchangeAdd_rel(long volatile *_Addend, long _Value) {
366 return __atomic_fetch_add(_Addend, _Value, __ATOMIC_RELEASE);
367}
368static __inline__ __int64 __DEFAULT_FN_ATTRS
369_InterlockedExchangeAdd64_acq(__int64 volatile *_Addend, __int64 _Value) {
370 return __atomic_fetch_add(_Addend, _Value, __ATOMIC_ACQUIRE);
371}
372static __inline__ __int64 __DEFAULT_FN_ATTRS
373_InterlockedExchangeAdd64_nf(__int64 volatile *_Addend, __int64 _Value) {
374 return __atomic_fetch_add(_Addend, _Value, __ATOMIC_RELAXED);
375}
376static __inline__ __int64 __DEFAULT_FN_ATTRS
377_InterlockedExchangeAdd64_rel(__int64 volatile *_Addend, __int64 _Value) {
378 return __atomic_fetch_add(_Addend, _Value, __ATOMIC_RELEASE);
379}
329char _InterlockedExchangeAdd8_acq(char volatile *_Addend, char _Value);
330char _InterlockedExchangeAdd8_nf(char volatile *_Addend, char _Value);
331char _InterlockedExchangeAdd8_rel(char volatile *_Addend, char _Value);
332short _InterlockedExchangeAdd16_acq(short volatile *_Addend, short _Value);
333short _InterlockedExchangeAdd16_nf(short volatile *_Addend, short _Value);
334short _InterlockedExchangeAdd16_rel(short volatile *_Addend, short _Value);
335long _InterlockedExchangeAdd_acq(long volatile *_Addend, long _Value);
336long _InterlockedExchangeAdd_nf(long volatile *_Addend, long _Value);
337long _InterlockedExchangeAdd_rel(long volatile *_Addend, long _Value);
338__int64 _InterlockedExchangeAdd64_acq(__int64 volatile *_Addend, __int64 _Value);
339__int64 _InterlockedExchangeAdd64_nf(__int64 volatile *_Addend, __int64 _Value);
340__int64 _InterlockedExchangeAdd64_rel(__int64 volatile *_Addend, __int64 _Value);
380341#endif
381342/*----------------------------------------------------------------------------*\
382343|* Interlocked Increment
383344\*----------------------------------------------------------------------------*/
384345#if defined(__arm__) || defined(__aarch64__)
385static __inline__ short __DEFAULT_FN_ATTRS
386_InterlockedIncrement16_acq(short volatile *_Value) {
387 return __atomic_add_fetch(_Value, 1, __ATOMIC_ACQUIRE);
388}
389static __inline__ short __DEFAULT_FN_ATTRS
390_InterlockedIncrement16_nf(short volatile *_Value) {
391 return __atomic_add_fetch(_Value, 1, __ATOMIC_RELAXED);
392}
393static __inline__ short __DEFAULT_FN_ATTRS
394_InterlockedIncrement16_rel(short volatile *_Value) {
395 return __atomic_add_fetch(_Value, 1, __ATOMIC_RELEASE);
396}
397static __inline__ long __DEFAULT_FN_ATTRS
398_InterlockedIncrement_acq(long volatile *_Value) {
399 return __atomic_add_fetch(_Value, 1, __ATOMIC_ACQUIRE);
400}
401static __inline__ long __DEFAULT_FN_ATTRS
402_InterlockedIncrement_nf(long volatile *_Value) {
403 return __atomic_add_fetch(_Value, 1, __ATOMIC_RELAXED);
404}
405static __inline__ long __DEFAULT_FN_ATTRS
406_InterlockedIncrement_rel(long volatile *_Value) {
407 return __atomic_add_fetch(_Value, 1, __ATOMIC_RELEASE);
408}
409static __inline__ __int64 __DEFAULT_FN_ATTRS
410_InterlockedIncrement64_acq(__int64 volatile *_Value) {
411 return __atomic_add_fetch(_Value, 1, __ATOMIC_ACQUIRE);
412}
413static __inline__ __int64 __DEFAULT_FN_ATTRS
414_InterlockedIncrement64_nf(__int64 volatile *_Value) {
415 return __atomic_add_fetch(_Value, 1, __ATOMIC_RELAXED);
416}
417static __inline__ __int64 __DEFAULT_FN_ATTRS
418_InterlockedIncrement64_rel(__int64 volatile *_Value) {
419 return __atomic_add_fetch(_Value, 1, __ATOMIC_RELEASE);
420}
346short _InterlockedIncrement16_acq(short volatile *_Value);
347short _InterlockedIncrement16_nf(short volatile *_Value);
348short _InterlockedIncrement16_rel(short volatile *_Value);
349long _InterlockedIncrement_acq(long volatile *_Value);
350long _InterlockedIncrement_nf(long volatile *_Value);
351long _InterlockedIncrement_rel(long volatile *_Value);
352__int64 _InterlockedIncrement64_acq(__int64 volatile *_Value);
353__int64 _InterlockedIncrement64_nf(__int64 volatile *_Value);
354__int64 _InterlockedIncrement64_rel(__int64 volatile *_Value);
421355#endif
422356/*----------------------------------------------------------------------------*\
423357|* Interlocked Decrement
424358\*----------------------------------------------------------------------------*/
425359#if defined(__arm__) || defined(__aarch64__)
426static __inline__ short __DEFAULT_FN_ATTRS
427_InterlockedDecrement16_acq(short volatile *_Value) {
428 return __atomic_sub_fetch(_Value, 1, __ATOMIC_ACQUIRE);
429}
430static __inline__ short __DEFAULT_FN_ATTRS
431_InterlockedDecrement16_nf(short volatile *_Value) {
432 return __atomic_sub_fetch(_Value, 1, __ATOMIC_RELAXED);
433}
434static __inline__ short __DEFAULT_FN_ATTRS
435_InterlockedDecrement16_rel(short volatile *_Value) {
436 return __atomic_sub_fetch(_Value, 1, __ATOMIC_RELEASE);
437}
438static __inline__ long __DEFAULT_FN_ATTRS
439_InterlockedDecrement_acq(long volatile *_Value) {
440 return __atomic_sub_fetch(_Value, 1, __ATOMIC_ACQUIRE);
441}
442static __inline__ long __DEFAULT_FN_ATTRS
443_InterlockedDecrement_nf(long volatile *_Value) {
444 return __atomic_sub_fetch(_Value, 1, __ATOMIC_RELAXED);
445}
446static __inline__ long __DEFAULT_FN_ATTRS
447_InterlockedDecrement_rel(long volatile *_Value) {
448 return __atomic_sub_fetch(_Value, 1, __ATOMIC_RELEASE);
449}
450static __inline__ __int64 __DEFAULT_FN_ATTRS
451_InterlockedDecrement64_acq(__int64 volatile *_Value) {
452 return __atomic_sub_fetch(_Value, 1, __ATOMIC_ACQUIRE);
453}
454static __inline__ __int64 __DEFAULT_FN_ATTRS
455_InterlockedDecrement64_nf(__int64 volatile *_Value) {
456 return __atomic_sub_fetch(_Value, 1, __ATOMIC_RELAXED);
457}
458static __inline__ __int64 __DEFAULT_FN_ATTRS
459_InterlockedDecrement64_rel(__int64 volatile *_Value) {
460 return __atomic_sub_fetch(_Value, 1, __ATOMIC_RELEASE);
461}
360short _InterlockedDecrement16_acq(short volatile *_Value);
361short _InterlockedDecrement16_nf(short volatile *_Value);
362short _InterlockedDecrement16_rel(short volatile *_Value);
363long _InterlockedDecrement_acq(long volatile *_Value);
364long _InterlockedDecrement_nf(long volatile *_Value);
365long _InterlockedDecrement_rel(long volatile *_Value);
366__int64 _InterlockedDecrement64_acq(__int64 volatile *_Value);
367__int64 _InterlockedDecrement64_nf(__int64 volatile *_Value);
368__int64 _InterlockedDecrement64_rel(__int64 volatile *_Value);
462369#endif
463370/*----------------------------------------------------------------------------*\
464371|* Interlocked And
465372\*----------------------------------------------------------------------------*/
466373#if defined(__arm__) || defined(__aarch64__)
467static __inline__ char __DEFAULT_FN_ATTRS
468_InterlockedAnd8_acq(char volatile *_Value, char _Mask) {
469 return __atomic_fetch_and(_Value, _Mask, __ATOMIC_ACQUIRE);
470}
471static __inline__ char __DEFAULT_FN_ATTRS
472_InterlockedAnd8_nf(char volatile *_Value, char _Mask) {
473 return __atomic_fetch_and(_Value, _Mask, __ATOMIC_RELAXED);
474}
475static __inline__ char __DEFAULT_FN_ATTRS
476_InterlockedAnd8_rel(char volatile *_Value, char _Mask) {
477 return __atomic_fetch_and(_Value, _Mask, __ATOMIC_RELEASE);
478}
479static __inline__ short __DEFAULT_FN_ATTRS
480_InterlockedAnd16_acq(short volatile *_Value, short _Mask) {
481 return __atomic_fetch_and(_Value, _Mask, __ATOMIC_ACQUIRE);
482}
483static __inline__ short __DEFAULT_FN_ATTRS
484_InterlockedAnd16_nf(short volatile *_Value, short _Mask) {
485 return __atomic_fetch_and(_Value, _Mask, __ATOMIC_RELAXED);
486}
487static __inline__ short __DEFAULT_FN_ATTRS
488_InterlockedAnd16_rel(short volatile *_Value, short _Mask) {
489 return __atomic_fetch_and(_Value, _Mask, __ATOMIC_RELEASE);
490}
491static __inline__ long __DEFAULT_FN_ATTRS
492_InterlockedAnd_acq(long volatile *_Value, long _Mask) {
493 return __atomic_fetch_and(_Value, _Mask, __ATOMIC_ACQUIRE);
494}
495static __inline__ long __DEFAULT_FN_ATTRS
496_InterlockedAnd_nf(long volatile *_Value, long _Mask) {
497 return __atomic_fetch_and(_Value, _Mask, __ATOMIC_RELAXED);
498}
499static __inline__ long __DEFAULT_FN_ATTRS
500_InterlockedAnd_rel(long volatile *_Value, long _Mask) {
501 return __atomic_fetch_and(_Value, _Mask, __ATOMIC_RELEASE);
502}
503static __inline__ __int64 __DEFAULT_FN_ATTRS
504_InterlockedAnd64_acq(__int64 volatile *_Value, __int64 _Mask) {
505 return __atomic_fetch_and(_Value, _Mask, __ATOMIC_ACQUIRE);
506}
507static __inline__ __int64 __DEFAULT_FN_ATTRS
508_InterlockedAnd64_nf(__int64 volatile *_Value, __int64 _Mask) {
509 return __atomic_fetch_and(_Value, _Mask, __ATOMIC_RELAXED);
510}
511static __inline__ __int64 __DEFAULT_FN_ATTRS
512_InterlockedAnd64_rel(__int64 volatile *_Value, __int64 _Mask) {
513 return __atomic_fetch_and(_Value, _Mask, __ATOMIC_RELEASE);
514}
374char _InterlockedAnd8_acq(char volatile *_Value, char _Mask);
375char _InterlockedAnd8_nf(char volatile *_Value, char _Mask);
376char _InterlockedAnd8_rel(char volatile *_Value, char _Mask);
377short _InterlockedAnd16_acq(short volatile *_Value, short _Mask);
378short _InterlockedAnd16_nf(short volatile *_Value, short _Mask);
379short _InterlockedAnd16_rel(short volatile *_Value, short _Mask);
380long _InterlockedAnd_acq(long volatile *_Value, long _Mask);
381long _InterlockedAnd_nf(long volatile *_Value, long _Mask);
382long _InterlockedAnd_rel(long volatile *_Value, long _Mask);
383__int64 _InterlockedAnd64_acq(__int64 volatile *_Value, __int64 _Mask);
384__int64 _InterlockedAnd64_nf(__int64 volatile *_Value, __int64 _Mask);
385__int64 _InterlockedAnd64_rel(__int64 volatile *_Value, __int64 _Mask);
515386#endif
516387/*----------------------------------------------------------------------------*\
517388|* Bit Counting and Testing
......@@ -534,261 +405,81 @@ unsigned char _interlockedbittestandreset_rel(long volatile *_BitBase,
534405|* Interlocked Or
535406\*----------------------------------------------------------------------------*/
536407#if defined(__arm__) || defined(__aarch64__)
537static __inline__ char __DEFAULT_FN_ATTRS
538_InterlockedOr8_acq(char volatile *_Value, char _Mask) {
539 return __atomic_fetch_or(_Value, _Mask, __ATOMIC_ACQUIRE);
540}
541static __inline__ char __DEFAULT_FN_ATTRS
542_InterlockedOr8_nf(char volatile *_Value, char _Mask) {
543 return __atomic_fetch_or(_Value, _Mask, __ATOMIC_RELAXED);
544}
545static __inline__ char __DEFAULT_FN_ATTRS
546_InterlockedOr8_rel(char volatile *_Value, char _Mask) {
547 return __atomic_fetch_or(_Value, _Mask, __ATOMIC_RELEASE);
548}
549static __inline__ short __DEFAULT_FN_ATTRS
550_InterlockedOr16_acq(short volatile *_Value, short _Mask) {
551 return __atomic_fetch_or(_Value, _Mask, __ATOMIC_ACQUIRE);
552}
553static __inline__ short __DEFAULT_FN_ATTRS
554_InterlockedOr16_nf(short volatile *_Value, short _Mask) {
555 return __atomic_fetch_or(_Value, _Mask, __ATOMIC_RELAXED);
556}
557static __inline__ short __DEFAULT_FN_ATTRS
558_InterlockedOr16_rel(short volatile *_Value, short _Mask) {
559 return __atomic_fetch_or(_Value, _Mask, __ATOMIC_RELEASE);
560}
561static __inline__ long __DEFAULT_FN_ATTRS
562_InterlockedOr_acq(long volatile *_Value, long _Mask) {
563 return __atomic_fetch_or(_Value, _Mask, __ATOMIC_ACQUIRE);
564}
565static __inline__ long __DEFAULT_FN_ATTRS
566_InterlockedOr_nf(long volatile *_Value, long _Mask) {
567 return __atomic_fetch_or(_Value, _Mask, __ATOMIC_RELAXED);
568}
569static __inline__ long __DEFAULT_FN_ATTRS
570_InterlockedOr_rel(long volatile *_Value, long _Mask) {
571 return __atomic_fetch_or(_Value, _Mask, __ATOMIC_RELEASE);
572}
573static __inline__ __int64 __DEFAULT_FN_ATTRS
574_InterlockedOr64_acq(__int64 volatile *_Value, __int64 _Mask) {
575 return __atomic_fetch_or(_Value, _Mask, __ATOMIC_ACQUIRE);
576}
577static __inline__ __int64 __DEFAULT_FN_ATTRS
578_InterlockedOr64_nf(__int64 volatile *_Value, __int64 _Mask) {
579 return __atomic_fetch_or(_Value, _Mask, __ATOMIC_RELAXED);
580}
581static __inline__ __int64 __DEFAULT_FN_ATTRS
582_InterlockedOr64_rel(__int64 volatile *_Value, __int64 _Mask) {
583 return __atomic_fetch_or(_Value, _Mask, __ATOMIC_RELEASE);
584}
408char _InterlockedOr8_acq(char volatile *_Value, char _Mask);
409char _InterlockedOr8_nf(char volatile *_Value, char _Mask);
410char _InterlockedOr8_rel(char volatile *_Value, char _Mask);
411short _InterlockedOr16_acq(short volatile *_Value, short _Mask);
412short _InterlockedOr16_nf(short volatile *_Value, short _Mask);
413short _InterlockedOr16_rel(short volatile *_Value, short _Mask);
414long _InterlockedOr_acq(long volatile *_Value, long _Mask);
415long _InterlockedOr_nf(long volatile *_Value, long _Mask);
416long _InterlockedOr_rel(long volatile *_Value, long _Mask);
417__int64 _InterlockedOr64_acq(__int64 volatile *_Value, __int64 _Mask);
418__int64 _InterlockedOr64_nf(__int64 volatile *_Value, __int64 _Mask);
419__int64 _InterlockedOr64_rel(__int64 volatile *_Value, __int64 _Mask);
585420#endif
586421/*----------------------------------------------------------------------------*\
587422|* Interlocked Xor
588423\*----------------------------------------------------------------------------*/
589424#if defined(__arm__) || defined(__aarch64__)
590static __inline__ char __DEFAULT_FN_ATTRS
591_InterlockedXor8_acq(char volatile *_Value, char _Mask) {
592 return __atomic_fetch_xor(_Value, _Mask, __ATOMIC_ACQUIRE);
593}
594static __inline__ char __DEFAULT_FN_ATTRS
595_InterlockedXor8_nf(char volatile *_Value, char _Mask) {
596 return __atomic_fetch_xor(_Value, _Mask, __ATOMIC_RELAXED);
597}
598static __inline__ char __DEFAULT_FN_ATTRS
599_InterlockedXor8_rel(char volatile *_Value, char _Mask) {
600 return __atomic_fetch_xor(_Value, _Mask, __ATOMIC_RELEASE);
601}
602static __inline__ short __DEFAULT_FN_ATTRS
603_InterlockedXor16_acq(short volatile *_Value, short _Mask) {
604 return __atomic_fetch_xor(_Value, _Mask, __ATOMIC_ACQUIRE);
605}
606static __inline__ short __DEFAULT_FN_ATTRS
607_InterlockedXor16_nf(short volatile *_Value, short _Mask) {
608 return __atomic_fetch_xor(_Value, _Mask, __ATOMIC_RELAXED);
609}
610static __inline__ short __DEFAULT_FN_ATTRS
611_InterlockedXor16_rel(short volatile *_Value, short _Mask) {
612 return __atomic_fetch_xor(_Value, _Mask, __ATOMIC_RELEASE);
613}
614static __inline__ long __DEFAULT_FN_ATTRS
615_InterlockedXor_acq(long volatile *_Value, long _Mask) {
616 return __atomic_fetch_xor(_Value, _Mask, __ATOMIC_ACQUIRE);
617}
618static __inline__ long __DEFAULT_FN_ATTRS
619_InterlockedXor_nf(long volatile *_Value, long _Mask) {
620 return __atomic_fetch_xor(_Value, _Mask, __ATOMIC_RELAXED);
621}
622static __inline__ long __DEFAULT_FN_ATTRS
623_InterlockedXor_rel(long volatile *_Value, long _Mask) {
624 return __atomic_fetch_xor(_Value, _Mask, __ATOMIC_RELEASE);
625}
626static __inline__ __int64 __DEFAULT_FN_ATTRS
627_InterlockedXor64_acq(__int64 volatile *_Value, __int64 _Mask) {
628 return __atomic_fetch_xor(_Value, _Mask, __ATOMIC_ACQUIRE);
629}
630static __inline__ __int64 __DEFAULT_FN_ATTRS
631_InterlockedXor64_nf(__int64 volatile *_Value, __int64 _Mask) {
632 return __atomic_fetch_xor(_Value, _Mask, __ATOMIC_RELAXED);
633}
634static __inline__ __int64 __DEFAULT_FN_ATTRS
635_InterlockedXor64_rel(__int64 volatile *_Value, __int64 _Mask) {
636 return __atomic_fetch_xor(_Value, _Mask, __ATOMIC_RELEASE);
637}
425char _InterlockedXor8_acq(char volatile *_Value, char _Mask);
426char _InterlockedXor8_nf(char volatile *_Value, char _Mask);
427char _InterlockedXor8_rel(char volatile *_Value, char _Mask);
428short _InterlockedXor16_acq(short volatile *_Value, short _Mask);
429short _InterlockedXor16_nf(short volatile *_Value, short _Mask);
430short _InterlockedXor16_rel(short volatile *_Value, short _Mask);
431long _InterlockedXor_acq(long volatile *_Value, long _Mask);
432long _InterlockedXor_nf(long volatile *_Value, long _Mask);
433long _InterlockedXor_rel(long volatile *_Value, long _Mask);
434__int64 _InterlockedXor64_acq(__int64 volatile *_Value, __int64 _Mask);
435__int64 _InterlockedXor64_nf(__int64 volatile *_Value, __int64 _Mask);
436__int64 _InterlockedXor64_rel(__int64 volatile *_Value, __int64 _Mask);
638437#endif
639438/*----------------------------------------------------------------------------*\
640439|* Interlocked Exchange
641440\*----------------------------------------------------------------------------*/
642441#if defined(__arm__) || defined(__aarch64__)
643static __inline__ char __DEFAULT_FN_ATTRS
644_InterlockedExchange8_acq(char volatile *_Target, char _Value) {
645 __atomic_exchange(_Target, &_Value, &_Value, __ATOMIC_ACQUIRE);
646 return _Value;
647}
648static __inline__ char __DEFAULT_FN_ATTRS
649_InterlockedExchange8_nf(char volatile *_Target, char _Value) {
650 __atomic_exchange(_Target, &_Value, &_Value, __ATOMIC_RELAXED);
651 return _Value;
652}
653static __inline__ char __DEFAULT_FN_ATTRS
654_InterlockedExchange8_rel(char volatile *_Target, char _Value) {
655 __atomic_exchange(_Target, &_Value, &_Value, __ATOMIC_RELEASE);
656 return _Value;
657}
658static __inline__ short __DEFAULT_FN_ATTRS
659_InterlockedExchange16_acq(short volatile *_Target, short _Value) {
660 __atomic_exchange(_Target, &_Value, &_Value, __ATOMIC_ACQUIRE);
661 return _Value;
662}
663static __inline__ short __DEFAULT_FN_ATTRS
664_InterlockedExchange16_nf(short volatile *_Target, short _Value) {
665 __atomic_exchange(_Target, &_Value, &_Value, __ATOMIC_RELAXED);
666 return _Value;
667}
668static __inline__ short __DEFAULT_FN_ATTRS
669_InterlockedExchange16_rel(short volatile *_Target, short _Value) {
670 __atomic_exchange(_Target, &_Value, &_Value, __ATOMIC_RELEASE);
671 return _Value;
672}
673static __inline__ long __DEFAULT_FN_ATTRS
674_InterlockedExchange_acq(long volatile *_Target, long _Value) {
675 __atomic_exchange(_Target, &_Value, &_Value, __ATOMIC_ACQUIRE);
676 return _Value;
677}
678static __inline__ long __DEFAULT_FN_ATTRS
679_InterlockedExchange_nf(long volatile *_Target, long _Value) {
680 __atomic_exchange(_Target, &_Value, &_Value, __ATOMIC_RELAXED);
681 return _Value;
682}
683static __inline__ long __DEFAULT_FN_ATTRS
684_InterlockedExchange_rel(long volatile *_Target, long _Value) {
685 __atomic_exchange(_Target, &_Value, &_Value, __ATOMIC_RELEASE);
686 return _Value;
687}
688static __inline__ __int64 __DEFAULT_FN_ATTRS
689_InterlockedExchange64_acq(__int64 volatile *_Target, __int64 _Value) {
690 __atomic_exchange(_Target, &_Value, &_Value, __ATOMIC_ACQUIRE);
691 return _Value;
692}
693static __inline__ __int64 __DEFAULT_FN_ATTRS
694_InterlockedExchange64_nf(__int64 volatile *_Target, __int64 _Value) {
695 __atomic_exchange(_Target, &_Value, &_Value, __ATOMIC_RELAXED);
696 return _Value;
697}
698static __inline__ __int64 __DEFAULT_FN_ATTRS
699_InterlockedExchange64_rel(__int64 volatile *_Target, __int64 _Value) {
700 __atomic_exchange(_Target, &_Value, &_Value, __ATOMIC_RELEASE);
701 return _Value;
702}
442char _InterlockedExchange8_acq(char volatile *_Target, char _Value);
443char _InterlockedExchange8_nf(char volatile *_Target, char _Value);
444char _InterlockedExchange8_rel(char volatile *_Target, char _Value);
445short _InterlockedExchange16_acq(short volatile *_Target, short _Value);
446short _InterlockedExchange16_nf(short volatile *_Target, short _Value);
447short _InterlockedExchange16_rel(short volatile *_Target, short _Value);
448long _InterlockedExchange_acq(long volatile *_Target, long _Value);
449long _InterlockedExchange_nf(long volatile *_Target, long _Value);
450long _InterlockedExchange_rel(long volatile *_Target, long _Value);
451__int64 _InterlockedExchange64_acq(__int64 volatile *_Target, __int64 _Value);
452__int64 _InterlockedExchange64_nf(__int64 volatile *_Target, __int64 _Value);
453__int64 _InterlockedExchange64_rel(__int64 volatile *_Target, __int64 _Value);
703454#endif
704455/*----------------------------------------------------------------------------*\
705456|* Interlocked Compare Exchange
706457\*----------------------------------------------------------------------------*/
707458#if defined(__arm__) || defined(__aarch64__)
708static __inline__ char __DEFAULT_FN_ATTRS
709_InterlockedCompareExchange8_acq(char volatile *_Destination,
710 char _Exchange, char _Comparand) {
711 __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0,
712 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
713 return _Comparand;
714}
715static __inline__ char __DEFAULT_FN_ATTRS
716_InterlockedCompareExchange8_nf(char volatile *_Destination,
717 char _Exchange, char _Comparand) {
718 __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0,
719 __ATOMIC_SEQ_CST, __ATOMIC_RELAXED);
720 return _Comparand;
721}
722static __inline__ char __DEFAULT_FN_ATTRS
723_InterlockedCompareExchange8_rel(char volatile *_Destination,
724 char _Exchange, char _Comparand) {
725 __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0,
726 __ATOMIC_SEQ_CST, __ATOMIC_RELEASE);
727 return _Comparand;
728}
729static __inline__ short __DEFAULT_FN_ATTRS
730_InterlockedCompareExchange16_acq(short volatile *_Destination,
731 short _Exchange, short _Comparand) {
732 __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0,
733 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
734 return _Comparand;
735}
736static __inline__ short __DEFAULT_FN_ATTRS
737_InterlockedCompareExchange16_nf(short volatile *_Destination,
738 short _Exchange, short _Comparand) {
739 __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0,
740 __ATOMIC_SEQ_CST, __ATOMIC_RELAXED);
741 return _Comparand;
742}
743static __inline__ short __DEFAULT_FN_ATTRS
744_InterlockedCompareExchange16_rel(short volatile *_Destination,
745 short _Exchange, short _Comparand) {
746 __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0,
747 __ATOMIC_SEQ_CST, __ATOMIC_RELEASE);
748 return _Comparand;
749}
750static __inline__ long __DEFAULT_FN_ATTRS
751_InterlockedCompareExchange_acq(long volatile *_Destination,
752 long _Exchange, long _Comparand) {
753 __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0,
754 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
755 return _Comparand;
756}
757static __inline__ long __DEFAULT_FN_ATTRS
758_InterlockedCompareExchange_nf(long volatile *_Destination,
759 long _Exchange, long _Comparand) {
760 __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0,
761 __ATOMIC_SEQ_CST, __ATOMIC_RELAXED);
762 return _Comparand;
763}
764static __inline__ long __DEFAULT_FN_ATTRS
765_InterlockedCompareExchange_rel(long volatile *_Destination,
766 long _Exchange, long _Comparand) {
767 __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0,
768 __ATOMIC_SEQ_CST, __ATOMIC_RELEASE);
769 return _Comparand;
770}
771static __inline__ __int64 __DEFAULT_FN_ATTRS
772_InterlockedCompareExchange64_acq(__int64 volatile *_Destination,
773 __int64 _Exchange, __int64 _Comparand) {
774 __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0,
775 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
776 return _Comparand;
777}
778static __inline__ __int64 __DEFAULT_FN_ATTRS
779_InterlockedCompareExchange64_nf(__int64 volatile *_Destination,
780 __int64 _Exchange, __int64 _Comparand) {
781 __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0,
782 __ATOMIC_SEQ_CST, __ATOMIC_RELAXED);
783 return _Comparand;
784}
785static __inline__ __int64 __DEFAULT_FN_ATTRS
786_InterlockedCompareExchange64_rel(__int64 volatile *_Destination,
787 __int64 _Exchange, __int64 _Comparand) {
788 __atomic_compare_exchange(_Destination, &_Comparand, &_Exchange, 0,
789 __ATOMIC_SEQ_CST, __ATOMIC_RELEASE);
790 return _Comparand;
791}
459char _InterlockedCompareExchange8_acq(char volatile *_Destination,
460 char _Exchange, char _Comparand);
461char _InterlockedCompareExchange8_nf(char volatile *_Destination,
462 char _Exchange, char _Comparand);
463char _InterlockedCompareExchange8_rel(char volatile *_Destination,
464 char _Exchange, char _Comparand);
465short _InterlockedCompareExchange16_acq(short volatile *_Destination,
466 short _Exchange, short _Comparand);
467short _InterlockedCompareExchange16_nf(short volatile *_Destination,
468 short _Exchange, short _Comparand);
469short _InterlockedCompareExchange16_rel(short volatile *_Destination,
470 short _Exchange, short _Comparand);
471long _InterlockedCompareExchange_acq(long volatile *_Destination,
472 long _Exchange, long _Comparand);
473long _InterlockedCompareExchange_nf(long volatile *_Destination,
474 long _Exchange, long _Comparand);
475long _InterlockedCompareExchange_rel(long volatile *_Destination,
476 long _Exchange, long _Comparand);
477__int64 _InterlockedCompareExchange64_acq(__int64 volatile *_Destination,
478 __int64 _Exchange, __int64 _Comparand);
479__int64 _InterlockedCompareExchange64_nf(__int64 volatile *_Destination,
480 __int64 _Exchange, __int64 _Comparand);
481__int64 _InterlockedCompareExchange64_rel(__int64 volatile *_Destination,
482 __int64 _Exchange, __int64 _Comparand);
792483#endif
793484
794485/*----------------------------------------------------------------------------*\
......@@ -841,7 +532,7 @@ __stosq(unsigned __int64 *__dst, unsigned __int64 __x, size_t __n) {
841532static __inline__ void __DEFAULT_FN_ATTRS
842533__cpuid(int __info[4], int __level) {
843534 __asm__ ("cpuid" : "=a"(__info[0]), "=b" (__info[1]), "=c"(__info[2]), "=d"(__info[3])
844 : "a"(__level));
535 : "a"(__level), "c"(0));
845536}
846537static __inline__ void __DEFAULT_FN_ATTRS
847538__cpuidex(int __info[4], int __level, int __ecx) {
......@@ -858,12 +549,35 @@ static __inline__ void __DEFAULT_FN_ATTRS
858549__halt(void) {
859550 __asm__ volatile ("hlt");
860551}
552#endif
553
554#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__)
861555static __inline__ void __DEFAULT_FN_ATTRS
862556__nop(void) {
863557 __asm__ volatile ("nop");
864558}
865559#endif
866560
561/*----------------------------------------------------------------------------*\
562|* MS AArch64 specific
563\*----------------------------------------------------------------------------*/
564#if defined(__aarch64__)
565unsigned __int64 __getReg(int);
566long _InterlockedAdd(long volatile *Addend, long Value);
567int _ReadStatusReg(int);
568void _WriteStatusReg(int, int);
569
570static inline unsigned short _byteswap_ushort (unsigned short val) {
571 return __builtin_bswap16(val);
572}
573static inline unsigned long _byteswap_ulong (unsigned long val) {
574 return __builtin_bswap32(val);
575}
576static inline unsigned __int64 _byteswap_uint64 (unsigned __int64 val) {
577 return __builtin_bswap64(val);
578}
579#endif
580
867581/*----------------------------------------------------------------------------*\
868582|* Privileged intrinsics
869583\*----------------------------------------------------------------------------*/
c_headers/lzcntintrin.h+9-13
......@@ -31,6 +31,7 @@
3131/* Define the default attributes for the functions in this file. */
3232#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("lzcnt")))
3333
34#ifndef _MSC_VER
3435/// Counts the number of leading zero bits in the operand.
3536///
3637/// \headerfile <x86intrin.h>
......@@ -41,11 +42,8 @@
4142/// An unsigned 16-bit integer whose leading zeros are to be counted.
4243/// \returns An unsigned 16-bit integer containing the number of leading zero
4344/// bits in the operand.
44static __inline__ unsigned short __DEFAULT_FN_ATTRS
45__lzcnt16(unsigned short __X)
46{
47 return __X ? __builtin_clzs(__X) : 16;
48}
45#define __lzcnt16(X) __builtin_ia32_lzcnt_u16((unsigned short)(X))
46#endif // _MSC_VER
4947
5048/// Counts the number of leading zero bits in the operand.
5149///
......@@ -61,7 +59,7 @@ __lzcnt16(unsigned short __X)
6159static __inline__ unsigned int __DEFAULT_FN_ATTRS
6260__lzcnt32(unsigned int __X)
6361{
64 return __X ? __builtin_clz(__X) : 32;
62 return __builtin_ia32_lzcnt_u32(__X);
6563}
6664
6765/// Counts the number of leading zero bits in the operand.
......@@ -78,10 +76,11 @@ __lzcnt32(unsigned int __X)
7876static __inline__ unsigned int __DEFAULT_FN_ATTRS
7977_lzcnt_u32(unsigned int __X)
8078{
81 return __X ? __builtin_clz(__X) : 32;
79 return __builtin_ia32_lzcnt_u32(__X);
8280}
8381
8482#ifdef __x86_64__
83#ifndef _MSC_VER
8584/// Counts the number of leading zero bits in the operand.
8685///
8786/// \headerfile <x86intrin.h>
......@@ -93,11 +92,8 @@ _lzcnt_u32(unsigned int __X)
9392/// \returns An unsigned 64-bit integer containing the number of leading zero
9493/// bits in the operand.
9594/// \see _lzcnt_u64
96static __inline__ unsigned long long __DEFAULT_FN_ATTRS
97__lzcnt64(unsigned long long __X)
98{
99 return __X ? __builtin_clzll(__X) : 64;
100}
95#define __lzcnt64(X) __builtin_ia32_lzcnt_u64((unsigned long long)(X))
96#endif // _MSC_VER
10197
10298/// Counts the number of leading zero bits in the operand.
10399///
......@@ -113,7 +109,7 @@ __lzcnt64(unsigned long long __X)
113109static __inline__ unsigned long long __DEFAULT_FN_ATTRS
114110_lzcnt_u64(unsigned long long __X)
115111{
116 return __X ? __builtin_clzll(__X) : 64;
112 return __builtin_ia32_lzcnt_u64(__X);
117113}
118114#endif
119115
c_headers/opencl-c.h+654-3
......@@ -22,6 +22,14 @@
2222#endif //cl_khr_3d_image_writes
2323#endif //__OPENCL_C_VERSION__ < CL_VERSION_2_0
2424
25#if __OPENCL_C_VERSION__ >= CL_VERSION_1_2
26#ifndef cl_intel_planar_yuv
27#define cl_intel_planar_yuv
28#endif // cl_intel_planar_yuv
29#pragma OPENCL EXTENSION cl_intel_planar_yuv : begin
30#pragma OPENCL EXTENSION cl_intel_planar_yuv : end
31#endif // __OPENCL_C_VERSION__ >= CL_VERSION_1_2
32
2533#define __ovld __attribute__((overloadable))
2634#define __conv __attribute__((convergent))
2735
......@@ -14602,6 +14610,7 @@ int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, f
1460214610uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, int4 coord);
1460314611uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord);
1460414612
14613#if __OPENCL_C_VERSION__ >= CL_VERSION_1_2
1460514614float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
1460614615float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
1460714616
......@@ -14609,6 +14618,7 @@ int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_
1460914618int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
1461014619uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
1461114620uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
14621#endif // __OPENCL_C_VERSION__ >= CL_VERSION_1_2
1461214622
1461314623float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, int coord);
1461414624float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord);
......@@ -14618,6 +14628,7 @@ int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, f
1461814628uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, int coord);
1461914629uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord);
1462014630
14631#if __OPENCL_C_VERSION__ >= CL_VERSION_1_2
1462114632float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
1462214633float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
1462314634
......@@ -14625,6 +14636,7 @@ int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_
1462514636int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
1462614637uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
1462714638uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
14639#endif // __OPENCL_C_VERSION__ >= CL_VERSION_1_2
1462814640
1462914641#ifdef cl_khr_depth_images
1463014642float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord);
......@@ -14727,6 +14739,8 @@ uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler,
1472714739#endif //cl_khr_mipmap_image
1472814740#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
1472914741
14742#if __OPENCL_C_VERSION__ >= CL_VERSION_1_2
14743
1473014744/**
1473114745* Sampler-less Image Access
1473214746*/
......@@ -14760,24 +14774,31 @@ float4 __purefn __ovld read_imagef(read_only image3d_t image, int4 coord);
1476014774int4 __purefn __ovld read_imagei(read_only image3d_t image, int4 coord);
1476114775uint4 __purefn __ovld read_imageui(read_only image3d_t image, int4 coord);
1476214776
14777#endif // __OPENCL_C_VERSION__ >= CL_VERSION_1_2
14778
1476314779// Image read functions returning half4 type
1476414780#ifdef cl_khr_fp16
1476514781half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, int coord);
1476614782half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, float coord);
14767half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, int2 coord);
14768half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, float2 coord);
1476914783half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, int2 coord);
1477014784half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, float2 coord);
1477114785half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, int4 coord);
1477214786half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, float4 coord);
14787#if __OPENCL_C_VERSION__ >= CL_VERSION_1_2
14788half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, int2 coord);
14789half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, float2 coord);
1477314790half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, int4 coord);
1477414791half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, float4 coord);
14792/**
14793 * Sampler-less Image Access
14794 */
1477514795half4 __purefn __ovld read_imageh(read_only image1d_t image, int coord);
1477614796half4 __purefn __ovld read_imageh(read_only image2d_t image, int2 coord);
1477714797half4 __purefn __ovld read_imageh(read_only image3d_t image, int4 coord);
1477814798half4 __purefn __ovld read_imageh(read_only image1d_array_t image, int2 coord);
1477914799half4 __purefn __ovld read_imageh(read_only image2d_array_t image, int4 coord);
1478014800half4 __purefn __ovld read_imageh(read_only image1d_buffer_t image, int coord);
14801#endif // __OPENCL_C_VERSION__ >= CL_VERSION_1_2
1478114802#endif //cl_khr_fp16
1478214803
1478314804// Image read functions for read_write images
......@@ -15707,7 +15728,6 @@ double __ovld __conv work_group_scan_inclusive_max(double x);
1570715728
1570815729// OpenCL v2.0 s6.13.16 - Pipe Functions
1570915730#if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
15710#define PIPE_RESERVE_ID_VALID_BIT (1U << 30)
1571115731#define CLK_NULL_RESERVE_ID (__builtin_astype(((void*)(__SIZE_MAX__)), reserve_id_t))
1571215732bool __ovld is_valid_reserve_id(reserve_id_t reserve_id);
1571315733#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0
......@@ -16193,6 +16213,637 @@ void __ovld __conv intel_sub_group_block_write_us4( __global ushort* p, u
1619316213void __ovld __conv intel_sub_group_block_write_us8( __global ushort* p, ushort8 data );
1619416214#endif // cl_intel_subgroups_short
1619516215
16216#ifdef cl_intel_device_side_avc_motion_estimation
16217#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : begin
16218
16219#define CLK_AVC_ME_MAJOR_16x16_INTEL 0x0
16220#define CLK_AVC_ME_MAJOR_16x8_INTEL 0x1
16221#define CLK_AVC_ME_MAJOR_8x16_INTEL 0x2
16222#define CLK_AVC_ME_MAJOR_8x8_INTEL 0x3
16223
16224#define CLK_AVC_ME_MINOR_8x8_INTEL 0x0
16225#define CLK_AVC_ME_MINOR_8x4_INTEL 0x1
16226#define CLK_AVC_ME_MINOR_4x8_INTEL 0x2
16227#define CLK_AVC_ME_MINOR_4x4_INTEL 0x3
16228
16229#define CLK_AVC_ME_MAJOR_FORWARD_INTEL 0x0
16230#define CLK_AVC_ME_MAJOR_BACKWARD_INTEL 0x1
16231#define CLK_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2
16232
16233#define CLK_AVC_ME_PARTITION_MASK_ALL_INTEL 0x0
16234#define CLK_AVC_ME_PARTITION_MASK_16x16_INTEL 0x7E
16235#define CLK_AVC_ME_PARTITION_MASK_16x8_INTEL 0x7D
16236#define CLK_AVC_ME_PARTITION_MASK_8x16_INTEL 0x7B
16237#define CLK_AVC_ME_PARTITION_MASK_8x8_INTEL 0x77
16238#define CLK_AVC_ME_PARTITION_MASK_8x4_INTEL 0x6F
16239#define CLK_AVC_ME_PARTITION_MASK_4x8_INTEL 0x5F
16240#define CLK_AVC_ME_PARTITION_MASK_4x4_INTEL 0x3F
16241
16242#define CLK_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0
16243#define CLK_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1
16244#define CLK_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2
16245
16246#define CLK_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL 0x0
16247#define CLK_AVC_ME_SEARCH_WINDOW_SMALL_INTEL 0x1
16248#define CLK_AVC_ME_SEARCH_WINDOW_TINY_INTEL 0x2
16249#define CLK_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL 0x3
16250#define CLK_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL 0x4
16251#define CLK_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL 0x5
16252#define CLK_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL 0x6
16253#define CLK_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL 0x7
16254#define CLK_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL 0x8
16255
16256#define CLK_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0
16257#define CLK_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2
16258
16259#define CLK_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0
16260#define CLK_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1
16261#define CLK_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL 0x3
16262
16263#define CLK_AVC_ME_COST_PRECISION_QPEL_INTEL 0x0
16264#define CLK_AVC_ME_COST_PRECISION_HPEL_INTEL 0x1
16265#define CLK_AVC_ME_COST_PRECISION_PEL_INTEL 0x2
16266#define CLK_AVC_ME_COST_PRECISION_DPEL_INTEL 0x3
16267
16268#define CLK_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL 0x10
16269#define CLK_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL 0x15
16270#define CLK_AVC_ME_BIDIR_WEIGHT_HALF_INTEL 0x20
16271#define CLK_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 0x2B
16272#define CLK_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 0x30
16273
16274#define CLK_AVC_ME_BORDER_REACHED_LEFT_INTEL 0x0
16275#define CLK_AVC_ME_BORDER_REACHED_RIGHT_INTEL 0x2
16276#define CLK_AVC_ME_BORDER_REACHED_TOP_INTEL 0x4
16277#define CLK_AVC_ME_BORDER_REACHED_BOTTOM_INTEL 0x8
16278
16279#define CLK_AVC_ME_INTRA_16x16_INTEL 0x0
16280#define CLK_AVC_ME_INTRA_8x8_INTEL 0x1
16281#define CLK_AVC_ME_INTRA_4x4_INTEL 0x2
16282
16283#define CLK_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL 0x0
16284#define CLK_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL 0x4000
16285
16286#define CLK_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL (0x1 << 24)
16287#define CLK_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL (0x2 << 24)
16288#define CLK_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL (0x3 << 24)
16289#define CLK_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL (0x55 << 24)
16290#define CLK_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL (0xAA << 24)
16291#define CLK_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL (0xFF << 24)
16292#define CLK_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL (0x1 << 24)
16293#define CLK_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL (0x2 << 24)
16294#define CLK_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL (0x1 << 26)
16295#define CLK_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL (0x2 << 26)
16296#define CLK_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL (0x1 << 28)
16297#define CLK_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL (0x2 << 28)
16298#define CLK_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL (0x1 << 30)
16299#define CLK_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL (0x2 << 30)
16300
16301#define CLK_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00
16302#define CLK_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80
16303
16304#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_ALL_INTEL 0x0
16305#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6
16306#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5
16307#define CLK_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3
16308
16309#define CLK_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60
16310#define CLK_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10
16311#define CLK_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8
16312#define CLK_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4
16313
16314#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0
16315#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1
16316#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2
16317#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3
16318#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4
16319#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4
16320#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5
16321#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6
16322#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7
16323#define CLK_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8
16324#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0
16325#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1
16326#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2
16327#define CLK_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3
16328
16329#define CLK_AVC_ME_FRAME_FORWARD_INTEL 0x1
16330#define CLK_AVC_ME_FRAME_BACKWARD_INTEL 0x2
16331#define CLK_AVC_ME_FRAME_DUAL_INTEL 0x3
16332
16333#define CLK_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0
16334#define CLK_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1
16335
16336#define CLK_AVC_ME_INITIALIZE_INTEL 0x0
16337
16338#define CLK_AVC_IME_PAYLOAD_INITIALIZE_INTEL 0x0
16339#define CLK_AVC_REF_PAYLOAD_INITIALIZE_INTEL 0x0
16340#define CLK_AVC_SIC_PAYLOAD_INITIALIZE_INTEL 0x0
16341
16342#define CLK_AVC_IME_RESULT_INITIALIZE_INTEL 0x0
16343#define CLK_AVC_REF_RESULT_INITIALIZE_INTEL 0x0
16344#define CLK_AVC_SIC_RESULT_INITIALIZE_INTEL 0x0
16345
16346#define CLK_AVC_IME_RESULT_SINGLE_REFERENCE_STREAMOUT_INITIALIZE_INTEL 0x0
16347#define CLK_AVC_IME_RESULT_SINGLE_REFERENCE_STREAMIN_INITIALIZE_INTEL 0x0
16348#define CLK_AVC_IME_RESULT_DUAL_REFERENCE_STREAMOUT_INITIALIZE_INTEL 0x0
16349#define CLK_AVC_IME_RESULT_DUAL_REFERENCE_STREAMIN_INITIALIZE_INTEL 0x0
16350
16351// MCE built-in functions
16352uchar __ovld
16353intel_sub_group_avc_mce_get_default_inter_base_multi_reference_penalty(
16354 uchar slice_type, uchar qp);
16355ulong __ovld intel_sub_group_avc_mce_get_default_inter_shape_penalty(
16356 uchar slice_type, uchar qp);
16357uchar __ovld intel_sub_group_avc_mce_get_default_inter_direction_penalty(
16358 uchar slice_type, uchar qp);
16359uint __ovld intel_sub_group_avc_mce_get_default_intra_luma_shape_penalty(
16360 uchar slice_type, uchar qp);
16361uint2 __ovld
16362intel_sub_group_avc_mce_get_default_inter_motion_vector_cost_table(
16363 uchar slice_type, uchar qp);
16364uchar __ovld intel_sub_group_avc_mce_get_default_intra_luma_mode_penalty(
16365 uchar slice_type, uchar qp);
16366
16367uint2 __ovld intel_sub_group_avc_mce_get_default_high_penalty_cost_table();
16368uint2 __ovld intel_sub_group_avc_mce_get_default_medium_penalty_cost_table();
16369uint2 __ovld intel_sub_group_avc_mce_get_default_low_penalty_cost_table();
16370uint __ovld intel_sub_group_avc_mce_get_default_non_dc_luma_intra_penalty();
16371uchar __ovld
16372intel_sub_group_avc_mce_get_default_intra_chroma_mode_base_penalty();
16373
16374intel_sub_group_avc_mce_payload_t __ovld
16375intel_sub_group_avc_mce_set_inter_base_multi_reference_penalty(
16376 uchar reference_base_penalty, intel_sub_group_avc_mce_payload_t payload);
16377intel_sub_group_avc_mce_payload_t __ovld
16378intel_sub_group_avc_mce_set_inter_shape_penalty(
16379 ulong packed_shape_penalty, intel_sub_group_avc_mce_payload_t payload);
16380intel_sub_group_avc_mce_payload_t __ovld
16381intel_sub_group_avc_mce_set_inter_direction_penalty(
16382 uchar direction_cost, intel_sub_group_avc_mce_payload_t payload);
16383intel_sub_group_avc_mce_payload_t __ovld
16384intel_sub_group_avc_mce_set_motion_vector_cost_function(
16385 ulong packed_cost_center_delta, uint2 packed_cost_table,
16386 uchar cost_precision, intel_sub_group_avc_mce_payload_t payload);
16387intel_sub_group_avc_mce_payload_t __ovld
16388intel_sub_group_avc_mce_set_ac_only_haar(
16389 intel_sub_group_avc_mce_payload_t payload);
16390intel_sub_group_avc_mce_payload_t __ovld
16391intel_sub_group_avc_mce_set_source_interlaced_field_polarity(
16392 uchar src_field_polarity, intel_sub_group_avc_mce_payload_t payload);
16393intel_sub_group_avc_mce_payload_t __ovld
16394intel_sub_group_avc_mce_set_single_reference_interlaced_field_polarity(
16395 uchar ref_field_polarity, intel_sub_group_avc_mce_payload_t payload);
16396intel_sub_group_avc_mce_payload_t __ovld
16397intel_sub_group_avc_mce_set_dual_reference_interlaced_field_polarities(
16398 uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
16399 intel_sub_group_avc_mce_payload_t payload);
16400
16401ulong __ovld intel_sub_group_avc_mce_get_motion_vectors(
16402 intel_sub_group_avc_mce_result_t result);
16403ushort __ovld intel_sub_group_avc_mce_get_inter_distortions(
16404 intel_sub_group_avc_mce_result_t result);
16405ushort __ovld intel_sub_group_avc_mce_get_best_inter_distortion(
16406 intel_sub_group_avc_mce_result_t result);
16407uchar __ovld intel_sub_group_avc_mce_get_inter_major_shape(
16408 intel_sub_group_avc_mce_result_t result);
16409uchar __ovld intel_sub_group_avc_mce_get_inter_minor_shapes(
16410 intel_sub_group_avc_mce_result_t result);
16411uchar __ovld intel_sub_group_avc_mce_get_inter_directions(
16412 intel_sub_group_avc_mce_result_t result);
16413uchar __ovld intel_sub_group_avc_mce_get_inter_motion_vector_count(
16414 intel_sub_group_avc_mce_result_t result);
16415uint __ovld intel_sub_group_avc_mce_get_inter_reference_ids(
16416 intel_sub_group_avc_mce_result_t result);
16417uchar __ovld
16418intel_sub_group_avc_mce_get_inter_reference_interlaced_field_polarities(
16419 uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
16420 intel_sub_group_avc_mce_result_t result);
16421
16422// IME built-in functions
16423intel_sub_group_avc_ime_payload_t __ovld
16424intel_sub_group_avc_ime_initialize(
16425 ushort2 src_coord, uchar partition_mask, uchar sad_adjustment);
16426intel_sub_group_avc_ime_payload_t __ovld
16427intel_sub_group_avc_ime_set_single_reference(
16428 short2 ref_offset, uchar search_window_config,
16429 intel_sub_group_avc_ime_payload_t payload);
16430intel_sub_group_avc_ime_payload_t __ovld
16431intel_sub_group_avc_ime_set_dual_reference(
16432 short2 fwd_ref_offset, short2 bwd_ref_offset, uchar search_window_config,
16433 intel_sub_group_avc_ime_payload_t payload);
16434intel_sub_group_avc_ime_payload_t __ovld
16435intel_sub_group_avc_ime_set_max_motion_vector_count(
16436 uchar max_motion_vector_count, intel_sub_group_avc_ime_payload_t payload);
16437intel_sub_group_avc_ime_payload_t __ovld
16438intel_sub_group_avc_ime_set_unidirectional_mix_disable(
16439 intel_sub_group_avc_ime_payload_t payload);
16440intel_sub_group_avc_ime_payload_t __ovld
16441intel_sub_group_avc_ime_set_early_search_termination_threshold(
16442 uchar threshold, intel_sub_group_avc_ime_payload_t payload);
16443intel_sub_group_avc_ime_payload_t __ovld
16444intel_sub_group_avc_ime_set_weighted_sad(
16445 uint packed_sad_weights, intel_sub_group_avc_ime_payload_t payload);
16446
16447__attribute__((deprecated("If you use the latest Intel driver, please use "
16448 "intel_sub_group_avc_ime_ref_window_size instead",
16449 "intel_sub_group_avc_ime_ref_window_size")))
16450ushort2 __ovld
16451intel_sub_group_ime_ref_window_size(uchar search_window_config, char dual_ref);
16452ushort2 __ovld intel_sub_group_avc_ime_ref_window_size(
16453 uchar search_window_config, char dual_ref);
16454short2 __ovld intel_sub_group_avc_ime_adjust_ref_offset(
16455 short2 ref_offset, ushort2 src_coord, ushort2 ref_window_size,
16456 ushort2 image_size);
16457
16458intel_sub_group_avc_ime_result_t __ovld
16459intel_sub_group_avc_ime_evaluate_with_single_reference(
16460 read_only image2d_t src_image, read_only image2d_t ref_image,
16461 sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload);
16462intel_sub_group_avc_ime_result_t __ovld
16463intel_sub_group_avc_ime_evaluate_with_dual_reference(
16464 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16465 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16466 intel_sub_group_avc_ime_payload_t payload);
16467intel_sub_group_avc_ime_result_single_reference_streamout_t __ovld
16468intel_sub_group_avc_ime_evaluate_with_single_reference_streamout(
16469 read_only image2d_t src_image, read_only image2d_t ref_image,
16470 sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload);
16471intel_sub_group_avc_ime_result_dual_reference_streamout_t __ovld
16472intel_sub_group_avc_ime_evaluate_with_dual_reference_streamout(
16473 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16474 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16475 intel_sub_group_avc_ime_payload_t payload);
16476intel_sub_group_avc_ime_result_t __ovld
16477intel_sub_group_avc_ime_evaluate_with_single_reference_streamin(
16478 read_only image2d_t src_image, read_only image2d_t ref_image,
16479 sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload,
16480 intel_sub_group_avc_ime_single_reference_streamin_t streamin_components);
16481intel_sub_group_avc_ime_result_t __ovld
16482intel_sub_group_avc_ime_evaluate_with_dual_reference_streamin(
16483 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16484 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16485 intel_sub_group_avc_ime_payload_t payload,
16486 intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components);
16487intel_sub_group_avc_ime_result_single_reference_streamout_t __ovld
16488intel_sub_group_avc_ime_evaluate_with_single_reference_streaminout(
16489 read_only image2d_t src_image, read_only image2d_t ref_image,
16490 sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload,
16491 intel_sub_group_avc_ime_single_reference_streamin_t streamin_components);
16492intel_sub_group_avc_ime_result_dual_reference_streamout_t __ovld
16493intel_sub_group_avc_ime_evaluate_with_dual_reference_streaminout(
16494 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16495 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16496 intel_sub_group_avc_ime_payload_t payload,
16497 intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components);
16498
16499intel_sub_group_avc_ime_single_reference_streamin_t __ovld
16500intel_sub_group_avc_ime_get_single_reference_streamin(
16501 intel_sub_group_avc_ime_result_single_reference_streamout_t result);
16502intel_sub_group_avc_ime_dual_reference_streamin_t __ovld
16503intel_sub_group_avc_ime_get_dual_reference_streamin(
16504 intel_sub_group_avc_ime_result_dual_reference_streamout_t result);
16505intel_sub_group_avc_ime_result_t __ovld
16506intel_sub_group_avc_ime_strip_single_reference_streamout(
16507 intel_sub_group_avc_ime_result_single_reference_streamout_t result);
16508intel_sub_group_avc_ime_result_t __ovld
16509intel_sub_group_avc_ime_strip_dual_reference_streamout(
16510 intel_sub_group_avc_ime_result_dual_reference_streamout_t result);
16511
16512uint __ovld intel_sub_group_avc_ime_get_streamout_major_shape_motion_vectors(
16513 intel_sub_group_avc_ime_result_single_reference_streamout_t result,
16514 uchar major_shape);
16515ushort __ovld intel_sub_group_avc_ime_get_streamout_major_shape_distortions(
16516 intel_sub_group_avc_ime_result_single_reference_streamout_t result,
16517 uchar major_shape);
16518uchar __ovld intel_sub_group_avc_ime_get_streamout_major_shape_reference_ids(
16519 intel_sub_group_avc_ime_result_single_reference_streamout_t result,
16520 uchar major_shape);
16521uint __ovld intel_sub_group_avc_ime_get_streamout_major_shape_motion_vectors(
16522 intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
16523 uchar major_shape, uchar direction);
16524ushort __ovld intel_sub_group_avc_ime_get_streamout_major_shape_distortions(
16525 intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
16526 uchar major_shape, uchar direction);
16527uchar __ovld intel_sub_group_avc_ime_get_streamout_major_shape_reference_ids(
16528 intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
16529 uchar major_shape, uchar direction);
16530
16531uchar __ovld intel_sub_group_avc_ime_get_border_reached(
16532 uchar image_select, intel_sub_group_avc_ime_result_t result);
16533uchar __ovld intel_sub_group_avc_ime_get_truncated_search_indication(
16534 intel_sub_group_avc_ime_result_t result);
16535uchar __ovld
16536intel_sub_group_avc_ime_get_unidirectional_early_search_termination(
16537 intel_sub_group_avc_ime_result_t result);
16538uint __ovld intel_sub_group_avc_ime_get_weighting_pattern_minimum_motion_vector(
16539 intel_sub_group_avc_ime_result_t result);
16540ushort __ovld intel_sub_group_avc_ime_get_weighting_pattern_minimum_distortion(
16541 intel_sub_group_avc_ime_result_t result);
16542
16543// REF built-in functions
16544intel_sub_group_avc_ref_payload_t __ovld
16545intel_sub_group_avc_fme_initialize(
16546 ushort2 src_coord, ulong motion_vectors, uchar major_shapes,
16547 uchar minor_shapes, uchar directions, uchar pixel_resolution,
16548 uchar sad_adjustment);
16549intel_sub_group_avc_ref_payload_t __ovld
16550intel_sub_group_avc_bme_initialize(
16551 ushort2 src_coord, ulong motion_vectors, uchar major_shapes,
16552 uchar minor_shapes, uchar directions, uchar pixel_resolution,
16553 uchar bidirectional_weight, uchar sad_adjustment);
16554
16555intel_sub_group_avc_ref_payload_t __ovld
16556intel_sub_group_avc_ref_set_bidirectional_mix_disable(
16557 intel_sub_group_avc_ref_payload_t payload);
16558intel_sub_group_avc_ref_payload_t __ovld
16559intel_sub_group_avc_ref_set_bilinear_filter_enable(
16560 intel_sub_group_avc_ref_payload_t payload);
16561
16562intel_sub_group_avc_ref_result_t __ovld
16563intel_sub_group_avc_ref_evaluate_with_single_reference(
16564 read_only image2d_t src_image, read_only image2d_t ref_image,
16565 sampler_t vme_media_sampler, intel_sub_group_avc_ref_payload_t payload);
16566intel_sub_group_avc_ref_result_t __ovld
16567intel_sub_group_avc_ref_evaluate_with_dual_reference(
16568 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16569 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16570 intel_sub_group_avc_ref_payload_t payload);
16571intel_sub_group_avc_ref_result_t __ovld
16572intel_sub_group_avc_ref_evaluate_with_multi_reference(
16573 read_only image2d_t src_image, uint packed_reference_ids,
16574 sampler_t vme_media_sampler, intel_sub_group_avc_ref_payload_t payload);
16575intel_sub_group_avc_ref_result_t __ovld
16576intel_sub_group_avc_ref_evaluate_with_multi_reference(
16577 read_only image2d_t src_image, uint packed_reference_ids,
16578 uchar packed_reference_field_polarities, sampler_t vme_media_sampler,
16579 intel_sub_group_avc_ref_payload_t payload);
16580
16581// SIC built-in functions
16582intel_sub_group_avc_sic_payload_t __ovld
16583intel_sub_group_avc_sic_initialize(
16584 ushort2 src_coord);
16585intel_sub_group_avc_sic_payload_t __ovld
16586intel_sub_group_avc_sic_configure_skc(
16587 uint skip_block_partition_type, uint skip_motion_vector_mask,
16588 ulong motion_vectors, uchar bidirectional_weight, uchar skip_sad_adjustment,
16589 intel_sub_group_avc_sic_payload_t payload);
16590intel_sub_group_avc_sic_payload_t __ovld
16591intel_sub_group_avc_sic_configure_ipe(
16592 uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty,
16593 uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel,
16594 uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels,
16595 uchar intra_sad_adjustment, intel_sub_group_avc_sic_payload_t payload);
16596intel_sub_group_avc_sic_payload_t __ovld
16597intel_sub_group_avc_sic_configure_ipe(
16598 uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty,
16599 uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel,
16600 uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels,
16601 ushort left_edge_chroma_pixels, ushort upper_left_corner_chroma_pixel,
16602 ushort upper_edge_chroma_pixels, uchar intra_sad_adjustment,
16603 intel_sub_group_avc_sic_payload_t payload);
16604uint __ovld
16605intel_sub_group_avc_sic_get_motion_vector_mask(
16606 uint skip_block_partition_type, uchar direction);
16607
16608intel_sub_group_avc_sic_payload_t __ovld
16609intel_sub_group_avc_sic_set_intra_luma_shape_penalty(
16610 uint packed_shape_cost, intel_sub_group_avc_sic_payload_t payload);
16611intel_sub_group_avc_sic_payload_t __ovld
16612intel_sub_group_avc_sic_set_intra_luma_mode_cost_function(
16613 uchar luma_mode_penalty, uint luma_packed_neighbor_modes,
16614 uint luma_packed_non_dc_penalty, intel_sub_group_avc_sic_payload_t payload);
16615intel_sub_group_avc_sic_payload_t __ovld
16616intel_sub_group_avc_sic_set_intra_chroma_mode_cost_function(
16617 uchar chroma_mode_penalty, intel_sub_group_avc_sic_payload_t payload);
16618
16619intel_sub_group_avc_sic_payload_t __ovld
16620intel_sub_group_avc_sic_set_skc_bilinear_filter_enable(
16621 intel_sub_group_avc_sic_payload_t payload);
16622intel_sub_group_avc_sic_payload_t __ovld
16623intel_sub_group_avc_sic_set_skc_forward_transform_enable(
16624 ulong packed_sad_coefficients, intel_sub_group_avc_sic_payload_t payload);
16625intel_sub_group_avc_sic_payload_t __ovld
16626intel_sub_group_avc_sic_set_block_based_raw_skip_sad(
16627 uchar block_based_skip_type,
16628 intel_sub_group_avc_sic_payload_t payload);
16629
16630intel_sub_group_avc_sic_result_t __ovld
16631intel_sub_group_avc_sic_evaluate_ipe(
16632 read_only image2d_t src_image, sampler_t vme_media_sampler,
16633 intel_sub_group_avc_sic_payload_t payload);
16634intel_sub_group_avc_sic_result_t __ovld
16635intel_sub_group_avc_sic_evaluate_with_single_reference(
16636 read_only image2d_t src_image, read_only image2d_t ref_image,
16637 sampler_t vme_media_sampler, intel_sub_group_avc_sic_payload_t payload);
16638intel_sub_group_avc_sic_result_t __ovld
16639intel_sub_group_avc_sic_evaluate_with_dual_reference(
16640 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16641 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16642 intel_sub_group_avc_sic_payload_t payload);
16643intel_sub_group_avc_sic_result_t __ovld
16644intel_sub_group_avc_sic_evaluate_with_multi_reference(
16645 read_only image2d_t src_image, uint packed_reference_ids,
16646 sampler_t vme_media_sampler, intel_sub_group_avc_sic_payload_t payload);
16647intel_sub_group_avc_sic_result_t __ovld
16648intel_sub_group_avc_sic_evaluate_with_multi_reference(
16649 read_only image2d_t src_image, uint packed_reference_ids,
16650 uchar packed_reference_field_polarities, sampler_t vme_media_sampler,
16651 intel_sub_group_avc_sic_payload_t payload);
16652
16653uchar __ovld intel_sub_group_avc_sic_get_ipe_luma_shape(
16654 intel_sub_group_avc_sic_result_t result);
16655ushort __ovld intel_sub_group_avc_sic_get_best_ipe_luma_distortion(
16656 intel_sub_group_avc_sic_result_t result);
16657ushort __ovld intel_sub_group_avc_sic_get_best_ipe_chroma_distortion(
16658 intel_sub_group_avc_sic_result_t result);
16659ulong __ovld intel_sub_group_avc_sic_get_packed_ipe_luma_modes(
16660 intel_sub_group_avc_sic_result_t result);
16661uchar __ovld intel_sub_group_avc_sic_get_ipe_chroma_mode(
16662 intel_sub_group_avc_sic_result_t result);
16663uint __ovld intel_sub_group_avc_sic_get_packed_skc_luma_count_threshold(
16664 intel_sub_group_avc_sic_result_t result);
16665ulong __ovld intel_sub_group_avc_sic_get_packed_skc_luma_sum_threshold(
16666 intel_sub_group_avc_sic_result_t result);
16667ushort __ovld intel_sub_group_avc_sic_get_inter_raw_sads(
16668 intel_sub_group_avc_sic_result_t result);
16669
16670// Wrappers
16671intel_sub_group_avc_ime_payload_t __ovld
16672intel_sub_group_avc_ime_set_inter_base_multi_reference_penalty(
16673 uchar reference_base_penalty, intel_sub_group_avc_ime_payload_t payload);
16674intel_sub_group_avc_ref_payload_t __ovld
16675intel_sub_group_avc_ref_set_inter_base_multi_reference_penalty(
16676 uchar reference_base_penalty, intel_sub_group_avc_ref_payload_t payload);
16677intel_sub_group_avc_sic_payload_t __ovld
16678intel_sub_group_avc_sic_set_inter_base_multi_reference_penalty(
16679 uchar reference_base_penalty, intel_sub_group_avc_sic_payload_t payload);
16680
16681intel_sub_group_avc_ime_payload_t __ovld
16682intel_sub_group_avc_ime_set_inter_shape_penalty(
16683 ulong packed_shape_cost, intel_sub_group_avc_ime_payload_t payload);
16684intel_sub_group_avc_ref_payload_t __ovld
16685intel_sub_group_avc_ref_set_inter_shape_penalty(
16686 ulong packed_shape_cost, intel_sub_group_avc_ref_payload_t payload);
16687intel_sub_group_avc_sic_payload_t __ovld
16688intel_sub_group_avc_sic_set_inter_shape_penalty(
16689 ulong packed_shape_cost, intel_sub_group_avc_sic_payload_t payload);
16690
16691intel_sub_group_avc_ime_payload_t __ovld
16692intel_sub_group_avc_ime_set_inter_direction_penalty(
16693 uchar direction_cost, intel_sub_group_avc_ime_payload_t payload);
16694intel_sub_group_avc_ref_payload_t __ovld
16695intel_sub_group_avc_ref_set_inter_direction_penalty(
16696 uchar direction_cost, intel_sub_group_avc_ref_payload_t payload);
16697intel_sub_group_avc_sic_payload_t __ovld
16698intel_sub_group_avc_sic_set_inter_direction_penalty(
16699 uchar direction_cost, intel_sub_group_avc_sic_payload_t payload);
16700
16701intel_sub_group_avc_ime_payload_t __ovld
16702intel_sub_group_avc_ime_set_motion_vector_cost_function(
16703 ulong packed_cost_center_delta, uint2 packed_cost_table,
16704 uchar cost_precision, intel_sub_group_avc_ime_payload_t payload);
16705intel_sub_group_avc_ref_payload_t __ovld
16706intel_sub_group_avc_ref_set_motion_vector_cost_function(
16707 ulong packed_cost_center_delta, uint2 packed_cost_table,
16708 uchar cost_precision, intel_sub_group_avc_ref_payload_t payload);
16709intel_sub_group_avc_sic_payload_t __ovld
16710intel_sub_group_avc_sic_set_motion_vector_cost_function(
16711 ulong packed_cost_center_delta, uint2 packed_cost_table,
16712 uchar cost_precision, intel_sub_group_avc_sic_payload_t payload);
16713
16714intel_sub_group_avc_ime_payload_t __ovld
16715intel_sub_group_avc_ime_set_source_interlaced_field_polarity(
16716 uchar src_field_polarity, intel_sub_group_avc_ime_payload_t payload);
16717intel_sub_group_avc_ref_payload_t __ovld
16718intel_sub_group_avc_ref_set_source_interlaced_field_polarity(
16719 uchar src_field_polarity, intel_sub_group_avc_ref_payload_t payload);
16720intel_sub_group_avc_sic_payload_t __ovld
16721intel_sub_group_avc_sic_set_source_interlaced_field_polarity(
16722 uchar src_field_polarity, intel_sub_group_avc_sic_payload_t payload);
16723
16724intel_sub_group_avc_ime_payload_t __ovld
16725intel_sub_group_avc_ime_set_single_reference_interlaced_field_polarity(
16726 uchar ref_field_polarity, intel_sub_group_avc_ime_payload_t payload);
16727intel_sub_group_avc_ref_payload_t __ovld
16728intel_sub_group_avc_ref_set_single_reference_interlaced_field_polarity(
16729 uchar ref_field_polarity, intel_sub_group_avc_ref_payload_t payload);
16730intel_sub_group_avc_sic_payload_t __ovld
16731intel_sub_group_avc_sic_set_single_reference_interlaced_field_polarity(
16732 uchar ref_field_polarity, intel_sub_group_avc_sic_payload_t payload);
16733intel_sub_group_avc_ime_payload_t __ovld
16734intel_sub_group_avc_ime_set_dual_reference_interlaced_field_polarities(
16735 uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
16736 intel_sub_group_avc_ime_payload_t payload);
16737intel_sub_group_avc_ref_payload_t __ovld
16738intel_sub_group_avc_ref_set_dual_reference_interlaced_field_polarities(
16739 uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
16740 intel_sub_group_avc_ref_payload_t payload);
16741intel_sub_group_avc_sic_payload_t __ovld
16742intel_sub_group_avc_sic_set_dual_reference_interlaced_field_polarities(
16743 uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
16744 intel_sub_group_avc_sic_payload_t payload);
16745
16746intel_sub_group_avc_ime_payload_t __ovld
16747intel_sub_group_avc_ime_set_ac_only_haar(
16748 intel_sub_group_avc_ime_payload_t payload);
16749intel_sub_group_avc_ref_payload_t __ovld
16750intel_sub_group_avc_ref_set_ac_only_haar(
16751 intel_sub_group_avc_ref_payload_t payload);
16752intel_sub_group_avc_sic_payload_t __ovld
16753intel_sub_group_avc_sic_set_ac_only_haar(
16754 intel_sub_group_avc_sic_payload_t payload);
16755
16756ulong __ovld intel_sub_group_avc_ime_get_motion_vectors(
16757 intel_sub_group_avc_ime_result_t result);
16758ulong __ovld intel_sub_group_avc_ref_get_motion_vectors(
16759 intel_sub_group_avc_ref_result_t result);
16760
16761ushort __ovld intel_sub_group_avc_ime_get_inter_distortions(
16762 intel_sub_group_avc_ime_result_t result);
16763ushort __ovld intel_sub_group_avc_ref_get_inter_distortions(
16764 intel_sub_group_avc_ref_result_t result);
16765ushort __ovld intel_sub_group_avc_sic_get_inter_distortions(
16766 intel_sub_group_avc_sic_result_t result);
16767
16768ushort __ovld intel_sub_group_avc_ime_get_best_inter_distortion(
16769 intel_sub_group_avc_ime_result_t result);
16770ushort __ovld intel_sub_group_avc_ref_get_best_inter_distortion(
16771 intel_sub_group_avc_ref_result_t result);
16772
16773uchar __ovld intel_sub_group_avc_ime_get_inter_major_shape(
16774 intel_sub_group_avc_ime_result_t result);
16775uchar __ovld intel_sub_group_avc_ref_get_inter_major_shape(
16776 intel_sub_group_avc_ref_result_t result);
16777uchar __ovld intel_sub_group_avc_ime_get_inter_minor_shapes(
16778 intel_sub_group_avc_ime_result_t result);
16779uchar __ovld intel_sub_group_avc_ref_get_inter_minor_shapes(
16780 intel_sub_group_avc_ref_result_t result);
16781
16782uchar __ovld intel_sub_group_avc_ime_get_inter_directions(
16783 intel_sub_group_avc_ime_result_t result);
16784uchar __ovld intel_sub_group_avc_ref_get_inter_directions(
16785 intel_sub_group_avc_ref_result_t result);
16786
16787uchar __ovld intel_sub_group_avc_ime_get_inter_motion_vector_count(
16788 intel_sub_group_avc_ime_result_t result);
16789uchar __ovld intel_sub_group_avc_ref_get_inter_motion_vector_count(
16790 intel_sub_group_avc_ref_result_t result);
16791
16792uint __ovld intel_sub_group_avc_ime_get_inter_reference_ids(
16793 intel_sub_group_avc_ime_result_t result);
16794uint __ovld intel_sub_group_avc_ref_get_inter_reference_ids(
16795 intel_sub_group_avc_ref_result_t result);
16796
16797uchar __ovld
16798intel_sub_group_avc_ime_get_inter_reference_interlaced_field_polarities(
16799 uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
16800 intel_sub_group_avc_ime_result_t result);
16801uchar __ovld
16802intel_sub_group_avc_ref_get_inter_reference_interlaced_field_polarities(
16803 uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
16804 intel_sub_group_avc_ref_result_t result);
16805
16806// Type conversion functions
16807intel_sub_group_avc_mce_payload_t __ovld
16808intel_sub_group_avc_ime_convert_to_mce_payload(
16809 intel_sub_group_avc_ime_payload_t payload);
16810intel_sub_group_avc_ime_payload_t __ovld
16811intel_sub_group_avc_mce_convert_to_ime_payload(
16812 intel_sub_group_avc_mce_payload_t payload);
16813intel_sub_group_avc_mce_payload_t __ovld
16814intel_sub_group_avc_ref_convert_to_mce_payload(
16815 intel_sub_group_avc_ref_payload_t payload);
16816intel_sub_group_avc_ref_payload_t __ovld
16817intel_sub_group_avc_mce_convert_to_ref_payload(
16818 intel_sub_group_avc_mce_payload_t payload);
16819intel_sub_group_avc_mce_payload_t __ovld
16820intel_sub_group_avc_sic_convert_to_mce_payload(
16821 intel_sub_group_avc_sic_payload_t payload);
16822intel_sub_group_avc_sic_payload_t __ovld
16823intel_sub_group_avc_mce_convert_to_sic_payload(
16824 intel_sub_group_avc_mce_payload_t payload);
16825
16826intel_sub_group_avc_mce_result_t __ovld
16827intel_sub_group_avc_ime_convert_to_mce_result(
16828 intel_sub_group_avc_ime_result_t result);
16829intel_sub_group_avc_ime_result_t __ovld
16830intel_sub_group_avc_mce_convert_to_ime_result(
16831 intel_sub_group_avc_mce_result_t result);
16832intel_sub_group_avc_mce_result_t __ovld
16833intel_sub_group_avc_ref_convert_to_mce_result(
16834 intel_sub_group_avc_ref_result_t result);
16835intel_sub_group_avc_ref_result_t __ovld
16836intel_sub_group_avc_mce_convert_to_ref_result(
16837 intel_sub_group_avc_mce_result_t result);
16838intel_sub_group_avc_mce_result_t __ovld
16839intel_sub_group_avc_sic_convert_to_mce_result(
16840 intel_sub_group_avc_sic_result_t result);
16841intel_sub_group_avc_sic_result_t __ovld
16842intel_sub_group_avc_mce_convert_to_sic_result(
16843 intel_sub_group_avc_mce_result_t result);
16844#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : end
16845#endif // cl_intel_device_side_avc_motion_estimation
16846
1619616847#ifdef cl_amd_media_ops
1619716848uint __ovld amd_bitalign(uint a, uint b, uint c);
1619816849uint2 __ovld amd_bitalign(uint2 a, uint2 b, uint2 c);
c_headers/vecintrin.h+3-3
......@@ -381,7 +381,7 @@ vec_insert_and_zero(const unsigned long long *__ptr) {
381381static inline __ATTRS_o_ai vector float
382382vec_insert_and_zero(const float *__ptr) {
383383 vector float __vec = (vector float)0;
384 __vec[0] = *__ptr;
384 __vec[1] = *__ptr;
385385 return __vec;
386386}
387387#endif
......@@ -5942,13 +5942,13 @@ vec_orc(vector unsigned long long __a, vector unsigned long long __b) {
59425942
59435943static inline __ATTRS_o_ai vector float
59445944vec_orc(vector float __a, vector float __b) {
5945 return (vector float)((vector unsigned int)__a &
5945 return (vector float)((vector unsigned int)__a |
59465946 ~(vector unsigned int)__b);
59475947}
59485948
59495949static inline __ATTRS_o_ai vector double
59505950vec_orc(vector double __a, vector double __b) {
5951 return (vector double)((vector unsigned long long)__a &
5951 return (vector double)((vector unsigned long long)__a |
59525952 ~(vector unsigned long long)__b);
59535953}
59545954#endif