From 76c93d85e16b700b589ee1b9b0c4d63223905ea0 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Wed, 31 Aug 2022 15:12:05 -0400 Subject: [PATCH] Dyadic 32-bit / based on 8-bit monadic / --- src/builtins/sfns.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/builtins/sfns.c b/src/builtins/sfns.c index 70e72bc8..529edefe 100644 --- a/src/builtins/sfns.c +++ b/src/builtins/sfns.c @@ -551,6 +551,24 @@ B slash_c2(B t, B w, B x) { #if SINGELI case el_i8: case el_c8: { i8* xp=tyany_ptr(x); i8* rp=m_tyarrvO(&r,1,wsum,el2t(xe), 8); bmipopc_2slash8 (wp, xp, rp, wia); goto bit_ret; } case el_i16:case el_c16: { i16* xp=tyany_ptr(x); i16* rp=m_tyarrvO(&r,2,wsum,el2t(xe), 16); bmipopc_2slash16(wp, xp, rp, wia); goto bit_ret; } + case el_i32:case el_c32: { + i32* xp=tyany_ptr(x); i32* rp=m_tyarrv(&r,4,wsum,el2t(xe)); + usz b = 1<<7; + TALLOC(i8, buf, b); + i32* rq=rp; i32* end=xp+xia-b; + while (xp < end) { + bmipopc_1slash8(wp, buf, b); + usz bs = bit_sum(wp, b); + for (usz j=0; j