get rid of custom NEON rev
was non-compatibly overridden in places anyways
This commit is contained in:
parent
6c7a444cd7
commit
f3e7f4032c
@ -178,7 +178,7 @@ def {
|
||||
all_hom,any_hom,blend_hom,hom_to_int,homMaskStore,homMaskStoreF,
|
||||
all_top,any_top,blend_top,top_to_int,topMaskStore,topMaskStoreF,
|
||||
loadBatchBit,loadLow,make,maskStore,maskToHom,mulwSplit,mulh,narrow,narrowTrunc,narrowPair,
|
||||
packQ,pair,pdep,pext,popcRand,rbit,rev,sel,shl,shr,shufInd,storeLow,
|
||||
packQ,pair,pdep,pext,popcRand,rbit,sel,shl,shr,shufInd,storeLow,
|
||||
unord,unzip,vfold,vec_select,vec_shuffle,widen,widenUpper,multishift,
|
||||
}
|
||||
|
||||
|
||||
@ -46,8 +46,6 @@ def maxp{a:V, b:V} = emit{V, ntyp{'vpmax', V}, a, b}
|
||||
def mla{a:T, x:T, y:T if nvec{T}} = emit{T, ntyp{'vmla', T}, a, x, y} # a + x*y
|
||||
def mls{a:T, x:T, y:T if nvec{T}} = emit{T, ntyp{'vmls', T}, a, x, y} # a - x*y
|
||||
def rbit{x:T if nvecu{T,8}} = emit{T, ntyp{'vrbit', T}, x}
|
||||
def rev{(width{T}), x:[_]T} = x
|
||||
def rev{w, x:[k]T if w > width{T}} = reverse_units{w/width{T}, x} # reverse the order of elements in each w-bit window
|
||||
def popc{x:T if nvecu{T,8}} = emit{T, ntyp{'vcnt', T}, x}
|
||||
def clz{x:T if nvecu{T} and elwidth{T}<=32} = emit{T, ntyp{'vclz', T}, x}
|
||||
def cls{x:T if nveci{T} and elwidth{T}<=32} = ty_u{T}~~emit{ty_s{T}, ntyp{'vcls', T}, x}
|
||||
|
||||
@ -493,7 +493,7 @@ def modperm_shuf_step{x:V=[_]T, l, m if l%8==0} = {
|
||||
def swap_elts{x:V=[k]_, el_bytes} = {
|
||||
if (hasarch{'AARCH64'}) {
|
||||
if (el_bytes == 8) vshl{x, x, k/2}
|
||||
else V~~rev{el_bytes*16, re_el{ty_u{8*el_bytes}, V} ~~ x}
|
||||
else V~~reverse_units{2, re_el{ty_u{8*el_bytes}, x}}
|
||||
} else if (any_sel or (hasarch{'SSE2'} and el_bytes >= 2)) {
|
||||
def wd = min{el_bytes, 8}
|
||||
def l = el_bytes/wd
|
||||
|
||||
Loading…
Reference in New Issue
Block a user