AVX-512 lowelt_mask

This commit is contained in:
dzaima 2025-05-30 04:17:34 +03:00
parent d048cf66fa
commit bbc47cd81e
2 changed files with 3 additions and 1 deletions

View File

@ -27,6 +27,8 @@ def hom_to_int{x:V=[_]_ if w512i{V}} = top_to_int{x}
def mask_to_hom{V=[l]_, x:[l](u1)} = emit{V, intrin_i{V,'movm'}, x}
def lowelt_mask{[k](u1), n if any_int{n}} = int_to_mask{[k]u1, bzhi{hom_ones{u64}, n}}
def sel{(ty_u{V}), x:V=[_]E, i:I==(ty_u{V}) if (if (width{E}>8) has512e{V} else has512{V, 'VBMI'})} = emit{V, intrin_i{V, 'permutexvar'}, i, x}
def multishift{a:[k](u64), i:V=[(k*8)](u8) if has512{V, 'VBMI'}} = emit{V, intrin_i{V, 'multishift_epi64'}, i, a}

View File

@ -177,7 +177,7 @@ def {
all_top,any_top,blend_top,top_to_int,store_masked_top,store_blended_top,
load_expand_bits,make,mask_to_hom,mulw_split,mulh,narrow,narrow_trunc,narrow_pair,
pair,pdep,pext,bzhi,rbit,reverse_units,broadcast_sel,absdiff_sum,mul_sum,mul_sum_sat,
unord,unzip,vfold,vec_select,vec_shuffle,widen,widen_upper,multishift,
unord,unzip,vfold,vec_select,vec_shuffle,widen,widen_upper,multishift,lowelt_mask,
addp,addpw,addpwa,
}