x86 Compiler Intrinsics
3623 intrinsics from the Intel® SDM, each mapped to the instruction it compiles to - page 34 of 37, alphabetical. The global search in the top nav also matches intrinsic names directly.
| Intrinsic | Instruction | Signature |
|---|---|---|
| _mm_min_ss | minss | MINSS __m128 _mm_min_ss(__m128 a, __m128 b) |
| _mm_minpos_epu16 | phminposuw | PHMINPOSUW __m128i _mm_minpos_epu16( __m128i packed_words); |
| _mm_mmask_i32gather_epi32 | vpgatherdd | VPGATHERDD __m128i _mm_mmask_i32gather_epi32(__m128i s, __mmask8 k, __m128i vdx, void * base, int scale); |
| _mm_mmask_i32gather_epi64 | vpgatherdq | VPGATHERDQ __m128i _mm_mmask_i32gather_epi64(__m128i s, __mmask8 k, __m128i vdx, void * base, int scale); |
| _mm_mmask_i32gather_pd | vgatherdpd | VGATHERDPD __m128d _mm_mmask_i32gather_pd(__m128d s, __mmask8 k, __m128i vdx, void * base, int scale); |
| _mm_mmask_i32gather_ps | vgatherdps | GATHERDPS __m128 _mm_mmask_i32gather_ps(__m128 s, __mmask8 k, __m128i vdx, void * base, int scale); |
| _mm_monitor | monitor | MONITOR void _mm_monitor(void const *p, unsigned extensions,unsigned hints) |
| _mm_move_sd | movsd | MOVSD __m128d _mm_move_sd ( __m128d a, __m128d b) |
| _mm_move_ss | movss | MOVSS __m128 _mm_move_ss(__m128 a, __m128 b) |
| _mm_movedup_pd | movddup | MOVDDUP __m128d _mm_movedup_pd (__m128d a); |
| _mm_movehdup_ps | movshdup | VMOVSHDUP __m128 _mm_movehdup_ps (__m128 a); |
| _mm_moveldup_ps | movsldup | VMOVSLDUP __m128 _mm_moveldup_ps (__m128 a); |
| _mm_movemask_epi8 | pmovmskb | (V)PMOVMSKB int _mm_movemask_epi8 ( __m128i a) |
| _mm_movemask_pd | movmskpd | MOVMSKPD int _mm_movemask_pd ( __m128d a) |
| _mm_movemask_pi8 | pmovmskb | PMOVMSKB int _mm_movemask_pi8(__m64 a) |
| _mm_movemask_ps | movmskps | int _mm_movemask_ps(__m128 a) |
| _mm_movepi16_mask | vpmovb2m | VPMPOVW2M __mmask8 _mm_movepi16_mask( __m128i ); |
| _mm_movepi32_mask | vpmovb2m | VPMPOVD2M __mmask8 _mm_movepi32_mask( __m128i ); |
| _mm_movepi64_mask | vpmovb2m | VPMPOVQ2M __mmask8 _mm_movepi64_mask( __m128i ); |
| _mm_movepi8_mask | vpmovb2m | VPMPOVB2M __mmask16 _mm_movepi8_mask( __m128i ); |
| _mm_movm_epi16 | vpmovm2w | VPMOVM2W __m128i _mm_movm_epi16(__mmask8 ); |
| _mm_movm_epi32 | vpmovm2d | VPMOVM2D __m128i _mm_movm_epi32(__mmask8 ); |
| _mm_movm_epi64 | vpmovm2q | VPMOVM2Q __m128i _mm_movm_epi64(__mmask8 ); |
| _mm_movm_epi8 | vpmovm2b | VPMOVM2B __m128i _mm_movm_epi8(__mmask16 ); |
| _mm_mpsadbw_epu8 | mpsadbw | (V)MPSADBW __m128i _mm_mpsadbw_epu8 (__m128i s1, __m128i s2, const int mask); |
| _mm_mul_epu32 | pmuludq | (V)PMULUDQ __m128i _mm_mul_epu32 ( __m128i a, __m128i b) |
| _mm_mul_pd | mulpd | MULPD __m128d _mm_mul_pd (__m128d a, __m128d b); |
| _mm_mul_ph | vmulph | VMULPH __m128h _mm_mul_ph (__m128h a, __m128h b); |
| _mm_mul_ps | mulps | MULPS __m128 _mm_mul_ps (__m128 a, __m128 b); |
| _mm_mul_round_sd | mulsd | VMULSD __m128d _mm_mul_round_sd( __m128d a, __m128d b, int); |
| _mm_mul_round_sh | vmulsh | VMULSH __m128h _mm_mul_round_sh (__m128h a, __m128h b, int rounding); |
| _mm_mul_round_ss | vmulss | VMULSS __m128 _mm_mul_round_ss( __m128 a, __m128 b, int); |
| _mm_mul_sd | mulsd | MULSD __m128d _mm_mul_sd (__m128d a, __m128d b) |
| _mm_mul_sh | vmulsh | VMULSH __m128h _mm_mul_sh (__m128h a, __m128h b); |
| _mm_mul_ss | mulss | MULSS __m128 _mm_mul_ss(__m128 a, __m128 b) |
| _mm_mul_su32 | pmuludq | PMULUDQ __m64 _mm_mul_su32 (__m64 a, __m64 b) |
| _mm_mulhi_epi16 | pmulhw | (V)PMULHW __m128i _mm_mulhi_epi16 ( __m128i a, __m128i b) |
| _mm_mulhi_epu16 | pmulhuw | (V)PMULHUW __m128i _mm_mulhi_epu16 ( __m128i a, __m128i b) |
| _mm_mulhi_pi16 | pmulhw | PMULHW __m64 _mm_mulhi_pi16 (__m64 m1, __m64 m2) |
| _mm_mulhi_pu16 | pmulhuw | PMULHUW __m64 _mm_mulhi_pu16(__m64 a, __m64 b) |
| _mm_mulhrs_epi16 | pmulhrsw | (V)PMULHRSW __m128i _mm_mulhrs_epi16 (__m128i a, __m128i b) |
| _mm_mulhrs_pi16 | pmulhrsw | PMULHRSW __m64 _mm_mulhrs_pi16 (__m64 a, __m64 b) |
| _mm_mullo_epi16 | pmullw | (V)PMULLW __m128i _mm_mullo_epi16 ( __m128i a, __m128i b) |
| _mm_mullo_epi32 | pmulld | PMULLD __m128i _mm_mullo_epi32(__m128i a, __m128i b); |
| _mm_mullo_epi64 | vpmullq | VPMULLQ __m128i _mm_mullo_epi64(__m128i a, __m128i b); |
| _mm_mullo_pi16 | pmullw | PMULLW __m64 _mm_mullo_pi16(__m64 m1, __m64 m2) |
| _mm_multishift_epi64_epi8 | vpmultishiftqb | VPMULTISHIFTQB __m128i _mm_multishift_epi64_epi8( __m128i a, __m128i b); |
| _mm_mwait | mwait | MWAIT void _mm_mwait(unsigned extensions, unsigned hints) |
| _mm_or_epi32 | por | VPORD __m128i _mm_or_epi32(__m128i a, __m128i b); |
| _mm_or_epi64 | por | VPORQ __m128i _mm_or_epi64(__m128i a, __m128i b); |
| _mm_or_ps | orps | ORPS __m128 _mm_or_ps (__m128 a, __m128 b); |
| _mm_or_si128 | por | (V)POR __m128i _mm_or_si128(__m128i m1, __m128i m2) |
| _mm_or_si64 | por | POR __m64 _mm_or_si64(__m64 m1, __m64 m2) |
| _mm_packs_epi16 | packsswb | PACKSSWB __m128i _mm_packs_epi16(__m128i m1, __m128i m2) |
| _mm_packs_epi32 | packssdw | PACKSSDW __m128i _mm_packs_epi32(__m128i m1, __m128i m2) |
| _mm_packs_pu16 | packuswb | PACKUSWB __m64 _mm_packs_pu16(__m64 m1, __m64 m2) |
| _mm_packus_epi16 | packuswb | (V)PACKUSWB __m128i _mm_packus_epi16(__m128i m1, __m128i m2) |
| _mm_packus_epi32 | packusdw | PACKUSDW__m128i _mm_packus_epi32(__m128i m1, __m128i m2); |
| _mm_permute_pd | vpermilpd | VPERMILPD __m128d _mm_permute_pd (__m128d a, int control) |
| _mm_permute_ps | vpermilps | VPERMILPS __m128 _mm_permute_ps (__m128 a, int control); |
| _mm_permutevar_pd | vpermilpd | VPERMILPD __m128d _mm_permutevar_pd (__m128d a, __m128i control); |
| _mm_permutevar_ps | vpermilps | VPERMILPS __m128 _mm_permutevar_ps (__m128 a, __m128i control); |
| _mm_permutex2var_epi16 | vpermi2q | VPERMI2W __m128i _mm_permutex2var_epi16(__m128i a, __m128i idx, __m128i b); |
| _mm_permutex2var_epi32 | vpermi2d | VPERMI2D __m128i _mm_permutex2var_epi32(__m128i a, __m128i idx, __m128i b); |
| _mm_permutex2var_epi64 | vpermi2q | VPERMI2Q __m128i _mm_permutex2var_epi64(__m128i a, __m128i idx, __m128i b); |
| _mm_permutex2var_epi8 | vpermi2b | VPERMI2B __m128i _mm_permutex2var_epi8(__m128i a, __m128i idx, __m128i b); |
| _mm_permutex2var_pd | vpermi2q | VPERMI2PD __m128d _mm_permutex2var_pd(__m128d a, __m128i idx, __m128d b); |
| _mm_permutex2var_ps | vpermi2q | VPERMI2PS __m128 _mm_permutex2var_ps(__m128 a, __m128i idx, __m128 b); |
| _mm_permutexvar_epi16 | vpermw | VPERMW __m128i _mm_permutexvar_epi16( __m128i idx, __m128i a); |
| _mm_permutexvar_epi8 | vpermb | VPERMB __m128i _mm_permutexvar_epi8( __m128i idx, __m128i a); |
| _mm_popcnt_epi16 | vpopcntw | VPOPCNTW __m128i _mm_popcnt_epi16(__m128i); |
| _mm_popcnt_epi32 | vpopcntd | VPOPCNTD __m128i _mm_popcnt_epi32(__m128i); |
| _mm_popcnt_epi64 | vpopcntq | VPOPCNTQ __m128i _mm_popcnt_epi64(__m128i); |
| _mm_popcnt_epi8 | vpopcntb | VPOPCNTB __m128i _mm_popcnt_epi8(__m128i); |
| _mm_popcnt_u32 | popcnt | POPCNT int _mm_popcnt_u32(unsigned int a); |
| _mm_popcnt_u64 | popcnt | POPCNT int64_t _mm_popcnt_u64(unsigned __int64 a); |
| _mm_prefetch | prefetcht1 | void _mm_prefetch(char *p, int i) |
| _mm_range_ps | vrangeps | VRANGEPS __m128 _mm_range_ps ( __m128 a, __m128 b, int imm); |
| _mm_range_round_ss | vrangess | VRANGESS __m128 _mm_range_round_ss ( __m128 a, __m128 b, int imm, int sae); |
| _mm_range_ss | vrangess | VRANGESS __m128 _mm_range_ss ( __m128 a, __m128 b, int imm); |
| _mm_rcp14_ps | vrcp14ps | VRCP14PS __m128 _mm_rcp14_ps( __m128 a); |
| _mm_rcp_ps | rcpps | RCCPS __m128 _mm_rcp_ps(__m128 a) |
| _mm_rcp_ss | rcpss | RCPSS __m128 _mm_rcp_ss(__m128 a) |
| _mm_rol_epi32 | vprolvq | VPROLD __m128i _mm_rol_epi32(__m128i a, int imm); |
| _mm_rol_epi64 | vprolq | VPROLQ __m128i _mm_rol_epi64(__m128i a, int imm); |
| _mm_rolv_epi32 | vprolvd | VPROLVD __m128i _mm_rolv_epi32(__m128i a, __m128i cnt); |
| _mm_rolv_epi64 | vprolvq | VPROLVQ __m128i _mm_rolv_epi64(__m128i a, __m128i cnt); |
| _mm_ror_epi32 | vprorvd | VPRORD __m128i _mm_ror_epi32(__m128i a, int imm); |
| _mm_ror_epi64 | vprorq | VPRORQ __m128i _mm_ror_epi64(__m128i a, int imm); |
| _mm_rorv_epi32 | vprorvd | VPRORVD __m128i _mm_rorv_epi32(__m128i a, __m128i cnt); |
| _mm_rorv_epi64 | vprorvq | VPRORVQ __m128i _mm_rorv_epi64(__m128i a, __m128i cnt); |
| _mm_round_pd | roundpd | __m128 _mm_round_pd(__m128d s1, int iRoundMode); |
| _mm_round_ps | roundps | __m128 _mm_round_ps(__m128 s1, int iRoundMode); |
| _mm_roundscale_pd | vrndscalepd | VRNDSCALEPD __m128d _mm_roundscale_pd( __m128d a, int imm); |
| _mm_rsqrt14_ps | vrsqrt14ps | VRSQRT14PS __m128 _mm_rsqrt14_ps( __m128 a); |
| _mm_rsqrt_ps | rsqrtps | RSQRTPS __m128 _mm_rsqrt_ps(__m128 a) |
| _mm_rsqrt_ss | rsqrtss | RSQRTSS __m128 _mm_rsqrt_ss(__m128 a) |
| _mm_sad_epu8 | psadbw | (V)PSADBW __m128i _mm_sad_epu8(__m128i a, __m128i b) |
| _mm_sad_pu8 | psadbw | PSADBW __m64 _mm_sad_pu8(__m64 a,__m64 b) |
| _mm_scalef_pd | vscalefpd | VSCALEFPD __m128d _mm_scalef_pd(__m128d a, __m128d b); |