x86 Compiler Intrinsics
3623 intrinsics from the Intel® SDM, each mapped to the instruction it compiles to - page 22 of 37, alphabetical. The global search in the top nav also matches intrinsic names directly.
| Intrinsic | Instruction | Signature |
|---|---|---|
| _mm512_or_ps | orps | VORPS __m512 _mm512_or_ps ( __m512 a, __m512 b); |
| _mm512_packs_epi16 | packsswb | VPACKSSWB__m512i _mm512_packs_epi16(__m512i m1, __m512i m2); |
| _mm512_packs_epi32 | packsswb | VPACKSSDW__m512i _mm512_packs_epi32(__m512i m1, __m512i m2); |
| _mm512_packus_epi16 | packuswb | VPACKUSWB __m512i _mm512_packus_epi16(__m512i m1, __m512i m2); |
| _mm512_packus_epi32 | packusdw | VPACKUSDW__m512i _mm512_packus_epi32(__m512i m1, __m512i m2); |
| _mm512_permute_pd | vpermilpd | VPERMILPD __m512d _mm512_permute_pd( __m512d a, int imm); |
| _mm512_permute_ps | vpermilps | VPERMILPS __m512 _mm512_permute_ps( __m512 a, int imm); |
| _mm512_permutevar_pd | vpermilpd | VPERMILPD __m512d _mm512_permutevar_pd( __m512i i, __m512d a); |
| _mm512_permutevar_ps | vpermilps | VPERMILPS __m512 _mm512_permutevar_ps( __m512i i, __m512 a); |
| _mm512_permutex2var_epi16 | vpermi2q | VPERMI2W __m512i _mm512_permutex2var_epi16(__m512i a, __m512i idx, __m512i b); |
| _mm512_permutex2var_epi32 | vpermi2d | VPERMI2D __m512i _mm512_permutex2var_epi32(__m512i a, __m512i idx, __m512i b); |
| _mm512_permutex2var_epi64 | vpermi2q | VPERMI2Q __m512i _mm512_permutex2var_epi64(__m512i a, __m512i idx, __m512i b); |
| _mm512_permutex2var_epi8 | vpermi2b | VPERMI2B __m512i _mm512_permutex2var_epi8(__m512i a, __m512i idx, __m512i b); |
| _mm512_permutex2var_pd | vpermi2q | VPERMI2PD __m512d _mm512_permutex2var_pd(__m512d a, __m512i idx, __m512d b); |
| _mm512_permutex2var_ps | vpermi2q | VPERMI2PS __m512 _mm512_permutex2var_ps(__m512 a, __m512i idx, __m512 b); |
| _mm512_permutex_epi64 | vpermq | VPERMQ __m512i _mm512_permutex_epi64( __m512i a, int imm); |
| _mm512_permutexvar_epi16 | vpermw | VPERMW __m512i _mm512_permutexvar_epi16( __m512i idx, __m512i a); |
| _mm512_permutexvar_epi32 | vpermd | VPERMD __m512i _mm512_permutexvar_epi32( __m512i idx, __m512i a); |
| _mm512_permutexvar_epi64 | vpermq | VPERMQ __m512i _mm512_permutexvar_epi64( __m512i a, __m512i b); |
| _mm512_permutexvar_epi8 | vpermb | VPERMB __m512i _mm512_permutexvar_epi8( __m512i idx, __m512i a); |
| _mm512_permutexvar_ps | vpermps | VPERMPS __m512 _mm512_permutexvar_ps(__m512i i, __m512 a); |
| _mm512_popcnt_epi16 | vpopcntw | VPOPCNTW __m512i _mm512_popcnt_epi16(__m512i); |
| _mm512_popcnt_epi32 | vpopcntd | VPOPCNTD __m512i _mm512_popcnt_epi32(__m512i); |
| _mm512_popcnt_epi64 | vpopcntq | VPOPCNTQ __m512i _mm512_popcnt_epi64(__m512i); |
| _mm512_popcnt_epi8 | vpopcntb | VPOPCNTB __m512i _mm512_popcnt_epi8(__m512i); |
| _mm512_prefetch_i32scatter_pd | vscatterpf0dpd | VSCATTERPF0DPD void _mm512_prefetch_i32scatter_pd(void *base, __m256i vdx, int scale, int hint); |
| _mm512_prefetch_i32scatter_ps | vscatterpf0dps | VSCATTERPF0DPS void _mm512_prefetch_i32scatter_ps(void *base, __m512i vdx, int scale, int hint); |
| _mm512_prefetch_i64scatter_pd | vscatterpf0qpd | VSCATTERPF0QPD void _mm512_prefetch_i64scatter_pd(void * base, __m512i vdx, int scale, int hint); |
| _mm512_prefetch_i64scatter_ps | vscatterpf0qps | VSCATTERPF0QPS void _mm512_prefetch_i64scatter_ps(void * base, __m512i vdx, int scale, int hint); |
| _mm512_range_ps | vrangeps | VRANGEPS __m512 _mm512_range_ps ( __m512 a, __m512 b, int imm); |
| _mm512_range_round_ps | vrangeps | VRANGEPS __m512 _mm512_range_round_ps ( __m512 a, __m512 b, int imm, int sae); |
| _mm512_rcp14_ps | vrcp14ps | VRCP14PS __m512 _mm512_rcp14_ps( __m512 a); |
| _mm512_rol_epi32 | vprolvq | VPROLD __m512i _mm512_rol_epi32(__m512i a, int imm); |
| _mm512_rol_epi64 | vprolq | VPROLQ __m512i _mm512_rol_epi64(__m512i a, int imm); |
| _mm512_rolv_epi32 | vprolvd | VPROLVD __m512i _mm512_rolv_epi32(__m512i a, __m512i cnt); |
| _mm512_rolv_epi64 | vprolvq | VPROLVQ __m512i _mm512_rolv_epi64(__m512i a, __m512i cnt); |
| _mm512_ror_epi32 | vprorvd | VPRORD __m512i _mm512_ror_epi32(__m512i a, int imm); |
| _mm512_ror_epi64 | vprorq | VPRORQ __m512i _mm512_ror_epi64(__m512i a, int imm); |
| _mm512_rorv_epi32 | vprorvd | VPRORVD __m512i _mm512_rorv_epi32(__m512i a, __m512i cnt); |
| _mm512_rorv_epi64 | vprorvq | VPRORVQ __m512i _mm512_rorv_epi64(__m512i a, __m512i cnt); |
| _mm512_roundscale_pd | vrndscalepd | VRNDSCALEPD __m512d _mm512_roundscale_pd( __m512d a, int imm); |
| _mm512_roundscale_round_pd | vrndscalepd | VRNDSCALEPD __m512d _mm512_roundscale_round_pd( __m512d a, int imm, int sae); |
| _mm512_rsqrt14_ps | vrsqrt14ps | VRSQRT14PS __m512 _mm512_rsqrt14_ps( __m512 a); |
| _mm512_sad_epu8 | psadbw | VPSADBW __m512i _mm512_sad_epu8( __m512i a, __m512i b) |
| _mm512_scalef_pd | vscalefpd | VSCALEFPD __m512d _mm512_scalef_pd(__m512d a, __m512d b); |
| _mm512_scalef_round_pd | vscalefpd | VSCALEFPD __m512d _mm512_scalef_round_pd(__m512d a, __m512d b, int rounding); |
| _mm512_shldi_epi16 | vpshldw | VPSHLDW __m512i _mm512_shldi_epi16(__m512i, __m512i, int); |
| _mm512_shldi_epi32 | vpshldd | VPSHLDD __m512i _mm512_shldi_epi32(__m512i, __m512i, int); |
| _mm512_shldi_epi64 | vpshldq | VPSHLDQ __m512i _mm512_shldi_epi64(__m512i, __m512i, int); |
| _mm512_shrdi_epi16 | vpshrdw | VPSHRDW __m512i _mm512_shrdi_epi16(__m512i, __m512i, int); |
| _mm512_shrdi_epi32 | vpshrdd | VPSHRDD __m512i _mm512_shrdi_epi32(__m512i, __m512i, int); |
| _mm512_shrdi_epi64 | vpshrdq | VPSHRDQ __m512i _mm512_shrdi_epi64(__m512i, __m512i, int); |
| _mm512_shuffle_epi32 | pshufd | VPSHUFD __m512i _mm512_shuffle_epi32(__m512i a, int n ); |
| _mm512_shuffle_epi8 | vpshufb | VPSHUFB __m512i _mm512_shuffle_epi8(__m512i a, __m512i b); |
| _mm512_shuffle_f32x4 | vshuff32x4 | VSHUFF32x4 __m512 _mm512_shuffle_f32x4(__m512 a, __m512 b, int imm); |
| _mm512_shuffle_f64x2 | vshuff32x4 | VSHUFF64x2 __m512d _mm512_shuffle_f64x2(__m512d a, __m512d b, int imm); |
| _mm512_shuffle_i32x4 | vshuff32x4 | VSHUFI32x4 __m512i _mm512_shuffle_i32x4(__m512i a, __m512i b, int imm); |
| _mm512_shuffle_i64x2 | vshuff32x4 | VSHUFI64x2 __m512i _mm512_shuffle_i64x2(__m512i a, __m512i b, int imm); |
| _mm512_shuffle_pd | shufpd | VSHUFPD __m512d _mm512_shuffle_pd(__m512d a, __m512d b, int imm); |
| _mm512_shuffle_ps | shufps | VSHUFPS __m512 _mm512_shuffle_ps(__m512 a, __m512 b, int imm); |
| _mm512_shufflehi_epi16 | pshufhw | VPSHUFHW __m512i _mm512_shufflehi_epi16(__m512i a, int n); |
| _mm512_shufflelo_epi16 | pshuflw | VPSHUFLW __m512i _mm512_shufflelo_epi16(__m512i a, int n); |
| _mm512_sll_epi16 | psllw | VPSLLW __m512i _mm512_sll_epi16(__m512i a, __m128i cnt); |
| _mm512_sll_epi32 | psllw | VPSLLD __m512i _mm512_sll_epi32(__m512i a, __m128i cnt); |
| _mm512_slli_epi16 | psllw | VPSLLW __m512i _mm512_slli_epi16(__m512i a, unsigned int imm); |
| _mm512_slli_epi32 | psllw | VPSLLD __m512i _mm512_slli_epi32(__m512i a, unsigned int imm); |
| _mm512_sllv_epi16 | vpsllvd | VPSLLVW __m512i _mm512_sllv_epi16(__m512i a, __m512i cnt); |
| _mm512_sllv_epi32 | vpsllvd | VPSLLVD __m512i _mm512_sllv_epi32(__m512i a, __m512i cnt); |
| _mm512_sllv_epi64 | vpsllvq | VPSLLVQ __m512i _mm512_sllv_epi64(__m512i a, __m512i cnt); |
| _mm512_sqrt_ph | vsqrtph | VSQRTPH __m512h _mm512_sqrt_ph (__m512h a); |
| _mm512_sqrt_round_pd | sqrtpd | VSQRTPD __m512d _mm512_sqrt_round_pd(__m512d a, int r); |
| _mm512_sqrt_round_ph | vsqrtph | VSQRTPH __m512h _mm512_sqrt_round_ph (__m512h a, const int rounding); |
| _mm512_sqrt_round_ps | sqrtps | VSQRTPS __m512 _mm512_sqrt_round_ps(__m512 a, int r); |
| _mm512_sra_epi16 | psraw | VPSRAW __m512i _mm512_sra_epi16(__m512i a, __m128i cnt); |
| _mm512_sra_epi32 | psraw | VPSRAD __m512i _mm512_sra_epi32(__m512i a, __m128i cnt); |
| _mm512_sra_epi64 | psraw | VPSRAQ __m512i _mm512_sra_epi64(__m512i a, __m128i cnt); |
| _mm512_srai_epi16 | psraw | VPSRAW __m512i _mm512_srai_epi16(__m512i a, unsigned int imm); |
| _mm512_srai_epi32 | psraw | VPSRAD __m512i _mm512_srai_epi32(__m512i a, unsigned int imm); |
| _mm512_srai_epi64 | psraw | VPSRAQ __m512i _mm512_srai_epi64(__m512i a, unsigned int imm); |
| _mm512_srav_epi16 | vpsravd | VPSRAVW __m512i _mm512_srav_epi16(__m512i a, __m512i cnt); |
| _mm512_srav_epi32 | vpsravd | VPSRAVD __m512i _mm512_srav_epi32(__m512i a, __m512i cnt); |
| _mm512_srav_epi64 | vpsravq | VPSRAVQ __m512i _mm512_srav_epi64(__m512i a, __m512i cnt); |
| _mm512_srl_epi16 | psrlw | VPSRLW __m512i _mm512_srl_epi16(__m512i a, __m128i cnt); |
| _mm512_srl_epi32 | psrlw | VPSRLD __m512i _mm512_srl_epi32(__m512i a, __m128i cnt); |
| _mm512_srl_epi64 | psrlw | VPSRLQ __m512i _mm512_srl_epi64(__m512i a, __m128i cnt); |
| _mm512_srli_epi16 | psrlw | VPSRLW __m512i _mm512_srli_epi16(__m512i a, unsigned int imm); |
| _mm512_srli_epi32 | psrlw | VPSRLD __m512i _mm512_srli_epi32(__m512i a, unsigned int imm); |
| _mm512_srli_epi64 | psrlw | VPSRLQ __m512i _mm512_srli_epi64(__m512i a, unsigned int imm); |
| _mm512_srlv_epi16 | vpsrlvd | VPSRLVW __m512i _mm512_srlv_epi16(__m512i a, __m512i cnt); |
| _mm512_srlv_epi32 | vpsrlvd | VPSRLVD __m512i _mm512_srlv_epi32(__m512i a, __m512i cnt); |
| _mm512_srlv_epi64 | vpsrlvq | VPSRLVQ __m512i _mm512_srlv_epi64(__m512i a, __m512i cnt); |
| _mm512_store_epi32 | movdqa | VMOVDQA32 void _mm512_store_epi32(void * d, __m512i a); |
| _mm512_store_epi64 | movdqa | VMOVDQA64 void _mm512_store_epi64(void * d, __m512i a); |
| _mm512_store_pd | movapd | VMOVAPD void _mm512_store_pd( void * d, __m512d a); |
| _mm512_store_ps | movaps | VMOVAPS void _mm512_store_ps( void * d, __m512 a); |
| _mm512_storeu_epi32 | movdqu | VMOVDQU32 void _mm512_storeu_epi32(void * d, __m512i a); |
| _mm512_storeu_epi64 | movdqu | VMOVDQU64 void _mm512_storeu_epi64(void * d, __m512i a); |
| _mm512_storeu_pd | movupd | VMOVUPD void _mm512_storeu_pd( void * d, __m512d a); |
| _mm512_storeu_ps | movups | VMOVUPS void _mm512_storeu_ps( void * d, __m512 a); |
| _mm512_stream_load_si512 | movntdqa | VMOVNTDQA __m512i _mm512_stream_load_si512(__m512i const* p); |