From 6c81fb3149067f1fb863808bf5a721950199add7 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Thu, 27 Apr 2023 21:08:32 -0400 Subject: [PATCH] Make AVX2 deduplicate branchless --- src/builtins/selfsearch.c | 2 +- src/singeli/src/search.singeli | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/builtins/selfsearch.c b/src/builtins/selfsearch.c index 2d5b3412..ba09e73d 100644 --- a/src/builtins/selfsearch.c +++ b/src/builtins/selfsearch.c @@ -557,7 +557,7 @@ B find_c1(B t, B x) { } #if SINGELI_AVX2 if (elWidth(xe)==1 && RNK(x)==1 && !FL_HAS(x, fl_asc|fl_dsc)) { - TALLOC(u8, tab, 512); u8* res = tab+256; + TALLOC(u8, tab, 513); u8* res = tab+256; usz ria = avx2_deduplicate_u8(tyany_ptr(x), n, res, tab); B r; i8* rp = m_tyarrv(&r, 1, ria, el2t(xe)); memcpy(rp, res, ria); diff --git a/src/singeli/src/search.singeli b/src/singeli/src/search.singeli index 2fe426c9..d6ce44ff 100644 --- a/src/singeli/src/search.singeli +++ b/src/singeli/src/search.singeli @@ -123,7 +123,7 @@ def do_bittab{x0:*void, n:u64, tab:*void, u:u8, t, mode, r0} = { btab:= *i8~~tab def settab_sub{x, v} = { - if (rval and v!=0) store{*u8~~r0, u, x} + if (rval) store{*u8~~r0, u, x} u+= u8~~(t - v) # u tracks the total of btab store{btab, x, t} v