📄 emmintrin.h
字号:
_mm_adds_epu16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_paddusw128 ((__v8hi)__A, (__v8hi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_sub_epi8 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_psubb128 ((__v16qi)__A, (__v16qi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_sub_epi16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_psubw128 ((__v8hi)__A, (__v8hi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_sub_epi32 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_psubd128 ((__v4si)__A, (__v4si)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_sub_epi64 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_psubq128 ((__v2di)__A, (__v2di)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_subs_epi8 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_psubsb128 ((__v16qi)__A, (__v16qi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_subs_epi16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_psubsw128 ((__v8hi)__A, (__v8hi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_subs_epu8 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_psubusb128 ((__v16qi)__A, (__v16qi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_subs_epu16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_psubusw128 ((__v8hi)__A, (__v8hi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_madd_epi16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pmaddwd128 ((__v8hi)__A, (__v8hi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_mulhi_epi16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pmulhw128 ((__v8hi)__A, (__v8hi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_mullo_epi16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pmullw128 ((__v8hi)__A, (__v8hi)__B);}static __inline __m64 __attribute__((__always_inline__, __nodebug__))_mm_mul_su32 (__m64 __A, __m64 __B){ return (__m64)__builtin_ia32_pmuludq ((__v2si)__A, (__v2si)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_mul_epu32 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pmuludq128 ((__v4si)__A, (__v4si)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_slli_epi16 (__m128i __A, int __B){ return (__m128i)__builtin_ia32_psllwi128 ((__v8hi)__A, __B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_slli_epi32 (__m128i __A, int __B){ return (__m128i)__builtin_ia32_pslldi128 ((__v4si)__A, __B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_slli_epi64 (__m128i __A, int __B){ return (__m128i)__builtin_ia32_psllqi128 ((__v2di)__A, __B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_srai_epi16 (__m128i __A, int __B){ return (__m128i)__builtin_ia32_psrawi128 ((__v8hi)__A, __B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_srai_epi32 (__m128i __A, int __B){ return (__m128i)__builtin_ia32_psradi128 ((__v4si)__A, __B);}#if 0static __m128i __attribute__((__always_inline__, __nodebug__))_mm_srli_si128 (__m128i __A, const int __B){ return ((__m128i)__builtin_ia32_psrldqi128 (__A, __B))}static __m128i __attribute__((__always_inline__, __nodebug__))_mm_srli_si128 (__m128i __A, const int __B){ return ((__m128i)__builtin_ia32_pslldqi128 (__A, __B))}#else#define _mm_srli_si128(__A, __B) \ ((__m128i)__builtin_ia32_psrldqi128 (__A, (__B) * 8))#define _mm_slli_si128(__A, __B) \ ((__m128i)__builtin_ia32_pslldqi128 (__A, (__B) * 8))#endifstatic __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_srli_epi16 (__m128i __A, int __B){ return (__m128i)__builtin_ia32_psrlwi128 ((__v8hi)__A, __B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_srli_epi32 (__m128i __A, int __B){ return (__m128i)__builtin_ia32_psrldi128 ((__v4si)__A, __B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_srli_epi64 (__m128i __A, int __B){ return (__m128i)__builtin_ia32_psrlqi128 ((__v2di)__A, __B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_sll_epi16 (__m128i __A, __m128i __B){ return _mm_slli_epi16 (__A, _mm_cvtsi128_si32 (__B));}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_sll_epi32 (__m128i __A, __m128i __B){ return _mm_slli_epi32 (__A, _mm_cvtsi128_si32 (__B));}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_sll_epi64 (__m128i __A, __m128i __B){ return _mm_slli_epi64 (__A, _mm_cvtsi128_si32 (__B));}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_sra_epi16 (__m128i __A, __m128i __B){ return _mm_srai_epi16 (__A, _mm_cvtsi128_si32 (__B));}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_sra_epi32 (__m128i __A, __m128i __B){ return _mm_srai_epi32 (__A, _mm_cvtsi128_si32 (__B));}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_srl_epi16 (__m128i __A, __m128i __B){ return _mm_srli_epi16 (__A, _mm_cvtsi128_si32 (__B));}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_srl_epi32 (__m128i __A, __m128i __B){ return _mm_srli_epi32 (__A, _mm_cvtsi128_si32 (__B));}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_srl_epi64 (__m128i __A, __m128i __B){ return _mm_srli_epi64 (__A, _mm_cvtsi128_si32 (__B));}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_and_si128 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pand128 ((__v2di)__A, (__v2di)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_andnot_si128 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pandn128 ((__v2di)__A, (__v2di)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_or_si128 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_por128 ((__v2di)__A, (__v2di)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_xor_si128 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pxor128 ((__v2di)__A, (__v2di)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_cmpeq_epi8 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pcmpeqb128 ((__v16qi)__A, (__v16qi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_cmpeq_epi16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pcmpeqw128 ((__v8hi)__A, (__v8hi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_cmpeq_epi32 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pcmpeqd128 ((__v4si)__A, (__v4si)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_cmplt_epi8 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pcmpgtb128 ((__v16qi)__B, (__v16qi)__A);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_cmplt_epi16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pcmpgtw128 ((__v8hi)__B, (__v8hi)__A);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_cmplt_epi32 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pcmpgtd128 ((__v4si)__B, (__v4si)__A);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_cmpgt_epi8 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pcmpgtb128 ((__v16qi)__A, (__v16qi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_cmpgt_epi16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pcmpgtw128 ((__v8hi)__A, (__v8hi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_cmpgt_epi32 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pcmpgtd128 ((__v4si)__A, (__v4si)__B);}#if 0static __inline int __attribute__((__always_inline__, __nodebug__))_mm_extract_epi16 (__m128i const __A, int const __N){ return __builtin_ia32_vec_ext_v8hi ((__v8hi)__A, __N);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_insert_epi16 (__m128i const __A, int const __D, int const __N){ return (__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)__A, __D, __N);}#else#define _mm_extract_epi16(A, N) \ ((int) __builtin_ia32_vec_ext_v8hi ((__v8hi)(A), (N)))#define _mm_insert_epi16(A, D, N) \ ((__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi)(A), (D), (N)))#endifstatic __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_max_epi16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pmaxsw128 ((__v8hi)__A, (__v8hi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_max_epu8 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pmaxub128 ((__v16qi)__A, (__v16qi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_min_epi16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pminsw128 ((__v8hi)__A, (__v8hi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_min_epu8 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pminub128 ((__v16qi)__A, (__v16qi)__B);}static __inline int __attribute__((__always_inline__, __nodebug__))_mm_movemask_epi8 (__m128i __A){ return __builtin_ia32_pmovmskb128 ((__v16qi)__A);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_mulhi_epu16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pmulhuw128 ((__v8hi)__A, (__v8hi)__B);}#define _mm_shufflehi_epi16(__A, __B) ((__m128i)__builtin_ia32_pshufhw ((__v8hi)__A, __B))#define _mm_shufflelo_epi16(__A, __B) ((__m128i)__builtin_ia32_pshuflw ((__v8hi)__A, __B))#define _mm_shuffle_epi32(__A, __B) ((__m128i)__builtin_ia32_pshufd ((__v4si)__A, __B))static __inline void __attribute__((__always_inline__, __nodebug__))_mm_maskmoveu_si128 (__m128i __A, __m128i __B, char *__C){ __builtin_ia32_maskmovdqu ((__v16qi)__A, (__v16qi)__B, __C);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_avg_epu8 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pavgb128 ((__v16qi)__A, (__v16qi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_avg_epu16 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_pavgw128 ((__v8hi)__A, (__v8hi)__B);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_sad_epu8 (__m128i __A, __m128i __B){ return (__m128i)__builtin_ia32_psadbw128 ((__v16qi)__A, (__v16qi)__B);}static __inline void __attribute__((__always_inline__, __nodebug__))_mm_stream_si32 (int *__A, int __B){ __builtin_ia32_movnti (__A, __B);}static __inline void __attribute__((__always_inline__, __nodebug__))_mm_stream_si128 (__m128i *__A, __m128i __B){ __builtin_ia32_movntdq ((__v2di *)__A, (__v2di)__B);}static __inline void __attribute__((__always_inline__, __nodebug__))_mm_stream_pd (double *__A, __m128d __B){ __builtin_ia32_movntpd (__A, (__v2df)__B);}static __inline void __attribute__((__always_inline__, __nodebug__))_mm_clflush (void const *__A){ __builtin_ia32_clflush (__A);}static __inline void __attribute__((__always_inline__, __nodebug__))_mm_lfence (void){ __builtin_ia32_lfence ();}static __inline void __attribute__((__always_inline__, __nodebug__))_mm_mfence (void){ __builtin_ia32_mfence ();}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_cvtsi32_si128 (int __A){ return _mm_set_epi32 (0, 0, 0, __A);}#ifdef __x86_64__/* Intel intrinsic. */static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_cvtsi64_si128 (long long __A){ return _mm_set_epi64x (0, __A);}/* Microsoft intrinsic. */static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_cvtsi64x_si128 (long long __A){ return _mm_set_epi64x (0, __A);}#endif/* Casts between various SP, DP, INT vector types. Note that these do no conversion of values, they just change the type. */static __inline __m128 __attribute__((__always_inline__, __nodebug__))_mm_castpd_ps(__m128d __A){ return (__m128) __A;}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_castpd_si128(__m128d __A){ return (__m128i) __A;}static __inline __m128d __attribute__((__always_inline__, __nodebug__))_mm_castps_pd(__m128 __A){ return (__m128d) __A;}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_castps_si128(__m128 __A){ return (__m128i) __A;}static __inline __m128 __attribute__((__always_inline__, __nodebug__))_mm_castsi128_ps(__m128i __A){ return (__m128) __A;}static __inline __m128d __attribute__((__always_inline__, __nodebug__))_mm_castsi128_pd(__m128i __A){ return (__m128d) __A;}/* APPLE LOCAL end radar 4152603 *//* APPLE LOCAL begin 4220129 *//* Set all of the elements of the vector to A. */static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_set1_epi64x (long long __A){ return _mm_set_epi64x (__A, __A);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_set1_epi64 (__m64 __A){ return _mm_set_epi64 (__A, __A);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_set1_epi32 (int __A){ return _mm_set_epi32 (__A, __A, __A, __A);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_set1_epi16 (short __A){ return _mm_set_epi16 (__A, __A, __A, __A, __A, __A, __A, __A);}static __inline __m128i __attribute__((__always_inline__, __nodebug__))_mm_set1_epi8 (char __A){ __m128i temp, temp2, temp3, temp4; temp = _mm_cvtsi32_si128 ((int)__A); temp2 = _mm_unpacklo_epi8 (temp, temp); temp3 = _mm_unpacklo_epi8 (temp2, temp2); temp4 = _mm_shuffle_epi32 (temp3, 0); return temp4;}/* APPLE LOCAL end 4220129 */#endif /* __SSE2__ */#endif /* _EMMINTRIN_H_INCLUDED */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -