From b03b26656da3af88409ca91986a44ff192cad1d7 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Sun, 2 Mar 2025 14:16:07 -0500 Subject: [PATCH] Fix usz=32 build --- src/singeli/src/mask.singeli | 4 ++-- src/singeli/src/scan.singeli | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/singeli/src/mask.singeli b/src/singeli/src/mask.singeli index 5ff8abd2..6fa5c1d9 100644 --- a/src/singeli/src/mask.singeli +++ b/src/singeli/src/mask.singeli @@ -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) { diff --git a/src/singeli/src/scan.singeli b/src/singeli/src/scan.singeli index af3eec65..ac283d4f 100644 --- a/src/singeli/src/scan.singeli +++ b/src/singeli/src/scan.singeli @@ -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{}