From bda653e86542bf45b65cbfd3901a5cf23d505c27 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Mon, 21 Nov 2022 15:51:03 -0500 Subject: [PATCH] =?UTF-8?q?Shortcutting=20for=20boolean-valued=20integer?= =?UTF-8?q?=20=E2=88=A8=C2=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/builtins/fold.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/builtins/fold.c b/src/builtins/fold.c index e687498b..553ea173 100644 --- a/src/builtins/fold.c +++ b/src/builtins/fold.c @@ -150,9 +150,9 @@ B fold_c1(Md1D* d, B x) { B f = d->f; decG(x); return m_f64(r); } if (rtid==n_or) { // ∨ - if (xe==el_i8 ) { i8* xp = i8any_ptr (x); bool r=0; for (usz i=0; i 0); } + if (xe==el_i16) { i16* xp = i16any_ptr(x); usz i=ia; while (i--) { i16 c=xp[i]; if (c==1) break; if (c!=0) goto base; } decG(x); return m_i32(i+1 > 0); } + if (xe==el_i32) { i32* xp = i32any_ptr(x); usz i=ia; while (i--) { i32 c=xp[i]; if (c==1) break; if (c!=0) goto base; } decG(x); return m_i32(i+1 > 0); } } } base:; @@ -216,9 +216,9 @@ B fold_c2(Md1D* d, B w, B x) { B f = d->f; decG(x); return m_f64(r); } if (rtid==n_or && (wi&1)==wf) { // ∨ - if (xe==el_i8 ) { i8* xp = i8any_ptr (x); bool q=wi; for (usz i=0; i 0); } + if (xe==el_i16) { i16* xp = i16any_ptr(x); usz i=ia; if (!wi) while (i--) { i16 c=xp[i]; if (c==1) break; if (c!=0) goto base; } decG(x); return m_i32(i+1 > 0); } + if (xe==el_i32) { i32* xp = i32any_ptr(x); usz i=ia; if (!wi) while (i--) { i32 c=xp[i]; if (c==1) break; if (c!=0) goto base; } decG(x); return m_i32(i+1 > 0); } } } base:;