x86 Compiler Intrinsics
3623 intrinsics from the Intel® SDM, each mapped to the instruction it compiles to - page 35 of 37, alphabetical. The global search in the top nav also matches intrinsic names directly.
| Intrinsic | Instruction | Signature |
|---|---|---|
| _mm_sfence | sfence | void _mm_sfence(void) |
| _mm_sha1msg1_epu32 | sha1msg1 | SHA1MSG1 __m128i _mm_sha1msg1_epu32(__m128i, __m128i); |
| _mm_sha1msg2_epu32 | sha1msg2 | SHA1MSG2 __m128i _mm_sha1msg2_epu32(__m128i, __m128i); |
| _mm_sha1nexte_epu32 | sha1nexte | SHA1NEXTE __m128i _mm_sha1nexte_epu32(__m128i, __m128i); |
| _mm_sha1rnds4_epu32 | sha1rnds4 | SHA1RNDS4 __m128i _mm_sha1rnds4_epu32(__m128i, __m128i, const int); |
| _mm_sha256msg1_epu32 | sha256msg1 | SHA256MSG1 __m128i _mm_sha256msg1_epu32(__m128i, __m128i); |
| _mm_sha256msg2_epu32 | sha256msg2 | SHA256MSG2 __m128i _mm_sha256msg2_epu32(__m128i, __m128i); |
| _mm_sha256rnds2_epu32 | sha256rnds2 | SHA256RNDS2 __m128i _mm_sha256rnds2_epu32(__m128i, __m128i, __m128i); |
| _mm_shldi_epi16 | vpshldw | VPSHLDW __m128i _mm_shldi_epi16(__m128i, __m128i, int); |
| _mm_shldi_epi32 | vpshldd | VPSHLDD __m128i _mm_shldi_epi32(__m128i, __m128i, int); |
| _mm_shldi_epi64 | vpshldq | VPSHLDQ __m128i _mm_shldi_epi64(__m128i, __m128i, int); |
| _mm_shrdi_epi16 | vpshrdw | VPSHRDW __m128i _mm_shrdi_epi16(__m128i, __m128i, int); |
| _mm_shrdi_epi32 | vpshrdd | VPSHRDD __m128i _mm_shrdi_epi32(__m128i, __m128i, int); |
| _mm_shrdi_epi64 | vpshrdq | VPSHRDQ __m128i _mm_shrdi_epi64(__m128i, __m128i, int); |
| _mm_shuffle_epi32 | pshufd | (V)PSHUFD __m128i _mm_shuffle_epi32(__m128i a, int n) |
| _mm_shuffle_epi8 | pshufb | (V)PSHUFB: __m128i _mm_shuffle_epi8 (__m128i a, __m128i b) |
| _mm_shuffle_pd | shufpd | SHUFPD __m128d _mm_shuffle_pd (__m128d a, __m128d b, const int select); |
| _mm_shuffle_pi8 | pshufb | PSHUFB: __m64 _mm_shuffle_pi8 (__m64 a, __m64 b) |
| _mm_shuffle_ps | shufps | SHUFPS __m128 _mm_shuffle_ps (__m128 a, __m128 b, const int select); |
| _mm_shufflehi_epi16 | pshufhw | (V)PSHUFHW __m128i _mm_shufflehi_epi16(__m128i a, int n) |
| _mm_shufflelo_epi16 | pshuflw | (V)PSHUFLW:__m128i _mm_shufflelo_epi16(__m128i a, int n) |
| _mm_sign_epi16 | psignb | (V)PSIGNW __m128i _mm_sign_epi16 (__m128i a, __m128i b) |
| _mm_sign_epi32 | psignb | (V)PSIGND __m128i _mm_sign_epi32 (__m128i a, __m128i b) |
| _mm_sign_epi8 | psignb | (V)PSIGNB __m128i _mm_sign_epi8 (__m128i a, __m128i b) |
| _mm_sign_pi16 | psignb | PSIGNW __m64 _mm_sign_pi16 (__m64 a, __m64 b) |
| _mm_sign_pi32 | psignb | PSIGND __m64 _mm_sign_pi32 (__m64 a, __m64 b) |
| _mm_sign_pi8 | psignb | PSIGNB __m64 _mm_sign_pi8 (__m64 a, __m64 b) |
| _mm_sll_epi16 | psllw | (V)PSLLW __m128i _mm_sll_epi16(__m128i m, __m128i count) |
| _mm_sll_epi32 | psllw | (V)PSLLD __m128i _mm_sll_epi32(__m128i m, __m128i count) |
| _mm_sll_epi64 | psllw | (V)PSLLQ __m128i _mm_sll_epi64(__m128i m, __m128i count) |
| _mm_sll_pi16 | psllw | PSLLW __m64 _mm_sll_pi16(__m64 m, __m64 count) |
| _mm_sll_pi32 | pslld | PSLLD __m64 _mm_sll_pi32(__m64 m, __m64 count) |
| _mm_sll_si64 | psllq | PSLLQ __m64 _mm_sll_si64(__m64 m, __m64 count) |
| _mm_slli_epi16 | psllw | (V)PSLLW __m128i _mm_slli_epi16(__m64 m, int count) |
| _mm_slli_epi32 | psllw | (V)PSLLD __m128i _mm_slli_epi32(__m128i m, int count) |
| _mm_slli_epi64 | psllw | (V)PSLLQ __m128i _mm_slli_epi64(__m128i m, int count) |
| _mm_slli_pi16 | psllw | PSLLW __m64 _mm_slli_pi16 (__m64 m, int count) |
| _mm_slli_pi32 | pslld | PSLLD __m64 _mm_slli_pi32(__m64 m, int count) |
| _mm_slli_si128 | pslldq | (V)PSLLDQ __m128i _mm_slli_si128 ( __m128i a, int imm) |
| _mm_slli_si64 | psllq | PSLLQ __m64 _mm_slli_si64(__m64 m, int count) |
| _mm_sm3msg1_epi32 | vsm3msg1 | VSM3MSG1 __m128i _mm_sm3msg1_epi32 (__m128i __A, __m128i __B, __m128i __C); |
| _mm_sm3rnds2_epi32 | vsm3rnds2 | VSM3RNDS2 __m128i _mm_sm3rnds2_epi32 (__m128i __A, __m128i __B, __m128i __C, const int imm8); |
| _mm_sm4key4_epi32 | vsm4key4 | VSM4KEY4 __m128i _mm_sm4key4_epi32 (__m128i __A, __m128i __B); |
| _mm_sm4rnds4_epi32 | vsm4rnds4 | VSM4RNDS4 __m128i _mm_sm4rnds4_epi32 (__m128i __A, __m128i __B); |
| _mm_sqrt_pd | sqrtpd | SQRTPD __m128d _mm_sqrt_pd (__m128d a); |
| _mm_sqrt_ph | vsqrtph | VSQRTPH __m128h _mm_sqrt_ph (__m128h a); |
| _mm_sqrt_ps | sqrtps | SQRTPS __m128 _mm_sqrt_ps (__m128 a); |
| _mm_sqrt_round_sd | sqrtsd | VSQRTSD __m128d _mm_sqrt_round_sd(__m128d a, __m128d b, int r); |
| _mm_sqrt_round_sh | vsqrtsh | VSQRTSH __m128h _mm_sqrt_round_sh (__m128h a, __m128h b, const int rounding); |
| _mm_sqrt_round_ss | sqrtss | VSQRTSS __m128 _mm_sqrt_round_ss(__m128 a, __m128 b, int r); |
| _mm_sqrt_sd | sqrtsd | SQRTSD __m128d _mm_sqrt_sd (__m128d a, __m128d b) |
| _mm_sqrt_sh | vsqrtsh | VSQRTSH __m128h _mm_sqrt_sh (__m128h a, __m128h b); |
| _mm_sqrt_ss | sqrtss | SQRTSS __m128 _mm_sqrt_ss(__m128 a) |
| _mm_sra_epi16 | psraw | (V)PSRAW __m128i _mm_sra_epi16(__m128i m, __m128i count) |
| _mm_sra_epi32 | psraw | (V)PSRAD __m128i _mm_sra_epi32 (__m128i m, __m128i count) |
| _mm_sra_pi16 | psraw | PSRAW __m64 _mm_sra_pi16 (__m64 m, __m64 count) |
| _mm_sra_pi32 | psrad | PSRAD __m64 _mm_sra_pi32 (__m64 m, __m64 count) |
| _mm_srai_epi16 | psraw | (V)PSRAW __m128i _mm_srai_epi16(__m128i m, int count) |
| _mm_srai_epi32 | psraw | (V)PSRAD __m128i _mm_srai_epi32 (__m128i m, int count) |
| _mm_srai_pi16 | psraw | PSRAW __m64 _mm_srai_pi16 (__m64 m, int count) |
| _mm_srai_pi32 | psrad | PSRAD __m64 _mm_srai_pi32 (__m64 m, int count) |
| _mm_srav_epi16 | vpsravd | VPSRAVW __m128i _mm_srav_epi16(__m128i a, __m128i cnt); |
| _mm_srav_epi32 | vpsravd | VPSRAVD __m128i _mm_srav_epi32(__m128i a, __m128i cnt); |
| _mm_srav_epi64 | vpsravq | VPSRAVQ __m128i _mm_srav_epi64(__m128i a, __m128i cnt); |
| _mm_srl_epi16 | psrlw | (V)PSRLW __m128i _mm_srl_epi16 (__m128i m, __m128i count) |
| _mm_srl_epi32 | psrlw | (V)PSRLD __m128i _mm_srl_epi32 (__m128i m, __m128i count) |
| _mm_srl_epi64 | psrlw | (V)PSRLQ __m128i _mm_srl_epi64 (__m128i m, __m128i count) |
| _mm_srl_pi16 | psrlw | PSRLW __m64 _mm_srl_pi16 (__m64 m, __m64 count) |
| _mm_srl_pi32 | psrld | PSRLD __m64 _mm_srl_pi32 (__m64 m, __m64 count) |
| _mm_srl_si64 | psrlq | PSRLQ __m64 _mm_srl_si64 (__m64 m, __m64 count) |
| _mm_srli_epi16 | psrlw | (V)PSRLW __m128i _mm_srli_epi16 (__m128i m, int count) |
| _mm_srli_epi32 | psrlw | (V)PSRLD __m128i _mm_srli_epi32 (__m128i m, int count) |
| _mm_srli_epi64 | psrlw | (V)PSRLQ __m128i _mm_srli_epi64 (__m128i m, int count) |
| _mm_srli_pi16 | psrlw | PSRLW __m64 _mm_srli_pi16(__m64 m, int count) |
| _mm_srli_pi32 | psrld | PSRLD __m64 _mm_srli_pi32 (__m64 m, int count) |
| _mm_srli_si128 | psrldq | (V)PSRLDQ __m128i _mm_srli_si128 ( __m128i a, int imm) |
| _mm_srli_si64 | psrlq | PSRLQ __m64 _mm_srli_si64 (__m64 m, int count) |
| _mm_srlv_epi32 | vpsrlvd | VPSRLVD __m128i _mm_srlv_epi32( __m128i a, __m128i cnt); |
| _mm_srlv_epi64 | vpsrlvq | VPSRLVQ __m128i _mm_srlv_epi64( __m128i a, __m128i cnt); |
| _mm_store_epi32 | movdqa | VMOVDQA32 void _mm_store_epi32(void * d, __m128i a); |
| _mm_store_epi64 | movdqa | VMOVDQA64 void _mm_store_epi64(void * d, __m128i a); |
| _mm_store_pd | movapd | MOVAPD void _mm_store_pd(double * p, __m128d a); |
| _mm_store_ps | movaps | MOVAPS void _mm_store_ps(float * p, __m128 a); |
| _mm_store_sd | movsd | MOVSD void _mm_store_sd (double *p, __m128d a) |
| _mm_store_si128 | movdqa | MOVDQA void _mm_store_si128(__m128i *p, __m128i a); |
| _mm_store_ss | movss | MOVSS void_mm_store_ss(float * p, __m128 a) |
| _mm_storel_epi64 | movq | VMOVQ void _mm_storel_epi64( __m128i * d, __m128i s); |
| _mm_storeu_epi32 | movdqu | VMOVDQU32 void _mm_storeu_epi32(void * d, __m128i a); |
| _mm_storeu_epi64 | movdqu | VMOVDQU64 void _mm_storeu_epi64(void * d, __m128i a); |
| _mm_storeu_pd | movupd | MOVUPD void _mm_storeu_pd( double *p, __m128d a); |
| _mm_storeu_ps | movups | MOVUPS void _mm_storeu_ps( float *p, __m128 a); |
| _mm_storeu_si128 | movdqu | MOVDQU _mm_storeu_si128(__m128i *p, __m128i a); |
| _mm_stream_load_si128 | movntdqa | MOVNTDQA __m128i _mm_stream_load_si128 (const __m128i *p); |
| _mm_stream_pd | movntpd | MOVNTPD void _mm_stream_pd (double * p, __m128d a); |
| _mm_stream_pi | movntq | MOVNTQ void _mm_stream_pi(__m64 * p, __m64 a) |
| _mm_stream_ps | movntps | MOVNTPS void _mm_stream_ps (float * p, __m128d a); |
| _mm_stream_si32 | movnti | MOVNTI void _mm_stream_si32 (int *p, int a) |
| _mm_stream_si64 | movnti | MOVNTI void _mm_stream_si64(__int64 *p, __int64 a) |
| _mm_sub_epi16 | psubb | (V)PSUBW __m128i _mm_sub_epi16 ( __m128i a, __m128i b) |
| _mm_sub_epi32 | psubb | (V)PSUBD __m128i _mm_sub_epi32 ( __m128i a, __m128i b) |