mirror of
https://github.com/rust-lang/rust.git
synced 2025-11-25 02:49:25 +00:00
21 KiB
21 KiB
TIP: Use the following command to generate a section in this list for
Intel intrinsics. Replace SSE4.2 with the intended type.
rg '^<intrinsic' intel-intrinsics-3.3.15.xml | rg "'SSE4.2'" | rg '^.*name=\x27([^\x27]+)\x27.*$' -r '* [ ] `$1`' >> TODO.md
rg calls the ripgrep tool, which can be installed with cargo install ripgrep
sse
_MM_TRANSPOSE4_PS_mm_getcsr_mm_setcsr_MM_GET_EXCEPTION_STATE_MM_SET_EXCEPTION_STATE_MM_GET_EXCEPTION_MASK_MM_SET_EXCEPTION_MASK_MM_GET_ROUNDING_MODE_MM_SET_ROUNDING_MODE_MM_GET_FLUSH_ZERO_MODE_MM_SET_FLUSH_ZERO_MODE_mm_prefetch_mm_sfence_mm_max_pi16_m_pmaxsw_mm_max_pu8_m_pmaxub_mm_min_pi16_m_pminsw_mm_min_pu8_m_pminub_mm_mulhi_pu16_m_pmulhuw_mm_avg_pu8_m_pavgb_mm_avg_pu16_m_pavgw_mm_sad_pu8_m_psadbw_mm_cvtsi32_ss_mm_cvt_si2ss_mm_cvtsi64_ss_mm_cvtpi32_ps_mm_cvt_pi2ps_mm_cvtpi16_ps_mm_cvtpu16_ps_mm_cvtpi8_ps_mm_cvtpu8_ps_mm_cvtpi32x2_ps_mm_stream_pi_mm_maskmove_si64_m_maskmovq_mm_extract_pi16_m_pextrw_mm_insert_pi16_m_pinsrw_mm_movemask_pi8_m_pmovmskb_mm_shuffle_pi16_m_pshufw_mm_add_ss_mm_add_ps_mm_sub_ss_mm_sub_ps_mm_mul_ss_mm_mul_ps_mm_div_ss_mm_div_ps_mm_sqrt_ss_mm_sqrt_ps_mm_rcp_ss_mm_rcp_ps_mm_rsqrt_ss_mm_rsqrt_ps_mm_min_ss_mm_min_ps_mm_max_ss_mm_max_ps_mm_and_ps_mm_andnot_ps_mm_or_ps_mm_xor_ps_mm_cmpeq_ss_mm_cmpeq_ps_mm_cmplt_ss_mm_cmplt_ps_mm_cmple_ss_mm_cmple_ps_mm_cmpgt_ss_mm_cmpgt_ps_mm_cmpge_ss_mm_cmpge_ps_mm_cmpneq_ss_mm_cmpneq_ps_mm_cmpnlt_ss_mm_cmpnlt_ps_mm_cmpnle_ss_mm_cmpnle_ps_mm_cmpngt_ss_mm_cmpngt_ps_mm_cmpnge_ss_mm_cmpnge_ps_mm_cmpord_ss_mm_cmpord_ps_mm_cmpunord_ss_mm_cmpunord_ps_mm_comieq_ss_mm_comilt_ss_mm_comile_ss_mm_comigt_ss_mm_comige_ss_mm_comineq_ss_mm_ucomieq_ss_mm_ucomilt_ss_mm_ucomile_ss_mm_ucomigt_ss_mm_ucomige_ss_mm_ucomineq_ss_mm_cvtss_si32_mm_cvt_ss2si_mm_cvtss_si64_mm_cvtss_f32_mm_cvtps_pi32_mm_cvt_ps2pi_mm_cvttss_si32_mm_cvtt_ss2si_mm_cvttss_si64_mm_cvttps_pi32_mm_cvtt_ps2pi_mm_cvtps_pi16_mm_cvtps_pi8_mm_set_ss_mm_set1_ps_mm_set_ps1_mm_set_ps_mm_setr_ps_mm_setzero_ps_mm_loadh_pi_mm_loadl_pi_mm_load_ss_mm_load1_ps_mm_load_ps1_mm_load_ps_mm_loadu_ps_mm_loadr_ps_mm_stream_ps_mm_storeh_pi_mm_storel_pi_mm_store_ss_mm_store1_ps_mm_store_ps1_mm_store_ps_mm_storeu_ps_mm_storer_ps_mm_move_ss_mm_shuffle_ps_mm_unpackhi_ps_mm_unpacklo_ps_mm_movehl_ps_mm_movelh_ps_mm_movemask_ps_mm_undefined_ps
sse2
_mm_pause_mm_clflush_mm_lfence_mm_mfence_mm_add_epi8_mm_add_epi16_mm_add_epi32_mm_add_si64_mm_add_epi64_mm_adds_epi8_mm_adds_epi16_mm_adds_epu8_mm_adds_epu16_mm_avg_epu8_mm_avg_epu16_mm_madd_epi16_mm_max_epi16_mm_max_epu8_mm_min_epi16_mm_min_epu8_mm_mulhi_epi16_mm_mulhi_epu16_mm_mullo_epi16_mm_mul_su32_mm_mul_epu32_mm_sad_epu8_mm_sub_epi8_mm_sub_epi16_mm_sub_epi32_mm_sub_si64_mm_sub_epi64_mm_subs_epi8_mm_subs_epi16_mm_subs_epu8_mm_subs_epu16_mm_slli_si128_mm_bslli_si128_mm_bsrli_si128_mm_slli_epi16_mm_sll_epi16_mm_slli_epi32_mm_sll_epi32_mm_slli_epi64_mm_sll_epi64_mm_srai_epi16_mm_sra_epi16_mm_srai_epi32_mm_sra_epi32_mm_srli_si128_mm_srli_epi16_mm_srl_epi16_mm_srli_epi32_mm_srl_epi32_mm_srli_epi64_mm_srl_epi64_mm_and_si128_mm_andnot_si128_mm_or_si128_mm_xor_si128_mm_cmpeq_epi8_mm_cmpeq_epi16_mm_cmpeq_epi32_mm_cmpgt_epi8_mm_cmpgt_epi16_mm_cmpgt_epi32_mm_cmplt_epi8_mm_cmplt_epi16_mm_cmplt_epi32_mm_cvtepi32_pd_mm_cvtsi32_sd_mm_cvtsi64_sd_mm_cvtsi64x_sd_mm_cvtepi32_ps_mm_cvtpi32_pd_mm_cvtsi32_si128_mm_cvtsi64_si128_mm_cvtsi64x_si128_mm_cvtsi128_si32_mm_cvtsi128_si64_mm_cvtsi128_si64x_mm_set_epi64_mm_set_epi64x_mm_set_epi32_mm_set_epi16_mm_set_epi8_mm_set1_epi64_mm_set1_epi64x_mm_set1_epi32_mm_set1_epi16_mm_set1_epi8_mm_setr_epi64_mm_setr_epi32_mm_setr_epi16_mm_setr_epi8_mm_setzero_si128_mm_loadl_epi64_mm_load_si128_mm_loadu_si128_mm_maskmoveu_si128_mm_store_si128_mm_storeu_si128_mm_storel_epi64_mm_stream_si128_mm_stream_si32_mm_stream_si64_mm_movepi64_pi64_mm_movpi64_epi64_mm_move_epi64_mm_packs_epi16_mm_packs_epi32_mm_packus_epi16_mm_extract_epi16_mm_insert_epi16_mm_movemask_epi8_mm_shuffle_epi32_mm_shufflehi_epi16_mm_shufflelo_epi16_mm_unpackhi_epi8_mm_unpackhi_epi16_mm_unpackhi_epi32_mm_unpackhi_epi64_mm_unpacklo_epi8_mm_unpacklo_epi16_mm_unpacklo_epi32_mm_unpacklo_epi64_mm_add_sd_mm_add_pd_mm_div_sd_mm_div_pd_mm_max_sd_mm_max_pd_mm_min_sd_mm_min_pd_mm_mul_sd_mm_mul_pd_mm_sqrt_sd_mm_sqrt_pd_mm_sub_sd_mm_sub_pd_mm_and_pd_mm_andnot_pd_mm_or_pd_mm_xor_pd_mm_cmpeq_sd_mm_cmplt_sd_mm_cmple_sd_mm_cmpgt_sd_mm_cmpge_sd_mm_cmpord_sd_mm_cmpunord_sd_mm_cmpneq_sd_mm_cmpnlt_sd_mm_cmpnle_sd_mm_cmpngt_sd_mm_cmpnge_sd_mm_cmpeq_pd_mm_cmplt_pd_mm_cmple_pd_mm_cmpgt_pd_mm_cmpge_pd_mm_cmpord_pd_mm_cmpunord_pd_mm_cmpneq_pd_mm_cmpnlt_pd_mm_cmpnle_pd_mm_cmpngt_pd_mm_cmpnge_pd_mm_comieq_sd_mm_comilt_sd_mm_comile_sd_mm_comigt_sd_mm_comige_sd_mm_comineq_sd_mm_ucomieq_sd_mm_ucomilt_sd_mm_ucomile_sd_mm_ucomigt_sd_mm_ucomige_sd_mm_ucomineq_sd_mm_cvtpd_ps_mm_cvtps_pd_mm_cvtpd_epi32_mm_cvtsd_si32_mm_cvtsd_si64_mm_cvtsd_si64x_mm_cvtsd_ss_mm_cvtsd_f64_mm_cvtss_sd_mm_cvttpd_epi32_mm_cvttsd_si32_mm_cvttsd_si64_mm_cvttsd_si64x_mm_cvtps_epi32_mm_cvttps_epi32_mm_cvtpd_pi32_mm_cvttpd_pi32_mm_set_sd_mm_set1_pd_mm_set_pd1_mm_set_pd_mm_setr_pd_mm_setzero_pd_mm_load_pd_mm_load1_pd_mm_load_pd1_mm_loadr_pd_mm_loadu_pd_mm_load_sd_mm_loadh_pd_mm_loadl_pd_mm_stream_pd_mm_store_sd_mm_store1_pd_mm_store_pd1_mm_store_pd_mm_storeu_pd_mm_storer_pd_mm_storeh_pd_mm_storel_pd_mm_unpackhi_pd_mm_unpacklo_pd_mm_movemask_pd_mm_shuffle_pd_mm_move_sd_mm_castpd_ps_mm_castpd_si128_mm_castps_pd_mm_castps_si128_mm_castsi128_pd_mm_castsi128_ps_mm_undefined_pd_mm_undefined_si128
sse3
_mm_addsub_ps_mm_addsub_pd_mm_hadd_pd_mm_hadd_ps_mm_hsub_pd_mm_hsub_ps_mm_lddqu_si128_mm_movedup_pd_mm_loaddup_pd_mm_movehdup_ps_mm_moveldup_ps
ssse3
_mm_abs_pi8_mm_abs_epi8_mm_abs_pi16_mm_abs_epi16_mm_abs_pi32_mm_abs_epi32_mm_shuffle_epi8_mm_shuffle_pi8_mm_alignr_epi8_mm_alignr_pi8_mm_hadd_epi16_mm_hadds_epi16_mm_hadd_epi32_mm_hadd_pi16_mm_hadd_pi32_mm_hadds_pi16_mm_hsub_epi16_mm_hsubs_epi16_mm_hsub_epi32_mm_hsub_pi16_mm_hsub_pi32_mm_hsubs_pi16_mm_maddubs_epi16_mm_maddubs_pi16_mm_mulhrs_epi16_mm_mulhrs_pi16_mm_sign_epi8_mm_sign_epi16_mm_sign_epi32_mm_sign_pi8_mm_sign_pi16_mm_sign_pi32
sse4.1
_mm_blend_pd_mm_blend_ps_mm_blendv_pd_mm_blendv_ps_mm_blendv_epi8_mm_blend_epi16_mm_dp_pd_mm_dp_ps_mm_extract_ps_mm_extract_epi8_mm_extract_epi32_mm_extract_epi64_mm_insert_ps_mm_insert_epi8_mm_insert_epi32_mm_insert_epi64_mm_max_epi8_mm_max_epi32_mm_max_epu32_mm_max_epu16_mm_min_epi8_mm_min_epi32_mm_min_epu32_mm_min_epu16_mm_packus_epi32_mm_cmpeq_epi64_mm_cvtepi8_epi16_mm_cvtepi8_epi32_mm_cvtepi8_epi64_mm_cvtepi16_epi32_mm_cvtepi16_epi64_mm_cvtepi32_epi64_mm_cvtepu8_epi16_mm_cvtepu8_epi32_mm_cvtepu8_epi64_mm_cvtepu16_epi32_mm_cvtepu16_epi64_mm_cvtepu32_epi64_mm_mul_epi32_mm_mullo_epi32_mm_testz_si128_mm_testc_si128_mm_testnzc_si128_mm_test_all_zeros_mm_test_mix_ones_zeros_mm_test_all_ones_mm_round_pd_mm_floor_pd_mm_ceil_pd_mm_round_ps_mm_floor_ps_mm_ceil_ps_mm_round_sd_mm_floor_sd_mm_ceil_sd_mm_round_ss_mm_floor_ss_mm_ceil_ss_mm_minpos_epu16_mm_mpsadbw_epu8_mm_stream_load_si128
sse4.2
_mm_cmpistrm_mm_cmpistri_mm_cmpistrz_mm_cmpistrc_mm_cmpistrs_mm_cmpistro_mm_cmpistra_mm_cmpestrm_mm_cmpestri_mm_cmpestrz_mm_cmpestrc_mm_cmpestrs_mm_cmpestro_mm_cmpestra_mm_cmpgt_epi64_mm_crc32_u8_mm_crc32_u16_mm_crc32_u32_mm_crc32_u64
avx
_mm256_add_pd_mm256_add_ps_mm256_addsub_pd_mm256_addsub_ps_mm256_and_pd_mm256_and_ps_mm256_andnot_pd_mm256_andnot_ps_mm256_blend_pd_mm256_blend_ps_mm256_blendv_pd_mm256_blendv_ps_mm256_div_pd_mm256_div_ps_mm256_dp_ps_mm256_hadd_pd_mm256_hadd_ps_mm256_hsub_pd_mm256_hsub_ps_mm256_max_pd_mm256_max_ps_mm256_min_pd_mm256_min_ps_mm256_mul_pd_mm256_mul_ps_mm256_or_pd_mm256_or_ps_mm256_shuffle_pd_mm256_shuffle_ps_mm256_sub_pd_mm256_sub_ps_mm256_xor_pd_mm256_xor_ps_mm_cmp_pd_mm256_cmp_pd_mm_cmp_ps_mm256_cmp_ps_mm_cmp_sd_mm_cmp_ss_mm256_cvtepi32_pd_mm256_cvtepi32_ps_mm256_cvtpd_ps_mm256_cvtps_epi32_mm256_cvtps_pd_mm256_cvttpd_epi32_mm256_cvtpd_epi32_mm256_cvttps_epi32_mm256_extractf128_ps_mm256_extractf128_pd_mm256_extractf128_si256_mm256_extract_epi8_mm256_extract_epi16_mm256_extract_epi32_mm256_extract_epi64_mm256_zeroall_mm256_zeroupper_mm256_permutevar_ps_mm_permutevar_ps_mm256_permute_ps_mm_permute_ps_mm256_permutevar_pd_mm_permutevar_pd_mm256_permute_pd_mm_permute_pd_mm256_permute2f128_ps_mm256_permute2f128_pd_mm256_permute2f128_si256_mm256_broadcast_ss_mm_broadcast_ss_mm256_broadcast_sd_mm256_broadcast_ps_mm256_broadcast_pd_mm256_insertf128_ps_mm256_insertf128_pd_mm256_insertf128_si256_mm256_insert_epi8_mm256_insert_epi16_mm256_insert_epi32_mm256_insert_epi64_mm256_load_pd_mm256_store_pd_mm256_load_ps_mm256_store_ps_mm256_loadu_pd_mm256_storeu_pd_mm256_loadu_ps_mm256_storeu_ps_mm256_load_si256_mm256_store_si256_mm256_loadu_si256_mm256_storeu_si256_mm256_maskload_pd_mm256_maskstore_pd_mm_maskload_pd_mm_maskstore_pd_mm256_maskload_ps_mm256_maskstore_ps_mm_maskload_ps_mm_maskstore_ps_mm256_movehdup_ps_mm256_moveldup_ps_mm256_movedup_pd_mm256_lddqu_si256_mm256_stream_si256_mm256_stream_pd_mm256_stream_ps_mm256_rcp_ps_mm256_rsqrt_ps_mm256_sqrt_pd_mm256_sqrt_ps_mm256_round_pd_mm256_round_ps_mm256_unpackhi_pd_mm256_unpackhi_ps_mm256_unpacklo_pd_mm256_unpacklo_ps_mm256_testz_si256_mm256_testc_si256_mm256_testnzc_si256_mm256_testz_pd_mm256_testc_pd_mm256_testnzc_pd_mm_testz_pd_mm_testc_pd_mm_testnzc_pd_mm256_testz_ps_mm256_testc_ps_mm256_testnzc_ps_mm_testz_ps_mm_testc_ps_mm_testnzc_ps_mm256_movemask_pd_mm256_movemask_ps_mm256_setzero_pd_mm256_setzero_ps_mm256_setzero_si256_mm256_set_pd_mm256_set_ps_mm256_set_epi8_mm256_set_epi16_mm256_set_epi32_mm256_set_epi64x_mm256_setr_pd_mm256_setr_ps_mm256_setr_epi8_mm256_setr_epi16_mm256_setr_epi32_mm256_setr_epi64x_mm256_set1_pd_mm256_set1_ps_mm256_set1_epi8_mm256_set1_epi16_mm256_set1_epi32_mm256_set1_epi64x_mm256_castpd_ps_mm256_castps_pd_mm256_castps_si256_mm256_castpd_si256_mm256_castsi256_ps_mm256_castsi256_pd_mm256_castps256_ps128_mm256_castpd256_pd128_mm256_castsi256_si128_mm256_castps128_ps256_mm256_castpd128_pd256_mm256_castsi128_si256_mm256_zextps128_ps256_mm256_zextpd128_pd256_mm256_zextsi128_si256_mm256_floor_ps_mm256_ceil_ps_mm256_floor_pd_mm256_ceil_pd_mm256_undefined_ps_mm256_undefined_pd_mm256_undefined_si256_mm256_set_m128_mm256_set_m128d_mm256_set_m128i_mm256_setr_m128_mm256_setr_m128d_mm256_setr_m128i_mm256_loadu2_m128_mm256_loadu2_m128d_mm256_loadu2_m128i_mm256_storeu2_m128_mm256_storeu2_m128d_mm256_storeu2_m128i
avx2
_mm256_abs_epi8_mm256_abs_epi16_mm256_abs_epi32_mm256_add_epi8_mm256_add_epi16_mm256_add_epi32_mm256_add_epi64_mm256_adds_epi8_mm256_adds_epi16_mm256_adds_epu8_mm256_adds_epu16_mm256_alignr_epi8_mm256_and_si256_mm256_andnot_si256_mm256_avg_epu8_mm256_avg_epu16_mm256_blend_epi16_mm_blend_epi32_mm256_blend_epi32_mm256_blendv_epi8_mm_broadcastb_epi8_mm256_broadcastb_epi8_mm_broadcastd_epi32_mm256_broadcastd_epi32_mm_broadcastq_epi64_mm256_broadcastq_epi64_mm_broadcastsd_pd_mm256_broadcastsd_pd_mm_broadcastsi128_si256_mm256_broadcastsi128_si256_mm_broadcastss_ps_mm256_broadcastss_ps_mm_broadcastw_epi16_mm256_broadcastw_epi16_mm256_cmpeq_epi8_mm256_cmpeq_epi16_mm256_cmpeq_epi32_mm256_cmpeq_epi64_mm256_cmpgt_epi8_mm256_cmpgt_epi16_mm256_cmpgt_epi32_mm256_cmpgt_epi64_mm256_cvtepi16_epi32_mm256_cvtepi16_epi64_mm256_cvtepi32_epi64_mm256_cvtepi8_epi16_mm256_cvtepi8_epi32_mm256_cvtepi8_epi64_mm256_cvtepu16_epi32_mm256_cvtepu16_epi64_mm256_cvtepu32_epi64_mm256_cvtepu8_epi16_mm256_cvtepu8_epi32_mm256_cvtepu8_epi64_mm256_extracti128_si256_mm256_hadd_epi16_mm256_hadd_epi32_mm256_hadds_epi16_mm256_hsub_epi16_mm256_hsub_epi32_mm256_hsubs_epi16_mm_i32gather_pd_mm256_i32gather_pd_mm_i32gather_ps_mm256_i32gather_ps_mm_i32gather_epi32_mm256_i32gather_epi32_mm_i32gather_epi64_mm256_i32gather_epi64_mm_i64gather_pd_mm256_i64gather_pd_mm_i64gather_ps_mm256_i64gather_ps_mm_i64gather_epi32_mm256_i64gather_epi32_mm_i64gather_epi64_mm256_i64gather_epi64_mm256_inserti128_si256_mm256_madd_epi16_mm256_maddubs_epi16_mm_mask_i32gather_pd_mm256_mask_i32gather_pd_mm_mask_i32gather_ps_mm256_mask_i32gather_ps_mm_mask_i32gather_epi32_mm256_mask_i32gather_epi32_mm_mask_i32gather_epi64_mm256_mask_i32gather_epi64_mm_mask_i64gather_pd_mm256_mask_i64gather_pd_mm_mask_i64gather_ps_mm256_mask_i64gather_ps_mm_mask_i64gather_epi32_mm256_mask_i64gather_epi32_mm_mask_i64gather_epi64_mm256_mask_i64gather_epi64_mm_maskload_epi32_mm256_maskload_epi32_mm_maskload_epi64_mm256_maskload_epi64_mm_maskstore_epi32_mm256_maskstore_epi32_mm_maskstore_epi64_mm256_maskstore_epi64_mm256_max_epi8_mm256_max_epi16_mm256_max_epi32_mm256_max_epu8_mm256_max_epu16_mm256_max_epu32_mm256_min_epi8_mm256_min_epi16_mm256_min_epi32_mm256_min_epu8_mm256_min_epu16_mm256_min_epu32_mm256_movemask_epi8_mm256_mpsadbw_epu8_mm256_mul_epi32_mm256_mul_epu32_mm256_mulhi_epi16_mm256_mulhi_epu16_mm256_mulhrs_epi16_mm256_mullo_epi16_mm256_mullo_epi32_mm256_or_si256_mm256_packs_epi16_mm256_packs_epi32_mm256_packus_epi16_mm256_packus_epi32_mm256_permute2x128_si256_mm256_permute4x64_epi64_mm256_permute4x64_pd_mm256_permutevar8x32_epi32_mm256_permutevar8x32_ps_mm256_sad_epu8_mm256_shuffle_epi32_mm256_shuffle_epi8_mm256_shufflehi_epi16_mm256_shufflelo_epi16_mm256_sign_epi8_mm256_sign_epi16_mm256_sign_epi32_mm256_slli_si256_mm256_bslli_epi128_mm256_sll_epi16_mm256_slli_epi16_mm256_sll_epi32_mm256_slli_epi32_mm256_sll_epi64_mm256_slli_epi64_mm_sllv_epi32_mm256_sllv_epi32_mm_sllv_epi64_mm256_sllv_epi64_mm256_sra_epi16_mm256_srai_epi16_mm256_sra_epi32_mm256_srai_epi32_mm_srav_epi32_mm256_srav_epi32_mm256_srli_si256_mm256_bsrli_epi128_mm256_srl_epi16_mm256_srli_epi16_mm256_srl_epi32_mm256_srli_epi32_mm256_srl_epi64_mm256_srli_epi64_mm_srlv_epi32_mm256_srlv_epi32_mm_srlv_epi64_mm256_srlv_epi64_mm256_stream_load_si256_mm256_sub_epi8_mm256_sub_epi16_mm256_sub_epi32_mm256_sub_epi64_mm256_subs_epi8_mm256_subs_epi16_mm256_subs_epu8_mm256_subs_epu16_mm256_xor_si256_mm256_unpackhi_epi8_mm256_unpackhi_epi16_mm256_unpackhi_epi32_mm256_unpackhi_epi64_mm256_unpacklo_epi8_mm256_unpacklo_epi16_mm256_unpacklo_epi32_mm256_unpacklo_epi64