From 94b1d9099578fa349b3e68558efc767ca7abfcf9 Mon Sep 17 00:00:00 2001 From: dzaima Date: Thu, 14 Dec 2023 18:08:56 +0200 Subject: [PATCH] =?UTF-8?q?SSE2=20&=20NEON=20/=E2=81=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/src/build.bqn | 2 +- src/builtins/slash.c | 4 ++-- src/singeli/src/count.singeli | 11 +++++++---- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/build/src/build.bqn b/build/src/build.bqn index be01b962..53fd1b11 100755 --- a/build/src/build.bqn +++ b/build/src/build.bqn @@ -665,7 +665,7 @@ cachedBin‿linkerCache ← { "xag"‿"src/builtins/sort.c"‿"bins" "2.."‿"src/builtins/select.c"‿"select", "2a."‿"src/builtins/slash.c"‿"constrep", - "xag"‿"src/builtins/slash.c"‿"slash", "2.."‿"src/builtins/slash.c"‿"count" + "xag"‿"src/builtins/slash.c"‿"slash", "xa."‿"src/builtins/slash.c"‿"count" ⟩ objs ← ⟨⟩ diff --git a/src/builtins/slash.c b/src/builtins/slash.c index b81d1025..45b73c12 100644 --- a/src/builtins/slash.c +++ b/src/builtins/slash.c @@ -95,7 +95,7 @@ #include "../utils/includeSingeli.h" #endif -#if SINGELI_AVX2 +#if SINGELI_SIMD #define SINGELI_FILE count #include "../utils/includeSingeli.h" #endif @@ -933,7 +933,7 @@ B slash_im(B t, B x) { } \ break; \ } -#if SINGELI_AVX2 +#if SINGELI_SIMD #define SINGELI_COUNT_OR(N) if (N==8) { \ TALLOC(usz, t, m/2); \ for (usz j=0; j mx) mx = mt nc := uT~~(mt - jt) # Number of counts to perform: last is implicit - if (nc <= 48) { + if (nc <= 24*vbits/128) { r0 = rv j0 := promote{u64, uT~~jt} # Starting count m := promote{u64, nc} # Number of iterations @@ -47,7 +50,7 @@ fn count{T}(tab:*usz, x:*T, n:u64, min_allowed:T) : T = { e := each{{j}=>V**j, j} @for (xv over b) each{{c,e} => c -= xv == e, c, e} def add_sum{c, j} = { - s := promote{usz, sum_vec{V}(V~~c)} + s := promote{usz, fold_addw{V~~c}} total -= s; inc{tab, j, s} } each{add_sum, c, j}