Avx512bw (#953)
This commit is contained in:
parent
fd99d973dc
commit
ea5a0d01d3
7 changed files with 7007 additions and 9 deletions
322
library/stdarch/crates/core_arch/avx512bw.md
Normal file
322
library/stdarch/crates/core_arch/avx512bw.md
Normal file
|
|
@ -0,0 +1,322 @@
|
|||
<summary>["AVX512BW"]</summary><p>
|
||||
|
||||
* [x] [`_mm512_abs_epi16`]
|
||||
* [x] [`_mm512_mask_abs_epi16`]
|
||||
* [x] [`_mm512_maskz_abs_epi16`]
|
||||
* [x] [`_mm512_abs_epi8`]
|
||||
* [x] [`_mm512_mask_abs_epi8`]
|
||||
* [x] [`_mm512_maskz_abs_epi8`]
|
||||
* [x] [`_mm512_add_epi16`]
|
||||
* [x] [`_mm512_mask_add_epi16`]
|
||||
* [x] [`_mm512_maskz_add_epi16`]
|
||||
* [x] [`_mm512_add_epi8`]
|
||||
* [x] [`_mm512_mask_add_epi8`]
|
||||
* [x] [`_mm512_maskz_add_epi8`]
|
||||
* [x] [`_mm512_adds_epi16`]
|
||||
* [x] [`_mm512_mask_adds_epi16`]
|
||||
* [x] [`_mm512_maskz_adds_epi16`]
|
||||
* [x] [`_mm512_adds_epi8`]
|
||||
* [x] [`_mm512_mask_adds_epi8`]
|
||||
* [x] [`_mm512_maskz_adds_epi8`]
|
||||
* [x] [`_mm512_adds_epu16`]
|
||||
* [x] [`_mm512_mask_adds_epu16`]
|
||||
* [x] [`_mm512_maskz_adds_epu16`]
|
||||
* [x] [`_mm512_adds_epu8`]
|
||||
* [x] [`_mm512_mask_adds_epu8`]
|
||||
* [x] [`_mm512_maskz_adds_epu8`]
|
||||
* [x] [`_mm512_alignr_epi8`]
|
||||
* [_] [`_mm512_mask_alignr_epi8`]
|
||||
* [_] [`_mm512_maskz_alignr_epi8`]
|
||||
* [x] [`_mm512_avg_epu16`]
|
||||
* [x] [`_mm512_mask_avg_epu16`]
|
||||
* [x] [`_mm512_maskz_avg_epu16`]
|
||||
* [x] [`_mm512_avg_epu8`]
|
||||
* [x] [`_mm512_mask_avg_epu8`]
|
||||
* [x] [`_mm512_maskz_avg_epu8`]
|
||||
* [x] [`_mm512_mask_blend_epi16`]
|
||||
* [x] [`_mm512_mask_blend_epi8`]
|
||||
* [x] [`_mm512_broadcastb_epi8`]
|
||||
* [x] [`_mm512_mask_broadcastb_epi8`]
|
||||
* [x] [`_mm512_maskz_broadcastb_epi8`]
|
||||
* [x] [`_mm512_broadcastw_epi16`]
|
||||
* [x] [`_mm512_mask_broadcastw_epi16`]
|
||||
* [x] [`_mm512_maskz_broadcastw_epi16`]
|
||||
* [_] [`_mm512_bslli_epi128`]
|
||||
* [_] [`_mm512_bsrli_epi128`]
|
||||
* [x] [`_mm512_cmp_epi16_mask`]
|
||||
* [x] [`_mm512_mask_cmp_epi16_mask`]
|
||||
* [x] [`_mm512_cmp_epi8_mask`]
|
||||
* [x] [`_mm512_mask_cmp_epi8_mask`]
|
||||
* [x] [`_mm512_cmp_epu16_mask`]
|
||||
* [x] [`_mm512_mask_cmp_epu16_mask`]
|
||||
* [x] [`_mm512_cmp_epu8_mask`]
|
||||
* [x] [`_mm512_mask_cmp_epu8_mask`]
|
||||
* [x] [`_mm512_cmpeq_epi16_mask`]
|
||||
* [x] [`_mm512_mask_cmpeq_epi16_mask`]
|
||||
* [x] [`_mm512_cmpeq_epi8_mask`]
|
||||
* [x] [`_mm512_mask_cmpeq_epi8_mask`]
|
||||
* [x] [`_mm512_cmpeq_epu16_mask`]
|
||||
* [x] [`_mm512_mask_cmpeq_epu16_mask`]
|
||||
* [x] [`_mm512_cmpeq_epu8_mask`]
|
||||
* [x] [`_mm512_mask_cmpeq_epu8_mask`]
|
||||
* [x] [`_mm512_cmpge_epi16_mask`]
|
||||
* [x] [`_mm512_mask_cmpge_epi16_mask`]
|
||||
* [x] [`_mm512_cmpge_epi8_mask`]
|
||||
* [x] [`_mm512_mask_cmpge_epi8_mask`]
|
||||
* [x] [`_mm512_cmpge_epu16_mask`]
|
||||
* [x] [`_mm512_mask_cmpge_epu16_mask`]
|
||||
* [x] [`_mm512_cmpge_epu8_mask`]
|
||||
* [x] [`_mm512_mask_cmpge_epu8_mask`]
|
||||
* [x] [`_mm512_cmpgt_epi16_mask`]
|
||||
* [x] [`_mm512_mask_cmpgt_epi16_mask`]
|
||||
* [x] [`_mm512_cmpgt_epi8_mask`]
|
||||
* [x] [`_mm512_mask_cmpgt_epi8_mask`]
|
||||
* [x] [`_mm512_cmpgt_epu16_mask`]
|
||||
* [x] [`_mm512_mask_cmpgt_epu16_mask`]
|
||||
* [x] [`_mm512_cmpgt_epu8_mask`]
|
||||
* [x] [`_mm512_mask_cmpgt_epu8_mask`]
|
||||
* [x] [`_mm512_cmple_epi16_mask`]
|
||||
* [x] [`_mm512_mask_cmple_epi16_mask`]
|
||||
* [x] [`_mm512_cmple_epi8_mask`]
|
||||
* [x] [`_mm512_mask_cmple_epi8_mask`]
|
||||
* [x] [`_mm512_cmple_epu16_mask`]
|
||||
* [x] [`_mm512_mask_cmple_epu16_mask`]
|
||||
* [x] [`_mm512_cmple_epu8_mask`]
|
||||
* [x] [`_mm512_mask_cmple_epu8_mask`]
|
||||
* [x] [`_mm512_cmplt_epi16_mask`]
|
||||
* [x] [`_mm512_mask_cmplt_epi16_mask`]
|
||||
* [x] [`_mm512_cmplt_epi8_mask`]
|
||||
* [x] [`_mm512_mask_cmplt_epi8_mask`]
|
||||
* [x] [`_mm512_cmplt_epu16_mask`]
|
||||
* [x] [`_mm512_mask_cmplt_epu16_mask`]
|
||||
* [x] [`_mm512_cmplt_epu8_mask`]
|
||||
* [x] [`_mm512_mask_cmplt_epu8_mask`]
|
||||
* [x] [`_mm512_cmpneq_epi16_mask`]
|
||||
* [x] [`_mm512_mask_cmpneq_epi16_mask`]
|
||||
* [x] [`_mm512_cmpneq_epi8_mask`]
|
||||
* [x] [`_mm512_mask_cmpneq_epi8_mask`]
|
||||
* [x] [`_mm512_cmpneq_epu16_mask`]
|
||||
* [x] [`_mm512_mask_cmpneq_epu16_mask`]
|
||||
* [x] [`_mm512_cmpneq_epu8_mask`]
|
||||
* [x] [`_mm512_mask_cmpneq_epu8_mask`]
|
||||
* [_] [`_mm512_cvtepi16_epi8`]
|
||||
* [_] [`_mm512_mask_cvtepi16_epi8`]
|
||||
* [_] [`_mm512_maskz_cvtepi16_epi8`]
|
||||
* [_] [`_mm512_mask_cvtepi16_storeu_epi8`]
|
||||
* [_] [`_mm512_cvtepi8_epi16`]
|
||||
* [_] [`_mm512_mask_cvtepi8_epi16`]
|
||||
* [_] [`_mm512_maskz_cvtepi8_epi16`]
|
||||
* [_] [`_mm512_cvtepu8_epi16`]
|
||||
* [_] [`_mm512_mask_cvtepu8_epi16`]
|
||||
* [_] [`_mm512_maskz_cvtepu8_epi16`]
|
||||
* [_] [`_cvtmask32_u32`]
|
||||
* [_] [`_cvtmask64_u64`]
|
||||
* [_] [`_mm512_cvtsepi16_epi8`]
|
||||
* [_] [`_mm512_mask_cvtsepi16_epi8`]
|
||||
* [_] [`_mm512_maskz_cvtsepi16_epi8`]
|
||||
* [_] [`_mm512_mask_cvtsepi16_storeu_epi8`]
|
||||
* [_] [`_cvtu32_mask32`]
|
||||
* [_] [`_cvtu64_mask64`]
|
||||
* [_] [`_mm512_cvtusepi16_epi8`]
|
||||
* [_] [`_mm512_mask_cvtusepi16_epi8`]
|
||||
* [_] [`_mm512_maskz_cvtusepi16_epi8`]
|
||||
* [_] [`_mm512_mask_cvtusepi16_storeu_epi8`]
|
||||
* [_] [`_mm512_dbsad_epu8`]
|
||||
* [_] [`_mm512_mask_dbsad_epu8`]
|
||||
* [_] [`_mm512_maskz_dbsad_epu8`]
|
||||
* [_] [`_kadd_mask32`]
|
||||
* [_] [`_kadd_mask64`]
|
||||
* [_] [`_kand_mask32`]
|
||||
* [_] [`_kand_mask64`]
|
||||
* [_] [`_kandn_mask32`]
|
||||
* [_] [`_kandn_mask64`]
|
||||
* [_] [`_knot_mask32`]
|
||||
* [_] [`_knot_mask64`]
|
||||
* [_] [`_kor_mask32`]
|
||||
* [_] [`_kor_mask64`]
|
||||
* [_] [`_kortest_mask32_u8`]
|
||||
* [_] [`_kortest_mask64_u8`]
|
||||
* [_] [`_kortestc_mask32_u8`]
|
||||
* [_] [`_kortestc_mask64_u8`]
|
||||
* [_] [`_kortestz_mask32_u8`]
|
||||
* [_] [`_kortestz_mask64_u8`]
|
||||
* [_] [`_kshiftli_mask32`]
|
||||
* [_] [`_kshiftli_mask64`]
|
||||
* [_] [`_kshiftri_mask32`]
|
||||
* [_] [`_kshiftri_mask64`]
|
||||
* [_] [`_ktest_mask32_u8`]
|
||||
* [_] [`_ktest_mask64_u8`]
|
||||
* [_] [`_ktestc_mask32_u8`]
|
||||
* [_] [`_ktestc_mask64_u8`]
|
||||
* [_] [`_ktestz_mask32_u8`]
|
||||
* [_] [`_ktestz_mask64_u8`]
|
||||
* [_] [`_mm512_kunpackd`]
|
||||
* [_] [`_mm512_kunpackw`]
|
||||
* [_] [`_kxnor_mask32`]
|
||||
* [_] [`_kxnor_mask64`]
|
||||
* [_] [`_kxor_mask32`]
|
||||
* [_] [`_kxor_mask64`]
|
||||
* [_] [`_load_mask32`]
|
||||
* [_] [`_load_mask64`]
|
||||
* [x] [`_mm512_loadu_epi16`]
|
||||
* [_] [`_mm512_mask_loadu_epi16`]
|
||||
* [_] [`_mm512_maskz_loadu_epi16`]
|
||||
* [x] [`_mm512_loadu_epi8`]
|
||||
* [_] [`_mm512_mask_loadu_epi8`]
|
||||
* [_] [`_mm512_maskz_loadu_epi8`]
|
||||
* [x] [`_mm512_madd_epi16`]
|
||||
* [x] [`_mm512_mask_madd_epi16`]
|
||||
* [x] [`_mm512_maskz_madd_epi16`]
|
||||
* [x] [`_mm512_maddubs_epi16`]
|
||||
* [x] [`_mm512_mask_maddubs_epi16`]
|
||||
* [x] [`_mm512_maskz_maddubs_epi16`]
|
||||
* [x] [`_mm512_mask_max_epi16`]
|
||||
* [x] [`_mm512_maskz_max_epi16`]
|
||||
* [x] [`_mm512_max_epi16`]
|
||||
* [x] [`_mm512_mask_max_epi8`]
|
||||
* [x] [`_mm512_maskz_max_epi8`]
|
||||
* [x] [`_mm512_max_epi8`]
|
||||
* [x] [`_mm512_mask_max_epu16`]
|
||||
* [x] [`_mm512_maskz_max_epu16`]
|
||||
* [x] [`_mm512_max_epu16`]
|
||||
* [x] [`_mm512_mask_max_epu8`]
|
||||
* [x] [`_mm512_maskz_max_epu8`]
|
||||
* [x] [`_mm512_max_epu8`]
|
||||
* [x] [`_mm512_mask_min_epi16`]
|
||||
* [x] [`_mm512_maskz_min_epi16`]
|
||||
* [x] [`_mm512_min_epi16`]
|
||||
* [x] [`_mm512_mask_min_epi8`]
|
||||
* [x] [`_mm512_maskz_min_epi8`]
|
||||
* [x] [`_mm512_min_epi8`]
|
||||
* [x] [`_mm512_mask_min_epu16`]
|
||||
* [x] [`_mm512_maskz_min_epu16`]
|
||||
* [x] [`_mm512_min_epu16`]
|
||||
* [x] [`_mm512_mask_min_epu8`]
|
||||
* [x] [`_mm512_maskz_min_epu8`]
|
||||
* [x] [`_mm512_min_epu8`]
|
||||
* [x] [`_mm512_mask_mov_epi16`]
|
||||
* [x] [`_mm512_maskz_mov_epi16`]
|
||||
* [x] [`_mm512_mask_mov_epi8`]
|
||||
* [x] [`_mm512_maskz_mov_epi8`]
|
||||
* [_] [`_mm512_movepi16_mask`]
|
||||
* [_] [`_mm512_movepi8_mask`]
|
||||
* [_] [`_mm512_movm_epi16`]
|
||||
* [_] [`_mm512_movm_epi8`]
|
||||
* [x] [`_mm512_mask_mulhi_epi16`]
|
||||
* [x] [`_mm512_maskz_mulhi_epi16`]
|
||||
* [x] [`_mm512_mulhi_epi16`]
|
||||
* [x] [`_mm512_mask_mulhi_epu16`]
|
||||
* [x] [`_mm512_maskz_mulhi_epu16`]
|
||||
* [x] [`_mm512_mulhi_epu16`]
|
||||
* [x] [`_mm512_mask_mulhrs_epi16`]
|
||||
* [x] [`_mm512_maskz_mulhrs_epi16`]
|
||||
* [x] [`_mm512_mulhrs_epi16`]
|
||||
* [x] [`_mm512_mask_mullo_epi16`]
|
||||
* [x] [`_mm512_maskz_mullo_epi16`]
|
||||
* [x] [`_mm512_mullo_epi16`]
|
||||
* [x] [`_mm512_mask_packs_epi16`]
|
||||
* [x] [`_mm512_maskz_packs_epi16`]
|
||||
* [x] [`_mm512_packs_epi16`]
|
||||
* [x] [`_mm512_mask_packs_epi32`]
|
||||
* [x] [`_mm512_maskz_packs_epi32`]
|
||||
* [x] [`_mm512_packs_epi32`]
|
||||
* [x] [`_mm512_mask_packus_epi16`]
|
||||
* [x] [`_mm512_maskz_packus_epi16`]
|
||||
* [x] [`_mm512_packus_epi16`]
|
||||
* [x] [`_mm512_mask_packus_epi32`]
|
||||
* [x] [`_mm512_maskz_packus_epi32`]
|
||||
* [x] [`_mm512_packus_epi32`]
|
||||
* [x] [`_mm512_mask_permutex2var_epi16`]
|
||||
* [x] [`_mm512_mask2_permutex2var_epi16`]
|
||||
* [x] [`_mm512_maskz_permutex2var_epi16`]
|
||||
* [x] [`_mm512_permutex2var_epi16`]
|
||||
* [x] [`_mm512_mask_permutexvar_epi16`]
|
||||
* [x] [`_mm512_maskz_permutexvar_epi16`]
|
||||
* [x] [`_mm512_permutexvar_epi16`]
|
||||
* [_] [`_mm512_sad_epu8`]
|
||||
* [x] [`_mm512_mask_set1_epi16`]
|
||||
* [x] [`_mm512_maskz_set1_epi16`]
|
||||
* [x] [`_mm512_mask_set1_epi8`]
|
||||
* [x] [`_mm512_maskz_set1_epi8`]
|
||||
* [_] [`_mm512_mask_shuffle_epi8`]
|
||||
* [_] [`_mm512_maskz_shuffle_epi8`]
|
||||
* [_] [`_mm512_shuffle_epi8`]
|
||||
* [x] [`_mm512_mask_shufflehi_epi16`]
|
||||
* [x] [`_mm512_maskz_shufflehi_epi16`]
|
||||
* [x] [`_mm512_shufflehi_epi16`]
|
||||
* [x] [`_mm512_mask_shufflelo_epi16`]
|
||||
* [x] [`_mm512_maskz_shufflelo_epi16`]
|
||||
* [x] [`_mm512_shufflelo_epi16`]
|
||||
* [x] [`_mm512_mask_sll_epi16`]
|
||||
* [x] [`_mm512_maskz_sll_epi16`]
|
||||
* [x] [`_mm512_sll_epi16`]
|
||||
* [x] [`_mm512_mask_slli_epi16`]
|
||||
* [x] [`_mm512_maskz_slli_epi16`]
|
||||
* [x] [`_mm512_slli_epi16`]
|
||||
* [x] [`_mm512_mask_sllv_epi16`]
|
||||
* [x] [`_mm512_maskz_sllv_epi16`]
|
||||
* [x] [`_mm512_sllv_epi16`]
|
||||
* [x] [`_mm512_mask_sra_epi16`]
|
||||
* [x] [`_mm512_maskz_sra_epi16`]
|
||||
* [x] [`_mm512_sra_epi16`]
|
||||
* [x] [`_mm512_mask_srai_epi16`]
|
||||
* [x] [`_mm512_maskz_srai_epi16`]
|
||||
* [x] [`_mm512_srai_epi16`]
|
||||
* [x] [`_mm512_mask_srav_epi16`]
|
||||
* [x] [`_mm512_maskz_srav_epi16`]
|
||||
* [x] [`_mm512_srav_epi16`]
|
||||
* [x] [`_mm512_mask_srl_epi16`]
|
||||
* [x] [`_mm512_maskz_srl_epi16`]
|
||||
* [x] [`_mm512_srl_epi16`]
|
||||
* [x] [`_mm512_mask_srli_epi16`]
|
||||
* [x] [`_mm512_maskz_srli_epi16`]
|
||||
* [x] [`_mm512_srli_epi16`]
|
||||
* [x] [`_mm512_mask_srlv_epi16`]
|
||||
* [x] [`_mm512_maskz_srlv_epi16`]
|
||||
* [x] [`_mm512_srlv_epi16`]
|
||||
* [_] [`_store_mask32`]
|
||||
* [_] [`_store_mask64`]
|
||||
* [_] [`_mm512_mask_storeu_epi16`]
|
||||
* [x] [`_mm512_storeu_epi16`]
|
||||
* [_] [`_mm512_mask_storeu_epi8`]
|
||||
* [x] [`_mm512_storeu_epi8`]
|
||||
* [x] [`_mm512_mask_sub_epi16`]
|
||||
* [x] [`_mm512_maskz_sub_epi16`]
|
||||
* [x] [`_mm512_sub_epi16`]
|
||||
* [x] [`_mm512_mask_sub_epi8`]
|
||||
* [x] [`_mm512_maskz_sub_epi8`
|
||||
* [x] [`_mm512_sub_epi8`]
|
||||
* [x] [`_mm512_mask_subs_epi16`]
|
||||
* [x] [`_mm512_maskz_subs_epi16`]
|
||||
* [x] [`_mm512_subs_epi16`]
|
||||
* [x] [`_mm512_mask_subs_epi8`]
|
||||
* [x] [`_mm512_maskz_subs_epi8`]
|
||||
* [x] [`_mm512_subs_epi8`]
|
||||
* [x] [`_mm512_mask_subs_epu16`]
|
||||
* [x] [`_mm512_maskz_subs_epu16`]
|
||||
* [x] [`_mm512_subs_epu16`]
|
||||
* [x] [`_mm512_mask_subs_epu8`]
|
||||
* [x] [`_mm512_maskz_subs_epu8`]
|
||||
* [x] [`_mm512_subs_epu8`]
|
||||
* [_] [`_mm512_mask_test_epi16_mask`]
|
||||
* [_] [`_mm512_test_epi16_mask`]
|
||||
* [_] [`_mm512_mask_test_epi8_mask`]
|
||||
* [_] [`_mm512_test_epi8_mask`]
|
||||
* [_] [`_mm512_mask_testn_epi16_mask`]
|
||||
* [_] [`_mm512_testn_epi16_mask`]
|
||||
* [_] [`_mm512_mask_testn_epi8_mask`]
|
||||
* [_] [`_mm512_testn_epi8_mask`]
|
||||
* [x] [`_mm512_mask_unpackhi_epi16`]
|
||||
* [x] [`_mm512_maskz_unpackhi_epi16`]
|
||||
* [x] [`_mm512_unpackhi_epi16`]
|
||||
* [x] [`_mm512_mask_unpackhi_epi8`]
|
||||
* [x] [`_mm512_maskz_unpackhi_epi8`]
|
||||
* [x] [`_mm512_unpackhi_epi8`]
|
||||
* [x] [`_mm512_mask_unpacklo_epi16`]
|
||||
* [x] [`_mm512_maskz_unpacklo_epi16`]
|
||||
* [x] [`_mm512_unpacklo_epi16`]
|
||||
* [x] [`_mm512_mask_unpacklo_epi8`]
|
||||
* [x] [`_mm512_maskz_unpacklo_epi8`]
|
||||
* [x] [`_mm512_unpacklo_epi8`]
|
||||
|
||||
</p>
|
||||
|
|
@ -685,6 +685,136 @@ simd_ty!(
|
|||
x63
|
||||
);
|
||||
|
||||
simd_ty!(
|
||||
u8x64[u8]: u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8,
|
||||
u8 | x0,
|
||||
x1,
|
||||
x2,
|
||||
x3,
|
||||
x4,
|
||||
x5,
|
||||
x6,
|
||||
x7,
|
||||
x8,
|
||||
x9,
|
||||
x10,
|
||||
x11,
|
||||
x12,
|
||||
x13,
|
||||
x14,
|
||||
x15,
|
||||
x16,
|
||||
x17,
|
||||
x18,
|
||||
x19,
|
||||
x20,
|
||||
x21,
|
||||
x22,
|
||||
x23,
|
||||
x24,
|
||||
x25,
|
||||
x26,
|
||||
x27,
|
||||
x28,
|
||||
x29,
|
||||
x30,
|
||||
x31,
|
||||
x32,
|
||||
x33,
|
||||
x34,
|
||||
x35,
|
||||
x36,
|
||||
x37,
|
||||
x38,
|
||||
x39,
|
||||
x40,
|
||||
x41,
|
||||
x42,
|
||||
x43,
|
||||
x44,
|
||||
x45,
|
||||
x46,
|
||||
x47,
|
||||
x48,
|
||||
x49,
|
||||
x50,
|
||||
x51,
|
||||
x52,
|
||||
x53,
|
||||
x54,
|
||||
x55,
|
||||
x56,
|
||||
x57,
|
||||
x58,
|
||||
x59,
|
||||
x60,
|
||||
x61,
|
||||
x62,
|
||||
x63
|
||||
);
|
||||
|
||||
simd_ty!(
|
||||
i16x32[i16]: i16,
|
||||
i16,
|
||||
|
|
@ -751,6 +881,72 @@ simd_ty!(
|
|||
x31
|
||||
);
|
||||
|
||||
simd_ty!(
|
||||
u16x32[u16]: u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16,
|
||||
u16 | x0,
|
||||
x1,
|
||||
x2,
|
||||
x3,
|
||||
x4,
|
||||
x5,
|
||||
x6,
|
||||
x7,
|
||||
x8,
|
||||
x9,
|
||||
x10,
|
||||
x11,
|
||||
x12,
|
||||
x13,
|
||||
x14,
|
||||
x15,
|
||||
x16,
|
||||
x17,
|
||||
x18,
|
||||
x19,
|
||||
x20,
|
||||
x21,
|
||||
x22,
|
||||
x23,
|
||||
x24,
|
||||
x25,
|
||||
x26,
|
||||
x27,
|
||||
x28,
|
||||
x29,
|
||||
x30,
|
||||
x31
|
||||
);
|
||||
|
||||
simd_ty!(
|
||||
i32x16[i32]: i32,
|
||||
i32,
|
||||
|
|
|
|||
6447
library/stdarch/crates/core_arch/src/x86/avx512bw.rs
Normal file
6447
library/stdarch/crates/core_arch/src/x86/avx512bw.rs
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -9033,10 +9033,10 @@ pub unsafe fn _mm512_set_epi8(
|
|||
e0: i8,
|
||||
) -> __m512i {
|
||||
let r = i8x64(
|
||||
e63, e62, e61, e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46,
|
||||
e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28,
|
||||
e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10,
|
||||
e9, e8, e7, e6, e5, e4, e3, e2, e1, e0,
|
||||
e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19,
|
||||
e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37,
|
||||
e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55,
|
||||
e56, e57, e58, e59, e60, e61, e62, e63,
|
||||
);
|
||||
transmute(r)
|
||||
}
|
||||
|
|
@ -9081,8 +9081,8 @@ pub unsafe fn _mm512_set_epi16(
|
|||
e0: i16,
|
||||
) -> __m512i {
|
||||
let r = i16x32(
|
||||
e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14,
|
||||
e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0,
|
||||
e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19,
|
||||
e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31,
|
||||
);
|
||||
transmute(r)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -298,6 +298,14 @@ types! {
|
|||
pub struct __m512d(f64, f64, f64, f64, f64, f64, f64, f64);
|
||||
}
|
||||
|
||||
/// The `__mmask64` type used in AVX-512 intrinsics, a 64-bit integer
|
||||
#[allow(non_camel_case_types)]
|
||||
pub type __mmask64 = u64;
|
||||
|
||||
/// The `__mmask32` type used in AVX-512 intrinsics, a 32-bit integer
|
||||
#[allow(non_camel_case_types)]
|
||||
pub type __mmask32 = u32;
|
||||
|
||||
/// The `__mmask16` type used in AVX-512 intrinsics, a 16-bit integer
|
||||
#[allow(non_camel_case_types)]
|
||||
pub type __mmask16 = u16;
|
||||
|
|
@ -492,11 +500,21 @@ impl m256Ext for __m256 {
|
|||
pub(crate) trait m512iExt: Sized {
|
||||
fn as_m512i(self) -> __m512i;
|
||||
|
||||
#[inline]
|
||||
fn as_u8x64(self) -> crate::core_arch::simd::u8x64 {
|
||||
unsafe { transmute(self.as_m512i()) }
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn as_i8x64(self) -> crate::core_arch::simd::i8x64 {
|
||||
unsafe { transmute(self.as_m512i()) }
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn as_u16x32(self) -> crate::core_arch::simd::u16x32 {
|
||||
unsafe { transmute(self.as_m512i()) }
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn as_i16x32(self) -> crate::core_arch::simd::i16x32 {
|
||||
unsafe { transmute(self.as_m512i()) }
|
||||
|
|
@ -648,6 +666,9 @@ pub unsafe fn ud2() -> ! {
|
|||
mod avx512f;
|
||||
pub use self::avx512f::*;
|
||||
|
||||
mod avx512bw;
|
||||
pub use self::avx512bw::*;
|
||||
|
||||
mod avx512ifma;
|
||||
pub use self::avx512ifma::*;
|
||||
|
||||
|
|
|
|||
|
|
@ -147,6 +147,8 @@ fn to_type(t: &syn::Type) -> proc_macro2::TokenStream {
|
|||
"__m512i" => quote! { &M512I },
|
||||
"__mmask8" => quote! { &MMASK8 },
|
||||
"__mmask16" => quote! { &MMASK16 },
|
||||
"__mmask32" => quote! { &MMASK32 },
|
||||
"__mmask64" => quote! { &MMASK64 },
|
||||
"_MM_CMPINT_ENUM" => quote! { &MM_CMPINT_ENUM },
|
||||
"_MM_MANTISSA_NORM_ENUM" => quote! { &MM_MANTISSA_NORM_ENUM },
|
||||
"_MM_MANTISSA_SIGN_ENUM" => quote! { &MM_MANTISSA_SIGN_ENUM },
|
||||
|
|
|
|||
|
|
@ -32,15 +32,15 @@ struct Function {
|
|||
|
||||
static F32: Type = Type::PrimFloat(32);
|
||||
static F64: Type = Type::PrimFloat(64);
|
||||
static I8: Type = Type::PrimSigned(8);
|
||||
static I16: Type = Type::PrimSigned(16);
|
||||
static I32: Type = Type::PrimSigned(32);
|
||||
static I64: Type = Type::PrimSigned(64);
|
||||
static I8: Type = Type::PrimSigned(8);
|
||||
static U8: Type = Type::PrimUnsigned(8);
|
||||
static U16: Type = Type::PrimUnsigned(16);
|
||||
static U32: Type = Type::PrimUnsigned(32);
|
||||
static U64: Type = Type::PrimUnsigned(64);
|
||||
static U128: Type = Type::PrimUnsigned(128);
|
||||
static U8: Type = Type::PrimUnsigned(8);
|
||||
static ORDERING: Type = Type::Ordering;
|
||||
|
||||
static M64: Type = Type::M64;
|
||||
|
|
@ -55,6 +55,8 @@ static M512I: Type = Type::M512I;
|
|||
static M512D: Type = Type::M512D;
|
||||
static MMASK8: Type = Type::MMASK8;
|
||||
static MMASK16: Type = Type::MMASK16;
|
||||
static MMASK32: Type = Type::MMASK32;
|
||||
static MMASK64: Type = Type::MMASK64;
|
||||
static MM_CMPINT_ENUM: Type = Type::MM_CMPINT_ENUM;
|
||||
static MM_MANTISSA_NORM_ENUM: Type = Type::MM_MANTISSA_NORM_ENUM;
|
||||
static MM_MANTISSA_SIGN_ENUM: Type = Type::MM_MANTISSA_SIGN_ENUM;
|
||||
|
|
@ -83,6 +85,8 @@ enum Type {
|
|||
M512I,
|
||||
MMASK8,
|
||||
MMASK16,
|
||||
MMASK32,
|
||||
MMASK64,
|
||||
MM_CMPINT_ENUM,
|
||||
MM_MANTISSA_NORM_ENUM,
|
||||
MM_MANTISSA_SIGN_ENUM,
|
||||
|
|
@ -691,6 +695,8 @@ fn equate(t: &Type, intel: &str, intrinsic: &str, is_const: bool) -> Result<(),
|
|||
(&Type::MutPtr(&Type::PrimFloat(32)), "void*") => {}
|
||||
(&Type::MutPtr(&Type::PrimFloat(64)), "void*") => {}
|
||||
(&Type::MutPtr(&Type::PrimSigned(32)), "void*") => {}
|
||||
(&Type::MutPtr(&Type::PrimSigned(16)), "void*") => {}
|
||||
(&Type::MutPtr(&Type::PrimSigned(8)), "void*") => {}
|
||||
(&Type::MutPtr(&Type::PrimSigned(32)), "int*") => {}
|
||||
(&Type::MutPtr(&Type::PrimSigned(32)), "__int32*") => {}
|
||||
(&Type::MutPtr(&Type::PrimSigned(64)), "void*") => {}
|
||||
|
|
@ -717,9 +723,11 @@ fn equate(t: &Type, intel: &str, intrinsic: &str, is_const: bool) -> Result<(),
|
|||
(&Type::ConstPtr(&Type::PrimFloat(64)), "void const*") => {}
|
||||
(&Type::ConstPtr(&Type::PrimSigned(32)), "int const*") => {}
|
||||
(&Type::ConstPtr(&Type::PrimSigned(32)), "__int32 const*") => {}
|
||||
(&Type::ConstPtr(&Type::PrimSigned(8)), "void const*") => {}
|
||||
(&Type::ConstPtr(&Type::PrimSigned(16)), "void const*") => {}
|
||||
(&Type::ConstPtr(&Type::PrimSigned(32)), "void const*") => {}
|
||||
(&Type::ConstPtr(&Type::PrimSigned(64)), "__int64 const*") => {}
|
||||
(&Type::ConstPtr(&Type::PrimSigned(64)), "void const*") => {}
|
||||
(&Type::ConstPtr(&Type::PrimSigned(64)), "__int64 const*") => {}
|
||||
(&Type::ConstPtr(&Type::PrimSigned(8)), "char const*") => {}
|
||||
(&Type::ConstPtr(&Type::PrimUnsigned(16)), "unsigned short const*") => {}
|
||||
(&Type::ConstPtr(&Type::PrimUnsigned(32)), "unsigned int const*") => {}
|
||||
|
|
@ -738,6 +746,8 @@ fn equate(t: &Type, intel: &str, intrinsic: &str, is_const: bool) -> Result<(),
|
|||
|
||||
(&Type::MMASK8, "__mmask8") => {}
|
||||
(&Type::MMASK16, "__mmask16") => {}
|
||||
(&Type::MMASK32, "__mmask32") => {}
|
||||
(&Type::MMASK64, "__mmask64") => {}
|
||||
(&Type::MM_CMPINT_ENUM, "_MM_CMPINT_ENUM") => {}
|
||||
(&Type::MM_MANTISSA_NORM_ENUM, "_MM_MANTISSA_NORM_ENUM") => {}
|
||||
(&Type::MM_MANTISSA_SIGN_ENUM, "_MM_MANTISSA_SIGN_ENUM") => {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue