📄 emmintrin.h
字号:
static __inline int_mm_ucomilt_sd (__m128d __A, __m128d __B){ return __builtin_ia32_ucomisdlt ((__v2df)__A, (__v2df)__B);}static __inline int_mm_ucomile_sd (__m128d __A, __m128d __B){ return __builtin_ia32_ucomisdle ((__v2df)__A, (__v2df)__B);}static __inline int_mm_ucomigt_sd (__m128d __A, __m128d __B){ return __builtin_ia32_ucomisdgt ((__v2df)__A, (__v2df)__B);}static __inline int_mm_ucomige_sd (__m128d __A, __m128d __B){ return __builtin_ia32_ucomisdge ((__v2df)__A, (__v2df)__B);}static __inline int_mm_ucomineq_sd (__m128d __A, __m128d __B){ return __builtin_ia32_ucomisdneq ((__v2df)__A, (__v2df)__B);}/* Create a vector with element 0 as *P and the rest zero. */static __inline __m128i_mm_load_si128 (__m128i const *__P){ return (__m128i) __builtin_ia32_loaddqa ((char const *)__P);}static __inline __m128i_mm_loadu_si128 (__m128i const *__P){ return (__m128i) __builtin_ia32_loaddqu ((char const *)__P);}static __inline __m128i_mm_loadl_epi64 (__m128i const *__P){ return (__m128i) __builtin_ia32_movq2dq (*(unsigned long long *)__P);}static __inline void_mm_store_si128 (__m128i *__P, __m128i __B){ __builtin_ia32_storedqa ((char *)__P, (__v16qi)__B);}static __inline void_mm_storeu_si128 (__m128i *__P, __m128i __B){ __builtin_ia32_storedqu ((char *)__P, (__v16qi)__B);}static __inline void_mm_storel_epi64 (__m128i *__P, __m128i __B){ *(long long *)__P = __builtin_ia32_movdq2q ((__v2di)__B);}static __inline __m64_mm_movepi64_pi64 (__m128i __B){ return (__m64) __builtin_ia32_movdq2q ((__v2di)__B);}static __inline __m128i_mm_move_epi64 (__m128i __A){ return (__m128i) __builtin_ia32_movq ((__v2di)__A);}/* Create a vector of zeros. */static __inline __m128i_mm_setzero_si128 (void){ return (__m128i) __builtin_ia32_setzero128 ();}static __inline __m128i_mm_set_epi64 (__m64 __A, __m64 __B){ __v2di __tmp = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__A); __v2di __tmp2 = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__B); return (__m128i)__builtin_ia32_punpcklqdq128 (__tmp2, __tmp);}/* Create the vector [Z Y X W]. */static __inline __m128i_mm_set_epi32 (int __Z, int __Y, int __X, int __W){ union { int __a[4]; __m128i __v; } __u; __u.__a[0] = __W; __u.__a[1] = __X; __u.__a[2] = __Y; __u.__a[3] = __Z; return __u.__v;}#ifdef __x86_64__/* Create the vector [Z Y]. */static __inline __m128i_mm_set_epi64x (long long __Z, long long __Y){ union { long __a[2]; __m128i __v; } __u; __u.__a[0] = __Y; __u.__a[1] = __Z; return __u.__v;}#endif/* Create the vector [S T U V Z Y X W]. */static __inline __m128i_mm_set_epi16 (short __Z, short __Y, short __X, short __W, short __V, short __U, short __T, short __S){ union { short __a[8]; __m128i __v; } __u; __u.__a[0] = __S; __u.__a[1] = __T; __u.__a[2] = __U; __u.__a[3] = __V; __u.__a[4] = __W; __u.__a[5] = __X; __u.__a[6] = __Y; __u.__a[7] = __Z; return __u.__v;}/* Create the vector [S T U V Z Y X W]. */static __inline __m128i_mm_set_epi8 (char __Z, char __Y, char __X, char __W, char __V, char __U, char __T, char __S, char __Z1, char __Y1, char __X1, char __W1, char __V1, char __U1, char __T1, char __S1){ union { char __a[16]; __m128i __v; } __u; __u.__a[0] = __S1; __u.__a[1] = __T1; __u.__a[2] = __U1; __u.__a[3] = __V1; __u.__a[4] = __W1; __u.__a[5] = __X1; __u.__a[6] = __Y1; __u.__a[7] = __Z1; __u.__a[8] = __S; __u.__a[9] = __T; __u.__a[10] = __U; __u.__a[11] = __V; __u.__a[12] = __W; __u.__a[13] = __X; __u.__a[14] = __Y; __u.__a[15] = __Z; return __u.__v;}static __inline __m128i_mm_set1_epi64 (__m64 __A){ __v2di __tmp = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__A); return (__m128i)__builtin_ia32_punpcklqdq128 (__tmp, __tmp);}static __inline __m128i_mm_set1_epi32 (int __A){ __v4si __tmp = (__v4si)__builtin_ia32_loadd (&__A); return (__m128i) __builtin_ia32_pshufd ((__v4si)__tmp, _MM_SHUFFLE (0,0,0,0));}#ifdef __x86_64__static __inline __m128i_mm_set1_epi64x (long long __A){ __v2di __tmp = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__A); return (__m128i) __builtin_ia32_shufpd ((__v2df)__tmp, (__v2df)__tmp, _MM_SHUFFLE2 (0,0));}#endifstatic __inline __m128i_mm_set1_epi16 (short __A){ int __Acopy = (unsigned short)__A; __v4si __tmp = (__v4si)__builtin_ia32_loadd (&__Acopy); __tmp = (__v4si)__builtin_ia32_punpcklwd128 ((__v8hi)__tmp, (__v8hi)__tmp); return (__m128i) __builtin_ia32_pshufd ((__v4si)__tmp, _MM_SHUFFLE (0,0,0,0));}static __inline __m128i_mm_set1_epi8 (char __A){ int __Acopy = (unsigned char)__A; __v4si __tmp = (__v4si)__builtin_ia32_loadd (&__Acopy); __tmp = (__v4si)__builtin_ia32_punpcklbw128 ((__v16qi)__tmp, (__v16qi)__tmp); __tmp = (__v4si)__builtin_ia32_punpcklbw128 ((__v16qi)__tmp, (__v16qi)__tmp); return (__m128i) __builtin_ia32_pshufd ((__v4si)__tmp, _MM_SHUFFLE (0,0,0,0));}static __inline __m128i_mm_setr_epi64 (__m64 __A, __m64 __B){ __v2di __tmp = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__A); __v2di __tmp2 = (__v2di)__builtin_ia32_movq2dq ((unsigned long long)__B); return (__m128i)__builtin_ia32_punpcklqdq128 (__tmp, __tmp2);}/* Create the vector [Z Y X W]. */static __inline __m128i_mm_setr_epi32 (int __W, int __X, int __Y, int __Z){ union { int __a[4]; __m128i __v; } __u; __u.__a[0] = __W; __u.__a[1] = __X; __u.__a[2] = __Y; __u.__a[3] = __Z; return __u.__v;}/* Create the vector [S T U V Z Y X W]. */static __inline __m128i_mm_setr_epi16 (short __S, short __T, short __U, short __V, short __W, short __X, short __Y, short __Z){ union { short __a[8]; __m128i __v; } __u; __u.__a[0] = __S; __u.__a[1] = __T; __u.__a[2] = __U; __u.__a[3] = __V; __u.__a[4] = __W; __u.__a[5] = __X; __u.__a[6] = __Y; __u.__a[7] = __Z; return __u.__v;}/* Create the vector [S T U V Z Y X W]. */static __inline __m128i_mm_setr_epi8 (char __S1, char __T1, char __U1, char __V1, char __W1, char __X1, char __Y1, char __Z1, char __S, char __T, char __U, char __V, char __W, char __X, char __Y, char __Z){ union { char __a[16]; __m128i __v; } __u; __u.__a[0] = __S1; __u.__a[1] = __T1; __u.__a[2] = __U1; __u.__a[3] = __V1; __u.__a[4] = __W1; __u.__a[5] = __X1; __u.__a[6] = __Y1; __u.__a[7] = __Z1; __u.__a[8] = __S; __u.__a[9] = __T; __u.__a[10] = __U; __u.__a[11] = __V; __u.__a[12] = __W; __u.__a[13] = __X; __u.__a[14] = __Y; __u.__a[15] = __Z; return __u.__v;}static __inline __m128d_mm_cvtepi32_pd (__m128i __A){ return (__m128d)__builtin_ia32_cvtdq2pd ((__v4si) __A);}static __inline __m128_mm_cvtepi32_ps (__m128i __A){ return (__m128)__builtin_ia32_cvtdq2ps ((__v4si) __A);}static __inline __m128i_mm_cvtpd_epi32 (__m128d __A){ return (__m128i)__builtin_ia32_cvtpd2dq ((__v2df) __A);}static __inline __m64_mm_cvtpd_pi32 (__m128d __A){ return (__m64)__builtin_ia32_cvtpd2pi ((__v2df) __A);}static __inline __m128_mm_cvtpd_ps (__m128d __A){ return (__m128)__builtin_ia32_cvtpd2ps ((__v2df) __A);}static __inline __m128i_mm_cvttpd_epi32 (__m128d __A){ return (__m128i)__builtin_ia32_cvttpd2dq ((__v2df) __A);}static __inline __m64_mm_cvttpd_pi32 (__m128d __A){ return (__m64)__builtin_ia32_cvttpd2pi ((__v2df) __A);}static __inline __m128d_mm_cvtpi32_pd (__m64 __A){ return (__m128d)__builtin_ia32_cvtpi2pd ((__v2si) __A);}static __inline __m128i_mm_cvtps_epi32 (__m128 __A){ return (__m128i)__builtin_ia32_cvtps2dq ((__v4sf) __A);}static __inline __m128i_mm_cvttps_epi32 (__m128 __A){ return (__m128i)__builtin_ia32_cvttps2dq ((__v4sf) __A);}static __inline __m128d_mm_cvtps_pd (__m128 __A){ return (__m128d)__builtin_ia32_cvtps2pd ((__v4sf) __A);}static __inline int_mm_cvtsd_si32 (__m128d __A){ return __builtin_ia32_cvtsd2si ((__v2df) __A);}#ifdef __x86_64__static __inline long long_mm_cvtsd_si64x (__m128d __A){ return __builtin_ia32_cvtsd2si64 ((__v2df) __A);}#endifstatic __inline int_mm_cvttsd_si32 (__m128d __A){ return __builtin_ia32_cvttsd2si ((__v2df) __A);}#ifdef __x86_64__static __inline long long_mm_cvttsd_si64x (__m128d __A){ return __builtin_ia32_cvttsd2si64 ((__v2df) __A);}#endifstatic __inline __m128_mm_cvtsd_ss (__m128 __A, __m128d __B){ return (__m128)__builtin_ia32_cvtsd2ss ((__v4sf) __A, (__v2df) __B);}static __inline __m128d_mm_cvtsi32_sd (__m128d __A, int __B){ return (__m128d)__builtin_ia32_cvtsi2sd ((__v2df) __A, __B);}#ifdef __x86_64__static __inline __m128d_mm_cvtsi64x_sd (__m128d __A, long long __B){ return (__m128d)__builtin_ia32_cvtsi642sd ((__v2df) __A, __B);}#endifstatic __inline __m128d_mm_cvtss_sd (__m128d __A, __m128 __B){ return (__m128d)__builtin_ia32_cvtss2sd ((__v2df) __A, (__v4sf)__B);}#define _mm_shuffle_pd(__A, __B, __C) ((__m128d)__builtin_ia32_shufpd ((__v2df)__A, (__v2df)__B, (__C)))static __inline __m128d_mm_unpackhi_pd (__m128d __A, __m128d __B){ return (__m128d)__builtin_ia32_unpckhpd ((__v2df)__A, (__v2df)__B);}static __inline __m128d_mm_unpacklo_pd (__m128d __A, __m128d __B){ return (__m128d)__builtin_ia32_unpcklpd ((__v2df)__A, (__v2df)__B);}static __inline __m128d_mm_loadh_pd (__m128d __A, double const *__B){ return (__m128d)__builtin_ia32_loadhpd ((__v2df)__A, (__v2si *)__B);}static __inline void_mm_storeh_pd (double *__A, __m128d __B){ __builtin_ia32_storehpd ((__v2si *)__A, (__v2df)__B);}static __inline __m128d_mm_loadl_pd (__m128d __A, double const *__B){ return (__m128d)__builtin_ia32_loadlpd ((__v2df)__A, (__v2si *)__B);}static __inline void_mm_storel_pd (double *__A, __m128d __B){ __builtin_ia32_storelpd ((__v2si *)__A, (__v2df)__B);}static __inline int_mm_movemask_pd (__m128d __A){ return __builtin_ia32_movmskpd ((__v2df)__A);}static __inline __m128i_mm_packs_epi16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_packsswb128 ((__v8hi)__A, (__v8hi)__B);}static __inline __m128i_mm_packs_epi32 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_packssdw128 ((__v4si)__A, (__v4si)__B);}static __inline __m128i_mm_packus_epi16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_packuswb128 ((__v8hi)__A, (__v8hi)__B);}static __inline __m128i_mm_unpackhi_epi8 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_punpckhbw128 ((__v16qi)__A, (__v16qi)__B);}static __inline __m128i_mm_unpackhi_epi16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_punpckhwd128 ((__v8hi)__A, (__v8hi)__B);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -