SIMDojo
Problems
Reference
Learn
Blog
Sign in
Sign up
Intrinsics Reference
Browse AVX2 SIMD intrinsics —
193
functions
AVX2
193
/
Arithmetic
(35)
Swizzle
(39)
Load
(37)
Shift
(30)
Special Math Functions
(15)
Convert
(12)
Compare
(8)
Miscellaneous
(7)
Store
(4)
Logical
(4)
Probability/Statistics
(2)
Showing
193
intrinsics
Arithmetic
35
_mm256_add_epi16
(__m256i, __m256i) → __m256i
VPADDW
_mm256_add_epi32
(__m256i, __m256i) → __m256i
VPADDD
_mm256_add_epi64
(__m256i, __m256i) → __m256i
VPADDQ
_mm256_add_epi8
(__m256i, __m256i) → __m256i
VPADDB
_mm256_adds_epi16
(__m256i, __m256i) → __m256i
VPADDSW
_mm256_adds_epi8
(__m256i, __m256i) → __m256i
VPADDSB
_mm256_adds_epu16
(__m256i, __m256i) → __m256i
VPADDUSW
_mm256_adds_epu8
(__m256i, __m256i) → __m256i
VPADDUSB
_mm256_hadd_epi16
(__m256i, __m256i) → __m256i
VPHADDW
_mm256_hadd_epi32
(__m256i, __m256i) → __m256i
VPHADDD
_mm256_hadds_epi16
(__m256i, __m256i) → __m256i
VPHADDSW
_mm256_hsub_epi16
(__m256i, __m256i) → __m256i
VPHSUBW
_mm256_hsub_epi32
(__m256i, __m256i) → __m256i
VPHSUBD
_mm256_hsubs_epi16
(__m256i, __m256i) → __m256i
VPHSUBSW
_mm256_madd_epi16
(__m256i, __m256i) → __m256i
VPMADDWD
_mm256_maddubs_epi16
(__m256i, __m256i) → __m256i
VPMADDUBSW
_mm256_mul_epi32
(__m256i, __m256i) → __m256i
VPMULDQ
_mm256_mul_epu32
(__m256i, __m256i) → __m256i
VPMULUDQ
_mm256_mulhi_epi16
(__m256i, __m256i) → __m256i
VPMULHW
_mm256_mulhi_epu16
(__m256i, __m256i) → __m256i
VPMULHUW
_mm256_mulhrs_epi16
(__m256i, __m256i) → __m256i
VPMULHRSW
_mm256_mullo_epi16
(__m256i, __m256i) → __m256i
VPMULLW
_mm256_mullo_epi32
(__m256i, __m256i) → __m256i
VPMULLD
_mm256_sad_epu8
(__m256i, __m256i) → __m256i
VPSADBW
_mm256_sign_epi16
(__m256i, __m256i) → __m256i
VPSIGNW
_mm256_sign_epi32
(__m256i, __m256i) → __m256i
VPSIGND
_mm256_sign_epi8
(__m256i, __m256i) → __m256i
VPSIGNB
_mm256_sub_epi16
(__m256i, __m256i) → __m256i
VPSUBW
_mm256_sub_epi32
(__m256i, __m256i) → __m256i
VPSUBD
_mm256_sub_epi64
(__m256i, __m256i) → __m256i
VPSUBQ
_mm256_sub_epi8
(__m256i, __m256i) → __m256i
VPSUBB
_mm256_subs_epi16
(__m256i, __m256i) → __m256i
VPSUBSW
_mm256_subs_epi8
(__m256i, __m256i) → __m256i
VPSUBSB
_mm256_subs_epu16
(__m256i, __m256i) → __m256i
VPSUBUSW
_mm256_subs_epu8
(__m256i, __m256i) → __m256i
VPSUBUSB
Swizzle
39
_mm_blend_epi32
(__m128i, __m128i, const int) → __m128i
VPBLENDD
_mm_broadcastb_epi8
(__m128i) → __m128i
VPBROADCASTB
_mm_broadcastd_epi32
(__m128i) → __m128i
VPBROADCASTD
_mm_broadcastq_epi64
(__m128i) → __m128i
VPBROADCASTQ
_mm_broadcastsd_pd
(__m128d) → __m128d
MOVDDUP
_mm_broadcastsi128_si256
(__m128i) → __m256i
VBROADCASTI128
_mm_broadcastss_ps
(__m128) → __m128
VBROADCASTSS
_mm_broadcastw_epi16
(__m128i) → __m128i
VPBROADCASTW
_mm256_blend_epi16
(__m256i, __m256i, const int) → __m256i
VPBLENDW
_mm256_blend_epi32
(__m256i, __m256i, const int) → __m256i
VPBLENDD
_mm256_blendv_epi8
(__m256i, __m256i, __m256i) → __m256i
VPBLENDVB
_mm256_broadcastb_epi8
(__m128i) → __m256i
VPBROADCASTB
_mm256_broadcastd_epi32
(__m128i) → __m256i
VPBROADCASTD
_mm256_broadcastq_epi64
(__m128i) → __m256i
VPBROADCASTQ
_mm256_broadcastsd_pd
(__m128d) → __m256d
VBROADCASTSD
_mm256_broadcastsi128_si256
(__m128i) → __m256i
VBROADCASTI128
_mm256_broadcastss_ps
(__m128) → __m256
VBROADCASTSS
_mm256_broadcastw_epi16
(__m128i) → __m256i
VPBROADCASTW
_mm256_extract_epi16
(__m256i, const int) → int
_mm256_extract_epi8
(__m256i, const int) → int
_mm256_extracti128_si256
(__m256i, const int) → __m128i
VEXTRACTI128
_mm256_inserti128_si256
(__m256i, __m128i, const int) → __m256i
VINSERTI128
_mm256_permute2x128_si256
(__m256i, __m256i, const int) → __m256i
VPERM2I128
_mm256_permute4x64_epi64
(__m256i, const int) → __m256i
VPERMQ
_mm256_permute4x64_pd
(__m256d, const int) → __m256d
VPERMPD
_mm256_permutevar8x32_epi32
(__m256i, __m256i) → __m256i
VPERMD
_mm256_permutevar8x32_ps
(__m256, __m256i) → __m256
VPERMPS
_mm256_shuffle_epi32
(__m256i, const int) → __m256i
VPSHUFD
_mm256_shuffle_epi8
(__m256i, __m256i) → __m256i
VPSHUFB
_mm256_shufflehi_epi16
(__m256i, const int) → __m256i
VPSHUFHW
_mm256_shufflelo_epi16
(__m256i, const int) → __m256i
VPSHUFLW
_mm256_unpackhi_epi16
(__m256i, __m256i) → __m256i
VPUNPCKHWD
_mm256_unpackhi_epi32
(__m256i, __m256i) → __m256i
VPUNPCKHDQ
_mm256_unpackhi_epi64
(__m256i, __m256i) → __m256i
VPUNPCKHQDQ
_mm256_unpackhi_epi8
(__m256i, __m256i) → __m256i
VPUNPCKHBW
_mm256_unpacklo_epi16
(__m256i, __m256i) → __m256i
VPUNPCKLWD
_mm256_unpacklo_epi32
(__m256i, __m256i) → __m256i
VPUNPCKLDQ
_mm256_unpacklo_epi64
(__m256i, __m256i) → __m256i
VPUNPCKLQDQ
_mm256_unpacklo_epi8
(__m256i, __m256i) → __m256i
VPUNPCKLBW
Load
37
_mm_i32gather_epi32
(int const*, __m128i, const int) → __m128i
VPGATHERDD
_mm_i32gather_epi64
(__int64 const*, __m128i, const int) → __m128i
VPGATHERDQ
_mm_i32gather_pd
(double const*, __m128i, const int) → __m128d
VGATHERDPD
_mm_i32gather_ps
(float const*, __m128i, const int) → __m128
VGATHERDPS
_mm_i64gather_epi32
(int const*, __m128i, const int) → __m128i
VPGATHERQD
_mm_i64gather_epi64
(__int64 const*, __m128i, const int) → __m128i
VPGATHERQQ
_mm_i64gather_pd
(double const*, __m128i, const int) → __m128d
VGATHERQPD
_mm_i64gather_ps
(float const*, __m128i, const int) → __m128
VGATHERQPS
_mm_mask_i32gather_epi32
(__m128i, int const*, __m128i, __m128i, const int) → __m128i
VPGATHERDD
_mm_mask_i32gather_epi64
(__m128i, __int64 const*, __m128i, __m128i, const int) → __m128i
VPGATHERDQ
_mm_mask_i32gather_pd
(__m128d, double const*, __m128i, __m128d, const int) → __m128d
VGATHERDPD
_mm_mask_i32gather_ps
(__m128, float const*, __m128i, __m128, const int) → __m128
VGATHERDPS
_mm_mask_i64gather_epi32
(__m128i, int const*, __m128i, __m128i, const int) → __m128i
VPGATHERQD
_mm_mask_i64gather_epi64
(__m128i, __int64 const*, __m128i, __m128i, const int) → __m128i
VPGATHERQQ
_mm_mask_i64gather_pd
(__m128d, double const*, __m128i, __m128d, const int) → __m128d
VGATHERQPD
_mm_mask_i64gather_ps
(__m128, float const*, __m128i, __m128, const int) → __m128
VGATHERQPS
_mm_maskload_epi32
(int const*, __m128i) → __m128i
VPMASKMOVD
_mm_maskload_epi64
(__int64 const*, __m128i) → __m128i
VPMASKMOVQ
_mm256_i32gather_epi32
(int const*, __m256i, const int) → __m256i
VPGATHERDD
_mm256_i32gather_epi64
(__int64 const*, __m128i, const int) → __m256i
VPGATHERDQ
_mm256_i32gather_pd
(double const*, __m128i, const int) → __m256d
VGATHERDPD
_mm256_i32gather_ps
(float const*, __m256i, const int) → __m256
VGATHERDPS
_mm256_i64gather_epi32
(int const*, __m256i, const int) → __m128i
VPGATHERQD
_mm256_i64gather_epi64
(__int64 const*, __m256i, const int) → __m256i
VPGATHERQQ
_mm256_i64gather_pd
(double const*, __m256i, const int) → __m256d
VGATHERQPD
_mm256_i64gather_ps
(float const*, __m256i, const int) → __m128
VGATHERQPS
_mm256_mask_i32gather_epi32
(__m256i, int const*, __m256i, __m256i, const int) → __m256i
VPGATHERDD
_mm256_mask_i32gather_epi64
(__m256i, __int64 const*, __m128i, __m256i, const int) → __m256i
VPGATHERDQ
_mm256_mask_i32gather_pd
(__m256d, double const*, __m128i, __m256d, const int) → __m256d
VGATHERDPD
_mm256_mask_i32gather_ps
(__m256, float const*, __m256i, __m256, const int) → __m256
VGATHERDPS
_mm256_mask_i64gather_epi32
(__m128i, int const*, __m256i, __m128i, const int) → __m128i
VPGATHERQD
_mm256_mask_i64gather_epi64
(__m256i, __int64 const*, __m256i, __m256i, const int) → __m256i
VPGATHERQQ
_mm256_mask_i64gather_pd
(__m256d, double const*, __m256i, __m256d, const int) → __m256d
VGATHERQPD
_mm256_mask_i64gather_ps
(__m128, float const*, __m256i, __m128, const int) → __m128
VGATHERQPS
_mm256_maskload_epi32
(int const*, __m256i) → __m256i
VPMASKMOVD
_mm256_maskload_epi64
(__int64 const*, __m256i) → __m256i
VPMASKMOVQ
_mm256_stream_load_si256
(void const*) → __m256i
VMOVNTDQA
Shift
30
_mm_sllv_epi32
(__m128i, __m128i) → __m128i
VPSLLVD
_mm_sllv_epi64
(__m128i, __m128i) → __m128i
VPSLLVQ
_mm_srav_epi32
(__m128i, __m128i) → __m128i
VPSRAVD
_mm_srlv_epi32
(__m128i, __m128i) → __m128i
VPSRLVD
_mm_srlv_epi64
(__m128i, __m128i) → __m128i
VPSRLVQ
_mm256_bslli_epi128
(__m256i, const int) → __m256i
VPSLLDQ
_mm256_bsrli_epi128
(__m256i, const int) → __m256i
VPSRLDQ
_mm256_sll_epi16
(__m256i, __m128i) → __m256i
VPSLLW
_mm256_sll_epi32
(__m256i, __m128i) → __m256i
VPSLLD
_mm256_sll_epi64
(__m256i, __m128i) → __m256i
VPSLLQ
_mm256_slli_epi16
(__m256i, int) → __m256i
VPSLLW
_mm256_slli_epi32
(__m256i, int) → __m256i
VPSLLD
_mm256_slli_epi64
(__m256i, int) → __m256i
VPSLLQ
_mm256_slli_si256
(__m256i, const int) → __m256i
VPSLLDQ
_mm256_sllv_epi32
(__m256i, __m256i) → __m256i
VPSLLVD
_mm256_sllv_epi64
(__m256i, __m256i) → __m256i
VPSLLVQ
_mm256_sra_epi16
(__m256i, __m128i) → __m256i
VPSRAW
_mm256_sra_epi32
(__m256i, __m128i) → __m256i
VPSRAD
_mm256_srai_epi16
(__m256i, int) → __m256i
VPSRAW
_mm256_srai_epi32
(__m256i, int) → __m256i
VPSRAD
_mm256_srav_epi32
(__m256i, __m256i) → __m256i
VPSRAVD
_mm256_srl_epi16
(__m256i, __m128i) → __m256i
VPSRLW
_mm256_srl_epi32
(__m256i, __m128i) → __m256i
VPSRLD
_mm256_srl_epi64
(__m256i, __m128i) → __m256i
VPSRLQ
_mm256_srli_epi16
(__m256i, int) → __m256i
VPSRLW
_mm256_srli_epi32
(__m256i, int) → __m256i
VPSRLD
_mm256_srli_epi64
(__m256i, int) → __m256i
VPSRLQ
_mm256_srli_si256
(__m256i, const int) → __m256i
VPSRLDQ
_mm256_srlv_epi32
(__m256i, __m256i) → __m256i
VPSRLVD
_mm256_srlv_epi64
(__m256i, __m256i) → __m256i
VPSRLVQ
Special Math Functions
15
_mm256_abs_epi16
(__m256i) → __m256i
VPABSW
_mm256_abs_epi32
(__m256i) → __m256i
VPABSD
_mm256_abs_epi8
(__m256i) → __m256i
VPABSB
_mm256_max_epi16
(__m256i, __m256i) → __m256i
VPMAXSW
_mm256_max_epi32
(__m256i, __m256i) → __m256i
VPMAXSD
_mm256_max_epi8
(__m256i, __m256i) → __m256i
VPMAXSB
_mm256_max_epu16
(__m256i, __m256i) → __m256i
VPMAXUW
_mm256_max_epu32
(__m256i, __m256i) → __m256i
VPMAXUD
_mm256_max_epu8
(__m256i, __m256i) → __m256i
VPMAXUB
_mm256_min_epi16
(__m256i, __m256i) → __m256i
VPMINSW
_mm256_min_epi32
(__m256i, __m256i) → __m256i
VPMINSD
_mm256_min_epi8
(__m256i, __m256i) → __m256i
VPMINSB
_mm256_min_epu16
(__m256i, __m256i) → __m256i
VPMINUW
_mm256_min_epu32
(__m256i, __m256i) → __m256i
VPMINUD
_mm256_min_epu8
(__m256i, __m256i) → __m256i
VPMINUB
Convert
12
_mm256_cvtepi16_epi32
(__m128i) → __m256i
VPMOVSXWD
_mm256_cvtepi16_epi64
(__m128i) → __m256i
VPMOVSXWQ
_mm256_cvtepi32_epi64
(__m128i) → __m256i
VPMOVSXDQ
_mm256_cvtepi8_epi16
(__m128i) → __m256i
VPMOVSXBW
_mm256_cvtepi8_epi32
(__m128i) → __m256i
VPMOVSXBD
_mm256_cvtepi8_epi64
(__m128i) → __m256i
VPMOVSXBQ
_mm256_cvtepu16_epi32
(__m128i) → __m256i
VPMOVZXWD
_mm256_cvtepu16_epi64
(__m128i) → __m256i
VPMOVZXWQ
_mm256_cvtepu32_epi64
(__m128i) → __m256i
VPMOVZXDQ
_mm256_cvtepu8_epi16
(__m128i) → __m256i
VPMOVZXBW
_mm256_cvtepu8_epi32
(__m128i) → __m256i
VPMOVZXBD
_mm256_cvtepu8_epi64
(__m128i) → __m256i
VPMOVZXBQ
Compare
8
_mm256_cmpeq_epi16
(__m256i, __m256i) → __m256i
VPCMPEQW
_mm256_cmpeq_epi32
(__m256i, __m256i) → __m256i
VPCMPEQD
_mm256_cmpeq_epi64
(__m256i, __m256i) → __m256i
VPCMPEQQ
_mm256_cmpeq_epi8
(__m256i, __m256i) → __m256i
VPCMPEQB
_mm256_cmpgt_epi16
(__m256i, __m256i) → __m256i
VPCMPGTW
_mm256_cmpgt_epi32
(__m256i, __m256i) → __m256i
VPCMPGTD
_mm256_cmpgt_epi64
(__m256i, __m256i) → __m256i
VPCMPGTQ
_mm256_cmpgt_epi8
(__m256i, __m256i) → __m256i
VPCMPGTB
Miscellaneous
7
_mm256_alignr_epi8
(__m256i, __m256i, const int) → __m256i
VPALIGNR
_mm256_movemask_epi8
(__m256i) → int
VPMOVMSKB
_mm256_mpsadbw_epu8
(__m256i, __m256i, const int) → __m256i
VMPSADBW
_mm256_packs_epi16
(__m256i, __m256i) → __m256i
VPACKSSWB
_mm256_packs_epi32
(__m256i, __m256i) → __m256i
VPACKSSDW
_mm256_packus_epi16
(__m256i, __m256i) → __m256i
VPACKUSWB
_mm256_packus_epi32
(__m256i, __m256i) → __m256i
VPACKUSDW
Store
4
_mm_maskstore_epi32
(int*, __m128i, __m128i) → void
VPMASKMOVD
_mm_maskstore_epi64
(__int64*, __m128i, __m128i) → void
VPMASKMOVQ
_mm256_maskstore_epi32
(int*, __m256i, __m256i) → void
VPMASKMOVD
_mm256_maskstore_epi64
(__int64*, __m256i, __m256i) → void
VPMASKMOVQ
Logical
4
_mm256_and_si256
(__m256i, __m256i) → __m256i
VPAND
_mm256_andnot_si256
(__m256i, __m256i) → __m256i
VPANDN
_mm256_or_si256
(__m256i, __m256i) → __m256i
VPOR
_mm256_xor_si256
(__m256i, __m256i) → __m256i
VPXOR
Probability/Statistics
2
_mm256_avg_epu16
(__m256i, __m256i) → __m256i
VPAVGW
_mm256_avg_epu8
(__m256i, __m256i) → __m256i
VPAVGB