x86 Compiler Intrinsics
3623 intrinsics from the Intel® SDM, each mapped to the instruction it compiles to - page 23 of 37, alphabetical. The global search in the top nav also matches intrinsic names directly.
| Intrinsic | Instruction | Signature |
|---|---|---|
| _mm512_stream_pd | movntpd | VMOVNTPD void _mm512_stream_pd(double * p, __m512d a); |
| _mm512_stream_ps | movntps | VMOVNTPS void _mm512_stream_ps(float * p, __m512d a); |
| _mm512_sub_epi16 | psubb | VPSUBW __m512i _mm512_sub_epi16(__m512i a, __m512i b); |
| _mm512_sub_epi32 | vpsubd | VPSUBD __m512i _mm512_sub_epi32(__m512i a, __m512i b); |
| _mm512_sub_epi64 | psubq | VPSUBQ __m512i _mm512_sub_epi64(__m512i a, __m512i b); |
| _mm512_sub_epi8 | psubb | VPSUBB __m512i _mm512_sub_epi8(__m512i a, __m512i b); |
| _mm512_sub_pd | subpd | VSUBPD __m512d _mm512_sub_pd (__m512d a, __m512d b); |
| _mm512_sub_ph | vsubph | VSUBPH __m512h _mm512_sub_ph (__m512h a, __m512h b); |
| _mm512_sub_ps | subps | VSUBPS __m512 _mm512_sub_ps (__m512 a, __m512 b); |
| _mm512_sub_round_pd | subpd | VSUBPD __m512d _mm512_sub_round_pd (__m512d a, __m512d b, int); |
| _mm512_sub_round_ph | vsubph | VSUBPH __m512h _mm512_sub_round_ph (__m512h a, __m512h b, int rounding); |
| _mm512_sub_round_ps | subps | VSUBPS __m512 _mm512_sub_round_ps (__m512 a, __m512 b, int); |
| _mm512_subs_epi16 | psubsb | VPSUBSW __m512i _mm512_subs_epi16(__m512i a, __m512i b); |
| _mm512_subs_epi8 | psubsb | VPSUBSB __m512i _mm512_subs_epi8(__m512i a, __m512i b); |
| _mm512_subs_epu16 | psubusb | VPSUBUSW __m512i _mm512_subs_epu16(__m512i a, __m512i b); |
| _mm512_subs_epu8 | psubusb | VPSUBUSB __m512i _mm512_subs_epu8(__m512i a, __m512i b); |
| _mm512_ternarylogic_epi32 | vpternlogd | VPTERNLOGD __m512i _mm512_ternarylogic_epi32(__m512i a, __m512i b, int imm); |
| _mm512_ternarylogic_epi64 | vpternlogq | VPTERNLOGQ __m512i _mm512_ternarylogic_epi64(__m512i a, __m512i b, int imm); |
| _mm512_test_epi16_mask | vptestmw | VPTESTMW __mmask32 _mm512_test_epi16_mask( __m512i a, __m512i b); |
| _mm512_test_epi32_mask | vptestmd | VPTESTMD __mmask16 _mm512_test_epi32_mask( __m512i a, __m512i b); |
| _mm512_test_epi64_mask | vptestmq | VPTESTMQ __mmask8 _mm512_test_epi64_mask(__m512i a, __m512i b); |
| _mm512_test_epi8_mask | vptestmb | VPTESTMB __mmask64 _mm512_test_epi8_mask( __m512i a, __m512i b); |
| _mm512_unpackhi_epi16 | punpckhbw | VPUNPCKHWD __m512i _mm512_unpackhi_epi16(__m512i a, __m512i b); |
| _mm512_unpackhi_epi32 | punpckhbw | VPUNPCKHDQ __m512i _mm512_unpackhi_epi32(__m512i a, __m512i b); |
| _mm512_unpackhi_epi64 | punpckhbw | VPUNPCKHQDQ __m512i _mm512_unpackhi_epi64(__m512i a, __m512i b); |
| _mm512_unpackhi_epi8 | punpckhbw | VPUNPCKHBW __m512i _mm512_unpackhi_epi8(__m512i a, __m512i b); |
| _mm512_unpackhi_pd | unpckhpd | VUNPCKHPD __m512d _mm512_unpackhi_pd( __m512d a, __m512d b); |
| _mm512_unpackhi_ps | unpckhps | VUNPCKHPS __m512 _mm512_unpackhi_ps( __m512 a, __m512 b); |
| _mm512_unpacklo_epi16 | punpcklbw | VPUNPCKLWD __m512i _mm512_unpacklo_epi16(__m512i a, __m512i b); |
| _mm512_unpacklo_epi32 | punpcklbw | VPUNPCKLDQ __m512i _mm512_unpacklo_epi32(__m512i a, __m512i b); |
| _mm512_unpacklo_epi64 | punpcklbw | VPUNPCKLQDQ __m512i _mm512_unpacklo_epi64(__m512i a, __m512i b); |
| _mm512_unpacklo_epi8 | punpcklbw | VPUNPCKLBW __m512i _mm512_unpacklo_epi8(__m512i a, __m512i b); |
| _mm512_unpacklo_pd | unpcklpd | VUNPCKLPD __m512d _mm512_unpacklo_pd( __m512d a, __m512d b); |
| _mm512_unpacklo_ps | unpcklps | VUNPCKLPS __m512 _mm512_unpacklo_ps(__m512 a, __m512 b); |
| _mm512_xor_epi32 | pxor | VPXORD __m512i _mm512_xor_epi32(__m512i a, __m512i b) |
| _mm512_xor_epi64 | pxor | VPXORQ __m512i _mm512_xor_epi64( __m512i a, __m512i b); |
| _mm512_xor_ps | xorps | VXORPS __m512 _mm512_xor_ps (__m512 a, __m512 b); |
| _mm_2intersect_epi32 | vp2intersectd | VP2INTERSECTD void _mm_2intersect_epi32(__m128i, __m128i, __mmask8 *, __mmask8 *); |
| _mm_2intersect_epi64 | vp2intersectq | VP2INTERSECTQ void _mm_2intersect_epi64(__m128i, __m128i, __mmask8 *, __mmask8 *); |
| _mm_4fmadd_ss | v4fmaddss | V4FMADDSS __m128 _mm_4fmadd_ss(__m128, __m128x4, __m128 *); |
| _mm_4fnmadd_ss | v4fnmaddss | V4FNMADDSS __m128 _mm_4fnmadd_ss(__m128, __m128x4, __m128 *); |
| _mm_abs_epi16 | pabsb | PABSW __m128i _mm_abs_epi16 (__m128i a) |
| _mm_abs_epi32 | vpabsd | VPABSD __m128i _mm_abs_epi32 (__m128i a) |
| _mm_abs_epi8 | pabsb | PABSB __m128i _mm_abs_epi8 (__m128i a) |
| _mm_add_epi16 | paddw | PADDW __m128i _mm_add_epi16 ( __m128i a, __m128i b); |
| _mm_add_epi32 | paddd | PADDD __m128i _mm_add_epi32 ( __m128i a, __m128i b); |
| _mm_add_epi64 | paddq | PADDQ __m128i _mm_add_epi64 ( __m128i a, __m128i b); |
| _mm_add_epi8 | paddb | PADDB __m128i _mm_add_epi8 (__m128i a,__m128i b ); |
| _mm_add_pd | addpd | ADDPD __m128d _mm_add_pd (__m128d a, __m128d b); |
| _mm_add_ph | vaddph | VADDPH __m128h _mm_add_ph (__m128h a, __m128h b); |
| _mm_add_pi16 | paddw | PADDW __m64 _mm_add_pi16(__m64 m1, __m64 m2) |
| _mm_add_pi32 | paddd | PADDD __m64 _mm_add_pi32(__m64 m1, __m64 m2) |
| _mm_add_pi8 | paddb | PADDB __m64 _mm_add_pi8(__m64 m1, __m64 m2) |
| _mm_add_ps | addps | ADDPS __m128 _mm_add_ps (__m128 a, __m128 b); |
| _mm_add_round_sd | addsd | VADDSD __m128d _mm_add_round_sd (__m128d a, __m128d b, int); |
| _mm_add_round_sh | vaddsh | VADDSH __m128h _mm_add_round_sh (__m128h a, __m128h b, int rounding); |
| _mm_add_round_ss | vaddss | VADDSS __m128 _mm_add_round_ss (__m128 a, __m128 b, int); |
| _mm_add_sd | addsd | ADDSD __m128d _mm_add_sd (__m128d a, __m128d b); |
| _mm_add_sh | vaddsh | VADDSH ___m128h _mm_add_sh (__m128h a, __m128h b); |
| _mm_add_si64 | paddq | PADDQ __m64 _mm_add_si64(__m64 m1, __m64 m2) |
| _mm_add_ss | addss | ADDSS __m128 _mm_add_ss (__m128 a, __m128 b); |
| _mm_adds_epi16 | paddsb | (V)PADDSW __m128i _mm_adds_epi16 ( __m128i a, __m128i b) |
| _mm_adds_epi8 | paddsb | (V)PADDSB __m128i _mm_adds_epi8 ( __m128i a, __m128i b) |
| _mm_adds_epu16 | paddusb | (V)PADDUSW __m128i _mm_adds_epu16 ( __m128i a, __m128i b) |
| _mm_adds_epu8 | paddusb | (V)PADDUSB __m128i _mm_adds_epu8 ( __m128i a, __m128i b) |
| _mm_adds_pi16 | paddsw | PADDSW __m64 _mm_adds_pi16(__m64 m1, __m64 m2) |
| _mm_adds_pi8 | paddsb | PADDSB __m64 _mm_adds_pi8(__m64 m1, __m64 m2) |
| _mm_adds_pu16 | paddusw | PADDUSW __m64 _mm_adds_pu16(__m64 m1, __m64 m2) |
| _mm_adds_pu8 | paddusb | PADDUSB __m64 _mm_adds_pu8(__m64 m1, __m64 m2) |
| _mm_addsub_pd | addsubpd | ADDSUBPD __m128d _mm_addsub_pd(__m128d a, __m128d b) |
| _mm_addsub_ps | addsubps | ADDSUBPS __m128 _mm_addsub_ps(__m128 a, __m128 b) |
| _mm_aesdec | vaesdec | (V)AESDEC __m128i _mm_aesdec (__m128i, __m128i) |
| _mm_aesdec128kl_u8 | aesdec128kl | AESDEC128KL unsigned char _mm_aesdec128kl_u8(__m128i* odata, __m128i idata, const void* h); |
| _mm_aesdec256kl_u8 | aesdec256kl | AESDEC256KL unsigned char _mm_aesdec256kl_u8(__m128i* odata, __m128i idata, const void* h); |
| _mm_aesdecwide128kl_u8 | aesdecwide128kl | AESDECWIDE128KLunsigned char _mm_aesdecwide128kl_u8(__m128i odata[8], const __m128i idata[8], const void* h); |
| _mm_aesdecwide256kl_u8 | aesdecwide256kl | AESDECWIDE256KLunsigned char _mm_aesdecwide256kl_u8(__m128i odata[8], const __m128i idata[8], const void* h); |
| _mm_aesenc | vaesenc | (V)AESENC __m128i _mm_aesenc (__m128i, __m128i) |
| _mm_aesenc128kl_u8 | aesenc128kl | AESENC128KL unsigned char _mm_aesenc128kl_u8(__m128i* odata, __m128i idata, const void* h); |
| _mm_aesenc256kl_u8 | aesenc256kl | AESENC256KL unsigned char _mm_aesenc256kl_u8(__m128i* odata, __m128i idata, const void* h); |
| _mm_aesenclast | aesenclast | (V)AESENCLAST __m128i _mm_aesenclast (__m128i, __m128i) |
| _mm_aesencwide128kl_u8 | aesencwide128kl | AESENCWIDE128KLunsigned char _mm_aesencwide128kl_u8(__m128i odata[8], const __m128i idata[8], const void* h); |
| _mm_aesencwide256kl_u8 | aesencwide256kl | AESENCWIDE256KLunsigned char _mm_aesencwide256kl_u8(__m128i odata[8], const __m128i idata[8], const void* h); |
| _mm_aesimc | aesimc | (V)AESIMC __m128i _mm_aesimc (__m128i) |
| _mm_aeskeygenassist | aeskeygenassist | (V)AESKEYGENASSIST __m128i _mm_aeskeygenassist (__m128i, const int) |
| _mm_alignr_epi8 | palignr | (V)PALIGNR __m128i _mm_alignr_epi8 (__m128i a, __m128i b, int n) |
| _mm_alignr_pi8 | palignr | PALIGNR __m64 _mm_alignr_pi8 (__m64 a, __m64 b, int n) |
| _mm_and_pd | andpd | ANDPD __m128d _mm_and_pd (__m128d a, __m128d b); |
| _mm_and_ps | andps | ANDPS __m128 _mm_and_ps (__m128 a, __m128 b); |
| _mm_and_si128 | pand | (V)PAND __m128i _mm_and_si128 ( __m128i a, __m128i b) |
| _mm_and_si64 | pand | PAND __m64 _mm_and_si64 (__m64 m1, __m64 m2) |
| _mm_andnot_si128 | pandn | (V)PANDN __m128i _mm_andnot_si128 ( __m128i a, __m128i b) |
| _mm_andnot_si64 | pandn | PANDN __m64 _mm_andnot_si64 (__m64 m1, __m64 m2) |
| _mm_avg_epu16 | pavgb | (V)PAVGW __m128i _mm_avg_epu16 ( __m128i a, __m128i b) |
| _mm_avg_epu8 | pavgb | (V)PAVGB __m128i _mm_avg_epu8 ( __m128i a, __m128i b) |
| _mm_avg_pu16 | pavgw | PAVGW __m64 _mm_avg_pu16 (__m64 a, __m64 b) |
| _mm_avg_pu8 | pavgb | PAVGB __m64 _mm_avg_pu8 (__m64 a, __m64 b) |
| _mm_bitshuffle_epi64_mask | vpshufbitqmb | VPSHUFBITQMB __mmask16 _mm_bitshuffle_epi64_mask(__m128i, __m128i); |
| _mm_blend_epi16 | pblendw | (V)PBLENDW __m128i _mm_blend_epi16 (__m128i v1, __m128i v2, const int mask); |
| _mm_blend_pd | blendpd | BLENDPD __m128d _mm_blend_pd (__m128d v1, __m128d v2, const int mask); |
| _mm_blend_ps | blendps | BLENDPS __m128 _mm_blend_ps (__m128 v1, __m128 v2, const int mask); |