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:;