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_hom,any_hom,blend_hom,hom_to_int,homMaskStore,homMaskStoreF,
|
||||||
all_top,any_top,blend_top,top_to_int,topMaskStore,topMaskStoreF,
|
all_top,any_top,blend_top,top_to_int,topMaskStore,topMaskStoreF,
|
||||||
loadBatchBit,loadLow,make,maskStore,maskToHom,mulwSplit,mulh,narrow,narrowTrunc,narrowPair,
|
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,
|
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 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 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 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 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 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}
|
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} = {
|
def swap_elts{x:V=[k]_, el_bytes} = {
|
||||||
if (hasarch{'AARCH64'}) {
|
if (hasarch{'AARCH64'}) {
|
||||||
if (el_bytes == 8) vshl{x, x, k/2}
|
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)) {
|
} else if (any_sel or (hasarch{'SSE2'} and el_bytes >= 2)) {
|
||||||
def wd = min{el_bytes, 8}
|
def wd = min{el_bytes, 8}
|
||||||
def l = el_bytes/wd
|
def l = el_bytes/wd
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user