|
|
INTEL® C/C++ COMPILER INTRINSICS AND FUNCTIONAL EQUIVALENTS
Table C-1. Simple Intrinsics (Contd.)
Mnemonic
Intrinsic
CMPPD
__m128d _mm_cmpeq_pd(__m128d a, __m128d b)
__m128d _mm_cmplt_pd(__m128d a, __m128d b)
__m128d _mm_cmple_pd(__m128d a, __m128d b)
__m128d _mm_cmpgt_pd(__m128d a, __m128d b)
__m128d _mm_cmpge_pd(__m128d a, __m128d b)
__m128d _mm_cmpneq_pd(__m128d a, __m128d b)
__m128d _mm_cmpnlt_pd(__m128d a, __m128d b)
__m128d _mm_cmpngt_pd(__m128d a, __m128d b)
__m128d _mm_cmpnge_pd(__m128d a, __m128d b)
__m128d _mm_cmpord_pd(__m128d a, __m128d b)
__m128d _mm_cmpunord_pd(__m128d a, __m128d b)
__m128d _mm_cmpnle_pd(__m128d a, __m128d b)
CMPPS
__m128 _mm_cmpeq_ps(__m128 a, __m128 b)
__m128 _mm_cmplt_ps(__m128 a, __m128 b)
__m128 _mm_cmple_ps(__m128 a, __m128 b)
__m128 _mm_cmpgt_ps(__m128 a, __m128 b)
__m128 _mm_cmpge_ps(__m128 a, __m128 b)
__m128 _mm_cmpneq_ps(__m128 a, __m128 b)
__m128 _mm_cmpnlt_ps(__m128 a, __m128 b)
__m128 _mm_cmpngt_ps(__m128 a, __m128 b)
__m128 _mm_cmpnge_ps(__m128 a, __m128 b)
__m128 _mm_cmpord_ps(__m128 a, __m128 b)
__m128 _mm_cmpunord_ps(__m128 a, __m128 b)
__m128 _mm_cmpnle_ps(__m128 a, __m128 b)
CMPSD
__m128d _mm_cmpeq_sd(__m128d a, __m128d b)
__m128d _mm_cmplt_sd(__m128d a, __m128d b)
__m128d _mm_cmple_sd(__m128d a, __m128d b)
__m128d _mm_cmpgt_sd(__m128d a, __m128d b)
__m128d _mm_cmpge_sd(__m128d a, __m128d b)
__m128 _mm_cmpneq_sd(__m128d a, __m128d b)
__m128 _mm_cmpnlt_sd(__m128d a, __m128d b)
__m128d _mm_cmpnle_sd(__m128d a, __m128d b)
__m128d _mm_cmpngt_sd(__m128d a, __m128d b)
__m128d _mm_cmpnge_sd(__m128d a, __m128d b)
__m128d _mm_cmpord_sd(__m128d a, __m128d b)
__m128d _mm_cmpunord_sd(__m128d a, __m128d b)
CMPSS
__m128 _mm_cmpeq_ss(__m128 a, __m128 b)
__m128 _mm_cmplt_ss(__m128 a, __m128 b)
__m128 _mm_cmple_ss(__m128 a, __m128 b)
__m128 _mm_cmpgt_ss(__m128 a, __m128 b)
__m128 _mm_cmpge_ss(__m128 a, __m128 b)
Vol. 2D C-3
INTEL® C/C++ COMPILER INTRINSICS AND FUNCTIONAL EQUIVALENTS
Table C-1. Simple Intrinsics (Contd.)
Mnemonic
Intrinsic
__m128 _mm_cmpneq_ss(__m128 a, __m128 b)
__m128 _mm_cmpnlt_ss(__m128 a, __m128 b)
__m128 _mm_cmpnle_ss(__m128 a, __m128 b)
__m128 _mm_cmpngt_ss(__m128 a, __m128 b)
__m128 _mm_cmpnge_ss(__m128 a, __m128 b)
__m128 _mm_cmpord_ss(__m128 a, __m128 b)
__m128 _mm_cmpunord_ss(__m128 a, __m128 b)
COMISD
int _mm_comieq_sd(__m128d a, __m128d b)
int _mm_comilt_sd(__m128d a, __m128d b)
int _mm_comile_sd(__m128d a, __m128d b)
int _mm_comigt_sd(__m128d a, __m128d b)
int _mm_comige_sd(__m128d a, __m128d b)
int _mm_comineq_sd(__m128d a, __m128d b)
COMISS
int _mm_comieq_ss(__m128 a, __m128 b)
int _mm_comilt_ss(__m128 a, __m128 b)
int _mm_comile_ss(__m128 a, __m128 b)
int _mm_comigt_ss(__m128 a, __m128 b)
int _mm_comige_ss(__m128 a, __m128 b)
int _mm_comineq_ss(__m128 a, __m128 b)
CRC32
unsigned int _mm_crc32_u8(unsigned int crc, unsigned char data)
unsigned int _mm_crc32_u16(unsigned int crc, unsigned short data)
unsigned int _mm_crc32_u32(unsigned int crc, unsigned int data)
unsigned __int64 _mm_crc32_u64(unsigned __int64 crc, unsigned __int64 data)
CVTDQ2PD
__m128d _mm_cvtepi32_pd(__m128i a)
CVTDQ2PS
__m128 _mm_cvtepi32_ps(__m128i a)
CVTPD2DQ
__m128i _mm_cvtpd_epi32(__m128d a)
CVTPD2PI
__m64 _mm_cvtpd_pi32(__m128d a)
CVTPD2PS
__m128 _mm_cvtpd_ps(__m128d a)
CVTPI2PD
__m128d _mm_cvtpi32_pd(__m64 a)
CVTPI2PS
__m128 _mm_cvt_pi2ps(__m128 a, __m64 b)
__m128 _mm_cvtpi32_ps(__m128 a, __m64 b)
CVTPS2DQ
__m128i _mm_cvtps_epi32(__m128 a)
CVTPS2PD
__m128d _mm_cvtps_pd(__m128 a)
CVTPS2PI
__m64 _mm_cvt_ps2pi(__m128 a)
__m64 _mm_cvtps_pi32(__m128 a)
CVTSD2SI
int _mm_cvtsd_si32(__m128d a)
CVTSD2SS
__m128 _mm_cvtsd_ss(__m128 a, __m128d b)
CVTSI2SD
__m128d _mm_cvtsi32_sd(__m128d a, int b)
CVTSI2SS
__m128 _mm_cvt_si2ss(__m128 a, int b)
__m128 _mm_cvtsi32_ss(__m128 a, int b)
__m128 _mm_cvtsi64_ss(__m128 a, __int64 b)
CVTSS2SD
__m128d _mm_cvtss_sd(__m128d a, __m128 b)
C-4
Vol. 2D
INTEL® C/C++ COMPILER INTRINSICS AND FUNCTIONAL EQUIVALENTS
Table C-1. Simple Intrinsics (Contd.)
Mnemonic
Intrinsic
CVTSS2SI
int _mm_cvt_ss2si(__m128 a)
int _mm_cvtss_si32(__m128 a)
CVTTPD2DQ
__m128i _mm_cvttpd_epi32(__m128d a)
CVTTPD2PI
__m64 _mm_cvttpd_pi32(__m128d a)
CVTTPS2DQ
__m128i _mm_cvttps_epi32(__m128 a)
CVTTPS2PI
__m64 _mm_cvtt_ps2pi(__m128 a)
__m64 _mm_cvttps_pi32(__m128 a)
CVTTSD2SI
int _mm_cvttsd_si32(__m128d a)
CVTTSS2SI
int _mm_cvtt_ss2si(__m128 a)
int _mm_cvttss_si32(__m128 a)
__m64 _mm_cvtsi32_si64(int i)
int _mm_cvtsi64_si32(__m64 m)
DIVPD
__m128d _mm_div_pd(__m128d a, __m128d b)
DIVPS
__m128 _mm_div_ps(__m128 a, __m128 b)
DIVSD
__m128d _mm_div_sd(__m128d a, __m128d b)
DIVSS
__m128 _mm_div_ss(__m128 a, __m128 b)
DPPD
__m128d _mm_dp_pd(__m128d a, __m128d b, const int mask)
DPPS
__m128 _mm_dp_ps(__m128 a, __m128 b, const int mask)
EMMS
void _mm_empty()
EXTRACTPS
int _mm_extract_ps(__m128 src, const int ndx)
HADDPD
__m128d _mm_hadd_pd(__m128d a, __m128d b)
HADDPS
__m128 _mm_hadd_ps(__m128 a, __m128 b)
HSUBPD
__m128d _mm_hsub_pd(__m128d a, __m128d b)
HSUBPS
__m128 _mm_hsub_ps(__m128 a, __m128 b)
INSERTPS
__m128 _mm_insert_ps(__m128 dst, __m128 src, const int ndx)
LDDQU
__m128i _mm_lddqu_si128(__m128i const *p)
LDMXCSR
__mm_setcsr(unsigned int i)
LFENCE
void _mm_lfence(void)
MASKMOVDQU
void _mm_maskmoveu_si128(__m128i d, __m128i n, char *p)
MASKMOVQ
void _mm_maskmove_si64(__m64 d, __m64 n, char *p)
MAXPD
__m128d _mm_max_pd(__m128d a, __m128d b)
MAXPS
__m128 _mm_max_ps(__m128 a, __m128 b)
MAXSD
__m128d _mm_max_sd(__m128d a, __m128d b)
MAXSS
__m128 _mm_max_ss(__m128 a, __m128 b)
MFENCE
void _mm_mfence(void)
MINPD
__m128d _mm_min_pd(__m128d a, __m128d b)
MINPS
__m128 _mm_min_ps(__m128 a, __m128 b)
MINSD
__m128d _mm_min_sd(__m128d a, __m128d b)
MINSS
__m128 _mm_min_ss(__m128 a, __m128 b)
MONITOR
void _mm_monitor(void const *p, unsigned extensions, unsigned hints)
MOVAPD
__m128d _mm_load_pd(double * p)
void_mm_store_pd(double *p, __m128d a)
Vol. 2D C-5
INTEL® C/C++ COMPILER INTRINSICS AND FUNCTIONAL EQUIVALENTS
Table C-1. Simple Intrinsics (Contd.)
Mnemonic
Intrinsic
MOVAPS
__m128 _mm_load_ps(float * p)
void_mm_store_ps(float *p, __m128 a)
MOVD
__m128i _mm_cvtsi32_si128(int a)
int _mm_cvtsi128_si32(__m128i a)
__m64 _mm_cvtsi32_si64(int a)
int _mm_cvtsi64_si32(__m64 a)
MOVDDUP
__m128d _mm_movedup_pd(__m128d a)
__m128d _mm_loaddup_pd(double const * dp)
MOVDQA
__m128i _mm_load_si128(__m128i * p)
void_mm_store_si128(__m128i *p, __m128i a)
MOVDQU
__m128i _mm_loadu_si128(__m128i * p)
void_mm_storeu_si128(__m128i *p, __m128i a)
MOVDQ2Q
__m64 _mm_movepi64_pi64(__m128i a)
MOVHLPS
__m128 _mm_movehl_ps(__m128 a, __m128 b)
MOVHPD
__m128d _mm_loadh_pd(__m128d a, double * p)
void _mm_storeh_pd(double * p, __m128d a)
MOVHPS
__m128 _mm_loadh_pi(__m128 a, __m64 * p)
void _mm_storeh_pi(__m64 * p, __m128 a)
MOVLPD
__m128d _mm_loadl_pd(__m128d a, double * p)
void _mm_storel_pd(double * p, __m128d a)
MOVLPS
__m128 _mm_loadl_pi(__m128 a, __m64 *p)
void_mm_storel_pi(__m64 * p, __m128 a)
MOVLHPS
__m128 _mm_movelh_ps(__m128 a, __m128 b)
MOVMSKPD
int _mm_movemask_pd(__m128d a)
MOVMSKPS
int _mm_movemask_ps(__m128 a)
MOVNTDQA
__m128i _mm_stream_load_si128(__m128i *p)
MOVNTDQ
void_mm_stream_si128(__m128i * p, __m128i a)
MOVNTPD
void_mm_stream_pd(double * p, __m128d a)
MOVNTPS
void_mm_stream_ps(float * p, __m128 a)
MOVNTI
void_mm_stream_si32(int * p, int a)
MOVNTQ
void_mm_stream_pi(__m64 * p, __m64 a)
MOVQ
__m128i _mm_loadl_epi64(__m128i * p)
void_mm_storel_epi64(_m128i * p, __m128i a)
__m128i _mm_move_epi64(__m128i a)
MOVQ2DQ
__m128i _mm_movpi64_epi64(__m64 a)
MOVSD
__m128d _mm_load_sd(double * p)
void_mm_store_sd(double * p, __m128d a)
__m128d _mm_move_sd(__m128d a, __m128d b)
MOVSHDUP
__m128 _mm_movehdup_ps(__m128 a)
MOVSLDUP
__m128 _mm_moveldup_ps(__m128 a)
MOVSS
__m128 _mm_load_ss(float * p)
C-6
Vol. 2D
INTEL® C/C++ COMPILER INTRINSICS AND FUNCTIONAL EQUIVALENTS
Table C-1. Simple Intrinsics (Contd.)
Mnemonic
Intrinsic
void_mm_store_ss(float * p, __m128 a)
__m128 _mm_move_ss(__m128 a, __m128 b)
MOVUPD
__m128d _mm_loadu_pd(double * p)
void_mm_storeu_pd(double *p, __m128d a)
MOVUPS
__m128 _mm_loadu_ps(float * p)
void_mm_storeu_ps(float *p, __m128 a)
MPSADBW
__m128i _mm_mpsadbw_epu8(__m128i s1, __m128i s2, const int mask)
MULPD
__m128d _mm_mul_pd(__m128d a, __m128d b)
MULPS
__m128 _mm_mul_ss(__m128 a, __m128 b)
MULSD
__m128d _mm_mul_sd(__m128d a, __m128d b)
MULSS
__m128 _mm_mul_ss(__m128 a, __m128 b)
MWAIT
void _mm_mwait(unsigned extensions, unsigned hints)
ORPD
__m128d _mm_or_pd(__m128d a, __m128d b)
ORPS
__m128 _mm_or_ps(__m128 a, __m128 b)
PABSB
__m64 _mm_abs_pi8 (__m64 a)
__m128i _mm_abs_epi8 (__m128i a)
PABSD
__m64 _mm_abs_pi32 (__m64 a)
__m128i _mm_abs_epi32 (__m128i a)
PABSW
__m64 _mm_abs_pi16 (__m64 a)
__m128i _mm_abs_epi16 (__m128i a)
PACKSSWB
__m128i _mm_packs_epi16(__m128i m1, __m128i m2)
PACKSSWB
__m64 _mm_packs_pi16(__m64 m1, __m64 m2)
PACKSSDW
__m128i _mm_packs_epi32 (__m128i m1, __m128i m2)
PACKSSDW
__m64 _mm_packs_pi32 (__m64 m1, __m64 m2)
PACKUSDW
__m128i _mm_packus_epi32(__m128i m1, __m128i m2)
PACKUSWB
__m128i _mm_packus_epi16(__m128i m1, __m128i m2)
PACKUSWB
__m64 _mm_packs_pu16(__m64 m1, __m64 m2)
PADDB
__m128i _mm_add_epi8(__m128i m1, __m128i m2)
PADDB
__m64 _mm_add_pi8(__m64 m1, __m64 m2)
PADDW
__m128i _mm_add_epi16(__m128i m1, __m128i m2)
PADDW
__m64 _mm_add_pi16(__m64 m1, __m64 m2)
PADDD
__m128i _mm_add_epi32(__m128i m1, __m128i m2)
PADDD
__m64 _mm_add_pi32(__m64 m1, __m64 m2)
PADDQ
__m128i _mm_add_epi64(__m128i m1, __m128i m2)
PADDQ
__m64 _mm_add_si64(__m64 m1, __m64 m2)
PADDSB
__m128i _mm_adds_epi8(__m128i m1, __m128i m2)
PADDSB
__m64 _mm_adds_pi8(__m64 m1, __m64 m2)
PADDSW
__m128i _mm_adds_epi16(__m128i m1, __m128i m2)
PADDSW
__m64 _mm_adds_pi16(__m64 m1, __m64 m2)
PADDUSB
__m128i _mm_adds_epu8(__m128i m1, __m128i m2)
PADDUSB
__m64 _mm_adds_pu8(__m64 m1, __m64 m2)
Vol. 2D C-7
INTEL® C/C++ COMPILER INTRINSICS AND FUNCTIONAL EQUIVALENTS
Table C-1. Simple Intrinsics (Contd.)
Mnemonic
Intrinsic
PADDUSW
__m128i _mm_adds_epu16(__m128i m1, __m128i m2)
PADDUSW
__m64 _mm_adds_pu16(__m64 m1, __m64 m2)
PALIGNR
__m64 _mm_alignr_pi8 (__m64 a, __m64 b, int n)
__m128i _mm_alignr_epi8 (__m128i a, __m128i b, int n)
PAND
__m128i _mm_and_si128(__m128i m1, __m128i m2)
PAND
__m64 _mm_and_si64(__m64 m1, __m64 m2)
PANDN
__m128i _mm_andnot_si128(__m128i m1, __m128i m2)
PANDN
__m64 _mm_andnot_si64(__m64 m1, __m64 m2)
PAUSE
void _mm_pause(void)
PAVGB
__m128i _mm_avg_epu8(__m128i a, __m128i b)
PAVGB
__m64 _mm_avg_pu8(__m64 a, __m64 b)
PAVGW
__m128i _mm_avg_epu16(__m128i a, __m128i b)
PAVGW
__m64 _mm_avg_pu16(__m64 a, __m64 b)
PBLENDVB
__m128i _mm_blendv_epi (__m128i v1, __m128i v2, __m128i mask)
PBLENDW
__m128i _mm_blend_epi16(__m128i v1, __m128i v2, const int mask)
PCLMULQDQ
__m128i _mm_clmulepi64_si128 (__m128i, __m128i, const int)
PCMPEQB
__m128i _mm_cmpeq_epi8(__m128i m1, __m128i m2)
PCMPEQB
__m64 _mm_cmpeq_pi8(__m64 m1, __m64 m2)
PCMPEQQ
__m128i _mm_cmpeq_epi64(__m128i a, __m128i b)
PCMPEQW
__m128i _mm_cmpeq_epi16 (__m128i m1, __m128i m2)
PCMPEQW
__m64 _mm_cmpeq_pi16 (__m64 m1, __m64 m2)
PCMPEQD
__m128i _mm_cmpeq_epi32(__m128i m1, __m128i m2)
PCMPEQD
__m64 _mm_cmpeq_pi32(__m64 m1, __m64 m2)
PCMPESTRI
int _mm_cmpestri (__m128i a, int la, __m128i b, int lb, const int mode)
int _mm_cmpestra (__m128i a, int la, __m128i b, int lb, const int mode)
int _mm_cmpestrc (__m128i a, int la, __m128i b, int lb, const int mode)
int _mm_cmpestro (__m128i a, int la, __m128i b, int lb, const int mode)
int _mm_cmpestrs (__m128i a, int la, __m128i b, int lb, const int mode)
int _mm_cmpestrz (__m128i a, int la, __m128i b, int lb, const int mode)
PCMPESTRM
__m128i _mm_cmpestrm (__m128i a, int la, __m128i b, int lb, const int mode)
int _mm_cmpestra (__m128i a, int la, __m128i b, int lb, const int mode)
int _mm_cmpestrc (__m128i a, int la, __m128i b, int lb, const int mode)
int _mm_cmpestro (__m128i a, int la, __m128i b, int lb, const int mode)
int _mm_cmpestrs (__m128i a, int la, __m128i b, int lb, const int mode)
int _mm_cmpestrz (__m128i a, int la, __m128i b, int lb, const int mode)
PCMPGTB
__m128i _mm_cmpgt_epi8 (__m128i m1, __m128i m2)
PCMPGTB
__m64 _mm_cmpgt_pi8 (__m64 m1, __m64 m2)
PCMPGTW
__m128i _mm_cmpgt_epi16(__m128i m1, __m128i m2)
PCMPGTW
__m64 _mm_cmpgt_pi16 (__m64 m1, __m64 m2)
PCMPGTD
__m128i _mm_cmpgt_epi32(__m128i m1, __m128i m2)
PCMPGTD
__m64 _mm_cmpgt_pi32(__m64 m1, __m64 m2)
C-8
Vol. 2D
INTEL® C/C++ COMPILER INTRINSICS AND FUNCTIONAL EQUIVALENTS
Table C-1. Simple Intrinsics (Contd.)
Mnemonic
Intrinsic
PCMPISTRI
__m128i _mm_cmpestrm (__m128i a, int la, __m128i b, int lb, const int mode)
int _mm_cmpestra (__m128i a, int la, __m128i b, int lb, const int mode)
int _mm_cmpestrc (__m128i a, int la, __m128i b, int lb, const int mode)
int _mm_cmpestro (__m128i a, int la, __m128i b, int lb, const int mode)
int _mm_cmpestrs (__m128i a, int la, __m128i b, int lb, const int mode)
int _mm_cmpistrz (__m128i a, __m128i b, const int mode)
PCMPISTRM
__m128i _mm_cmpistrm (__m128i a, __m128i b, const int mode)
int _mm_cmpistra (__m128i a, __m128i b, const int mode)
int _mm_cmpistrc (__m128i a, __m128i b, const int mode)
int _mm_cmpistro (__m128i a, __m128i b, const int mode)
int _mm_cmpistrs (__m128i a, __m128i b, const int mode)
int _mm_cmpistrz (__m128i a, __m128i b, const int mode)
PCMPGTQ
__m128i _mm_cmpgt_epi64(__m128i a, __m128i b)
PEXTRB
int _mm_extract_epi8 (__m128i src, const int ndx)
PEXTRD
int _mm_extract_epi32 (__m128i src, const int ndx)
PEXTRQ
__int64 _mm_extract_epi64 (__m128i src, const int ndx)
PEXTRW
int _mm_extract_epi16(__m128i a, int n)
PEXTRW
int _mm_extract_pi16(__m64 a, int n)
int _mm_extract_epi16 (__m128i src, int ndx)
PHADDD
__m64 _mm_hadd_pi32 (__m64 a, __m64 b)
__m128i _mm_hadd_epi32 (__m128i a, __m128i b)
PHADDSW
__m64 _mm_hadds_pi16 (__m64 a, __m64 b)
__m128i _mm_hadds_epi16 (__m128i a, __m128i b)
PHADDW
__m64 _mm_hadd_pi16 (__m64 a, __m64 b)
__m128i _mm_hadd_epi16 (__m128i a, __m128i b)
PHMINPOSUW
__m128i _mm_minpos_epu16( __m128i packed_words)
PHSUBD
__m64 _mm_hsub_pi32 (__m64 a, __m64 b)
__m128i _mm_hsub_epi32 (__m128i a, __m128i b)
PHSUBSW
__m64 _mm_hsubs_pi16 (__m64 a, __m64 b)
__m128i _mm_hsubs_epi16 (__m128i a, __m128i b)
PHSUBW
__m64 _mm_hsub_pi16 (__m64 a, __m64 b)
__m128i _mm_hsub_epi16 (__m128i a, __m128i b)
PINSRB
__m128i _mm_insert_epi8(__m128i s1, int s2, const int ndx)
PINSRD
__m128i _mm_insert_epi32(__m128i s2, int s, const int ndx)
PINSRQ
__m128i _mm_insert_epi64(__m128i s2, __int64 s, const int ndx)
PINSRW
__m128i _mm_insert_epi16(__m128i a, int d, int n)
PINSRW
__m64 _mm_insert_pi16(__m64 a, int d, int n)
PMADDUBSW
__m64 _mm_maddubs_pi16 (__m64 a, __m64 b)
__m128i _mm_maddubs_epi16 (__m128i a, __m128i b)
PMADDWD
__m128i _mm_madd_epi16(__m128i m1 __m128i m2)
PMADDWD
__m64 _mm_madd_pi16(__m64 m1, __m64 m2)
Vol. 2D C-9
INTEL® C/C++ COMPILER INTRINSICS AND FUNCTIONAL EQUIVALENTS
Table C-1. Simple Intrinsics (Contd.)
Mnemonic
Intrinsic
PMAXSB
__m128i _mm_max_epi8( __m128i a, __m128i b)
PMAXSD
__m128i _mm_max_epi32( __m128i a, __m128i b)
PMAXSW
__m128i _mm_max_epi16(__m128i a, __m128i b)
PMAXSW
__m64 _mm_max_pi16(__m64 a, __m64 b)
PMAXUB
__m128i _mm_max_epu8(__m128i a, __m128i b)
PMAXUB
__m64 _mm_max_pu8(__m64 a, __m64 b)
PMAXUD
__m128i _mm_max_epu32( __m128i a, __m128i b)
PMAXUW
__m128i _mm_max_epu16( __m128i a, __m128i b)
PMINSB
_m128i _mm_min_epi8( __m128i a, __m128i b)
PMINSD
__m128i _mm_min_epi32( __m128i a, __m128i b)
PMINSW
__m128i _mm_min_epi16(__m128i a, __m128i b)
PMINSW
__m64 _mm_min_pi16(__m64 a, __m64 b)
PMINUB
__m128i _mm_min_epu8(__m128i a, __m128i b)
PMINUB
__m64 _mm_min_pu8(__m64 a, __m64 b)
PMINUD
__m128i _mm_min_epu32 ( __m128i a, __m128i b)
PMINUW
__m128i _mm_min_epu16 ( __m128i a, __m128i b)
PMOVMSKB
int _mm_movemask_epi8(__m128i a)
PMOVMSKB
int _mm_movemask_pi8(__m64 a)
PMOVSXBW
__m128i _mm_ cvtepi8_epi16( __m128i a)
PMOVSXBD
__m128i _mm_ cvtepi8_epi32( __m128i a)
PMOVSXBQ
__m128i _mm_ cvtepi8_epi64( __m128i a)
PMOVSXWD
__m128i _mm_ cvtepi16_epi32( __m128i a)
PMOVSXWQ
__m128i _mm_ cvtepi16_epi64( __m128i a)
PMOVSXDQ
__m128i _mm_ cvtepi32_epi64( __m128i a)
PMOVZXBW
__m128i _mm_ cvtepu8_epi16( __m128i a)
PMOVZXBD
__m128i _mm_ cvtepu8_epi32( __m128i a)
PMOVZXBQ
__m128i _mm_ cvtepu8_epi64( __m128i a)
PMOVZXWD
__m128i _mm_ cvtepu16_epi32( __m128i a)
PMOVZXWQ
__m128i _mm_ cvtepu16_epi64( __m128i a)
PMOVZXDQ
__m128i _mm_ cvtepu32_epi64( __m128i a)
PMULDQ
__m128i _mm_mul_epi32( __m128i a, __m128i b)
PMULHRSW
__m64 _mm_mulhrs_pi16 (__m64 a, __m64 b)
__m128i _mm_mulhrs_epi16 (__m128i a, __m128i b)
PMULHUW
__m128i _mm_mulhi_epu16(__m128i a, __m128i b)
PMULHUW
__m64 _mm_mulhi_pu16(__m64 a, __m64 b)
PMULHW
__m128i _mm_mulhi_epi16(__m128i m1, __m128i m2)
PMULHW
__m64 _mm_mulhi_pi16(__m64 m1, __m64 m2)
PMULLUD
__m128i _mm_mullo_epi32(__m128i a, __m128i b)
PMULLW
__m128i _mm_mullo_epi16(__m128i m1, __m128i m2)
PMULLW
__m64 _mm_mullo_pi16(__m64 m1, __m64 m2)
C-10
Vol. 2D
INTEL® C/C++ COMPILER INTRINSICS AND FUNCTIONAL EQUIVALENTS
Table C-1. Simple Intrinsics (Contd.)
Mnemonic
Intrinsic
PMULUDQ
__m64 _mm_mul_su32(__m64 m1, __m64 m2)
__m128i _mm_mul_epu32(__m128i m1, __m128i m2)
POPCNT
int _mm_popcnt_u32(unsigned int a)
int64_t _mm_popcnt_u64(unsigned __int64 a)
POR
__m64 _mm_or_si64(__m64 m1, __m64 m2)
POR
__m128i _mm_or_si128(__m128i m1, __m128i m2)
PREFETCHh
void _mm_prefetch(char *a, int sel)
PSADBW
__m128i _mm_sad_epu8(__m128i a, __m128i b)
PSADBW
__m64 _mm_sad_pu8(__m64 a, __m64 b)
PSHUFB
__m64 _mm_shuffle_pi8 (__m64 a, __m64 b)
__m128i _mm_shuffle_epi8 (__m128i a, __m128i b)
PSHUFD
__m128i _mm_shuffle_epi32(__m128i a, int n)
PSHUFHW
__m128i _mm_shufflehi_epi16(__m128i a, int n)
PSHUFLW
__m128i _mm_shufflelo_epi16(__m128i a, int n)
PSHUFW
__m64 _mm_shuffle_pi16(__m64 a, int n)
PSIGNB
__m64 _mm_sign_pi8 (__m64 a, __m64 b)
__m128i _mm_sign_epi8 (__m128i a, __m128i b)
PSIGND
__m64 _mm_sign_pi32 (__m64 a, __m64 b)
__m128i _mm_sign_epi32 (__m128i a, __m128i b)
PSIGNW
__m64 _mm_sign_pi16 (__m64 a, __m64 b)
__m128i _mm_sign_epi16 (__m128i a, __m128i b)
PSLLW
__m128i _mm_sll_epi16(__m128i m, __m128i count)
PSLLW
__m128i _mm_slli_epi16(__m128i m, int count)
PSLLW
__m64 _mm_sll_pi16(__m64 m, __m64 count)
__m64 _mm_slli_pi16(__m64 m, int count)
PSLLD
__m128i _mm_slli_epi32(__m128i m, int count)
__m128i _mm_sll_epi32(__m128i m, __m128i count)
PSLLD
__m64 _mm_slli_pi32(__m64 m, int count)
__m64 _mm_sll_pi32(__m64 m, __m64 count)
PSLLQ
__m64 _mm_sll_si64(__m64 m, __m64 count)
__m64 _mm_slli_si64(__m64 m, int count)
PSLLQ
__m128i _mm_sll_epi64(__m128i m, __m128i count)
__m128i _mm_slli_epi64(__m128i m, int count)
PSLLDQ
__m128i _mm_slli_si128(__m128i m, int imm)
PSRAW
__m128i _mm_sra_epi16(__m128i m, __m128i count)
__m128i _mm_srai_epi16(__m128i m, int count)
PSRAW
__m64 _mm_sra_pi16(__m64 m, __m64 count)
__m64 _mm_srai_pi16(__m64 m, int count)
PSRAD
__m128i _mm_sra_epi32 (__m128i m, __m128i count)
__m128i _mm_srai_epi32 (__m128i m, int count)
PSRAD
__m64 _mm_sra_pi32 (__m64 m, __m64 count)
Vol. 2D C-11
INTEL® C/C++ COMPILER INTRINSICS AND FUNCTIONAL EQUIVALENTS
Table C-1. Simple Intrinsics (Contd.)
Mnemonic
Intrinsic
__m64 _mm_srai_pi32 (__m64 m, int count)
PSRLW
_m128i _mm_srl_epi16 (__m128i m, __m128i count)
__m128i _mm_srli_epi16 (__m128i m, int count)
__m64 _mm_srl_pi16 (__m64 m, __m64 count)
__m64 _mm_srli_pi16(__m64 m, int count)
PSRLD
__m128i _mm_srl_epi32 (__m128i m, __m128i count)
__m128i _mm_srli_epi32 (__m128i m, int count)
PSRLD
__m64 _mm_srl_pi32 (__m64 m, __m64 count)
__m64 _mm_srli_pi32 (__m64 m, int count)
PSRLQ
__m128i _mm_srl_epi64 (__m128i m, __m128i count)
__m128i _mm_srli_epi64 (__m128i m, int count)
PSRLQ
__m64 _mm_srl_si64 (__m64 m, __m64 count)
__m64 _mm_srli_si64 (__m64 m, int count)
PSRLDQ
__m128i _mm_srli_si128(__m128i m, int imm)
PSUBB
__m128i _mm_sub_epi8(__m128i m1, __m128i m2)
PSUBB
__m64 _mm_sub_pi8(__m64 m1, __m64 m2)
PSUBW
__m128i _mm_sub_epi16(__m128i m1, __m128i m2)
PSUBW
__m64 _mm_sub_pi16(__m64 m1, __m64 m2)
PSUBD
__m128i _mm_sub_epi32(__m128i m1, __m128i m2)
PSUBD
__m64 _mm_sub_pi32(__m64 m1, __m64 m2)
PSUBQ
__m128i _mm_sub_epi64(__m128i m1, __m128i m2)
PSUBQ
__m64 _mm_sub_si64(__m64 m1, __m64 m2)
PSUBSB
__m128i _mm_subs_epi8(__m128i m1, __m128i m2)
PSUBSB
__m64 _mm_subs_pi8(__m64 m1, __m64 m2)
PSUBSW
__m128i _mm_subs_epi16(__m128i m1, __m128i m2)
PSUBSW
__m64 _mm_subs_pi16(__m64 m1, __m64 m2)
PSUBUSB
__m128i _mm_subs_epu8(__m128i m1, __m128i m2)
PSUBUSB
__m64 _mm_subs_pu8(__m64 m1, __m64 m2)
PSUBUSW
__m128i _mm_subs_epu16(__m128i m1, __m128i m2)
PSUBUSW
__m64 _mm_subs_pu16(__m64 m1, __m64 m2)
PTEST
int _mm_testz_si128(__m128i s1, __m128i s2)
int _mm_testc_si128(__m128i s1, __m128i s2)
int _mm_testnzc_si128(__m128i s1, __m128i s2)
PUNPCKHBW
__m64 _mm_unpackhi_pi8(__m64 m1, __m64 m2)
PUNPCKHBW
__m128i _mm_unpackhi_epi8(__m128i m1, __m128i m2)
PUNPCKHWD
__m64 _mm_unpackhi_pi16(__m64 m1,__m64 m2)
PUNPCKHWD
__m128i _mm_unpackhi_epi16(__m128i m1, __m128i m2)
PUNPCKHDQ
___m64 _mm_unpackhi_pi32(__m64 m1, __m64 m2)
PUNPCKHDQ
__m128i _mm_unpackhi_epi32(__m128i m1, __m128i m2)
PUNPCKHQDQ
__m128i _mm_unpackhi_epi64(__m128i m1, __m128i m2)
PUNPCKLBW
__m64 _mm_unpacklo_pi8 (__m64 m1, __m64 m2)
C-12
Vol. 2D
INTEL® C/C++ COMPILER INTRINSICS AND FUNCTIONAL EQUIVALENTS
Table C-1. Simple Intrinsics (Contd.)
Mnemonic
Intrinsic
PUNPCKLBW
__m128i _mm_unpacklo_epi8 (__m128i m1, __m128i m2)
PUNPCKLWD
__m64 _mm_unpacklo_pi16(__m64 m1, __m64 m2)
PUNPCKLWD
__m128i _mm_unpacklo_epi16(__m128i m1, __m128i m2)
PUNPCKLDQ
__m64 _mm_unpacklo_pi32(__m64 m1, __m64 m2)
PUNPCKLDQ
__m128i _mm_unpacklo_epi32(__m128i m1, __m128i m2)
PUNPCKLQDQ
__m128i _mm_unpacklo_epi64(__m128i m1, __m128i m2)
PXOR
__m64 _mm_xor_si64(__m64 m1, __m64 m2)
PXOR
__m128i _mm_xor_si128(__m128i m1, __m128i m2)
RCPPS
__m128 _mm_rcp_ps(__m128 a)
RCPSS
__m128 _mm_rcp_ss(__m128 a)
ROUNDPD
__m128 mm_round_pd(__m128d s1, int iRoundMode)
__m128 mm_floor_pd(__m128d s1)
__m128 mm_ceil_pd(__m128d s1)
ROUNDPS
__m128 mm_round_ps(__m128 s1, int iRoundMode)
__m128 mm_floor_ps(__m128 s1)
__m128 mm_ceil_ps(__m128 s1)
ROUNDSD
__m128d mm_round_sd(__m128d dst, __m128d s1, int iRoundMode)
__m128d mm_floor_sd(__m128d dst, __m128d s1)
__m128d mm_ceil_sd(__m128d dst, __m128d s1)
ROUNDSS
__m128 mm_round_ss(__m128 dst, __m128 s1, int iRoundMode)
__m128 mm_floor_ss(__m128 dst, __m128 s1)
__m128 mm_ceil_ss(__m128 dst, __m128 s1)
RSQRTPS
__m128 _mm_rsqrt_ps(__m128 a)
RSQRTSS
__m128 _mm_rsqrt_ss(__m128 a)
SFENCE
void_mm_sfence(void)
SHUFPD
__m128d _mm_shuffle_pd(__m128d a, __m128d b, unsigned int imm8)
SHUFPS
__m128 _mm_shuffle_ps(__m128 a, __m128 b, unsigned int imm8)
SQRTPD
__m128d _mm_sqrt_pd(__m128d a)
SQRTPS
__m128 _mm_sqrt_ps(__m128 a)
SQRTSD
__m128d _mm_sqrt_sd(__m128d a)
SQRTSS
__m128 _mm_sqrt_ss(__m128 a)
STMXCSR
_mm_getcsr(void)
SUBPD
__m128d _mm_sub_pd(__m128d a, __m128d b)
SUBPS
__m128 _mm_sub_ps(__m128 a, __m128 b)
SUBSD
__m128d _mm_sub_sd(__m128d a, __m128d b)
SUBSS
__m128 _mm_sub_ss(__m128 a, __m128 b)
UCOMISD
int _mm_ucomieq_sd(__m128d a, __m128d b)
int _mm_ucomilt_sd(__m128d a, __m128d b)
int _mm_ucomile_sd(__m128d a, __m128d b)
int _mm_ucomigt_sd(__m128d a, __m128d b)
int _mm_ucomige_sd(__m128d a, __m128d b)
Vol. 2D C-13
INTEL® C/C++ COMPILER INTRINSICS AND FUNCTIONAL EQUIVALENTS
Table C-1. Simple Intrinsics (Contd.)
Mnemonic
Intrinsic
int _mm_ucomineq_sd(__m128d a, __m128d b)
UCOMISS
int _mm_ucomieq_ss(__m128 a, __m128 b)
int _mm_ucomilt_ss(__m128 a, __m128 b)
int _mm_ucomile_ss(__m128 a, __m128 b)
int _mm_ucomigt_ss(__m128 a, __m128 b)
int _mm_ucomige_ss(__m128 a, __m128 b)
int _mm_ucomineq_ss(__m128 a, __m128 b)
UNPCKHPD
__m128d _mm_unpackhi_pd(__m128d a, __m128d b)
UNPCKHPS
__m128 _mm_unpackhi_ps(__m128 a, __m128 b)
UNPCKLPD
__m128d _mm_unpacklo_pd(__m128d a, __m128d b)
UNPCKLPS
__m128 _mm_unpacklo_ps(__m128 a, __m128 b)
XORPD
__m128d _mm_xor_pd(__m128d a, __m128d b)
XORPS
__m128 _mm_xor_ps(__m128 a, __m128 b)
C.2
COMPOSITE INTRINSICS
Table C-2. Composite Intrinsics
Mnemonic
Intrinsic
(composite)
__m128i _mm_set_epi64(__m64 q1, __m64 q0)
(composite)
__m128i _mm_set_epi32(int i3, int i2, int i1, int i0)
(composite)
__m128i _mm_set_epi16(short w7,short w6, short w5, short w4, short w3, short w2,
short w1,short w0)
(composite)
__m128i _mm_set_epi8(char w15,char w14, char w13, char w12, char w11, char w10,
char w9, char w8, char w7,char w6, char w5, char w4, char w3, char w2,char w1, char w0)
(composite)
__m128i _mm_set1_epi64(__m64 q)
(composite)
__m128i _mm_set1_epi32(int a)
(composite)
__m128i _mm_set1_epi16(short a)
(composite)
__m128i _mm_set1_epi8(char a)
(composite)
__m128i _mm_setr_epi64(__m64 q1, __m64 q0)
(composite)
__m128i _mm_setr_epi32(int i3, int i2, int i1, int i0)
(composite)
__m128i _mm_setr_epi16(short w7,short w6, short w5, short w4, short w3, short w2, short w,
short w0)
(composite)
__m128i _mm_setr_epi8(char w15,char w14, char w13, char w12, char w11, char w10,
char w9, char w8,char w7, char w6,char w5, char w4, char w3, char w2,char w1,char w0)
(composite)
__m128i _mm_setzero_si128()
(composite)
__m128 _mm_set_ps1(float w)
__m128 _mm_set1_ps(float w)
(composite)
__m128cmm_set1_pd(double w)
(composite)
__m128d _mm_set_sd(double w)
(composite)
__m128d _mm_set_pd(double z, double y)
(composite)
__m128 _mm_set_ps(float z, float y, float x, float w)
(composite)
__m128d _mm_setr_pd(double z, double y)
(composite)
__m128 _mm_setr_ps(float z, float y, float x, float w)
C-14
Vol. 2D
INTEL® C/C++ COMPILER INTRINSICS AND FUNCTIONAL EQUIVALENTS
Table C-2. Composite Intrinsics (Contd.)
Mnemonic
Intrinsic
(composite)
__m128d _mm_setzero_pd(void)
(composite)
__m128 _mm_setzero_ps(void)
MOVSD + shuffle
__m128d _mm_load_pd(double * p)
__m128d _mm_load1_pd(double *p)
MOVSS + shuffle
__m128 _mm_load_ps1(float * p)
__m128 _mm_load1_ps(float *p)
MOVAPD + shuffle
__m128d _mm_loadr_pd(double * p)
MOVAPS + shuffle
__m128 _mm_loadr_ps(float * p)
MOVSD + shuffle
void _mm_store1_pd(double *p, __m128d a)
MOVSS + shuffle
void _mm_store_ps1(float * p, __m128 a)
void _mm_store1_ps(float *p, __m128 a)
MOVAPD + shuffle
_mm_storer_pd(double * p, __m128d a)
MOVAPS + shuffle
_mm_storer_ps(float * p, __m128 a)
Vol. 2D C-15
|