Fix usz=32 build
This commit is contained in:
parent
d3b4c3cc26
commit
b03b26656d
@ -96,7 +96,7 @@ local def ml_exec{i, iter, vars0, bulk, M} = {
|
||||
|
||||
# i0 - initial batch index; not used as begin because it's in a different scale compared to end
|
||||
def for_masked{bulk, i0}{vars,begin==0,end,iter} = {
|
||||
l:u64 = end
|
||||
l:u64 = promote{u64, end}
|
||||
|
||||
m:u64 = l / bulk
|
||||
@for (i from i0 to m) ml_exec{i, iter, vars, bulk, mask_none}
|
||||
@ -128,7 +128,7 @@ def for_masked_pos{bulk}{vars,begin==0,end:L,iter} = {
|
||||
# end is scalar element count
|
||||
# index given is a tuple of batch indexes to process
|
||||
def for_mu{bulk, unr, fromunr}{vars,begin==0,end,iter} = {
|
||||
l:u64 = end
|
||||
l:u64 = promote{u64, end}
|
||||
|
||||
m:u64 = l / bulk
|
||||
if (unr==1) {
|
||||
|
||||
@ -358,10 +358,11 @@ def loose_mask_gen{V=[vl]T, l} = { # Slow, for ≠` only
|
||||
}
|
||||
def has_vecshift = hasarch{'AVX2'} or hasarch{'AARCH64'}
|
||||
def loose_mask_gen{V=[vl](u64), l if has_vecshift} = {
|
||||
l64 := promote{u64, l}
|
||||
q := -make{V, 64*iota{vl}} # distance to next row boundary
|
||||
def q_mod{} = { q+= V**l & -(q>>63) }
|
||||
def q_mod{if hasarch{'SSE4.1'}} = { q = blend_top{q,q+V**l, q} }
|
||||
o:u64 = width{V}; while (o>l) { o-=l; q_mod{} }
|
||||
def q_mod{} = { q+= V**l64 & -(q>>63) }
|
||||
def q_mod{if hasarch{'SSE4.1'}} = { q = blend_top{q,q+V**l64, q} }
|
||||
o:u64 = width{V}; while (o>l64) { o-=l64; q_mod{} }
|
||||
{} => {
|
||||
m:= V**1 << q; if (not hasarch{'AVX2'}) m&= q < V**64
|
||||
q-= V**o; q_mod{}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user