Dyadic 32-bit / based on 8-bit monadic /
This commit is contained in:
parent
1e0cf78fd0
commit
76c93d85e1
@ -551,6 +551,24 @@ B slash_c2(B t, B w, B x) {
|
|||||||
#if SINGELI
|
#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_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_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<bs; j++) rq[j] = xp[buf[j]];
|
||||||
|
rq+= bs;
|
||||||
|
wp+= b/64;
|
||||||
|
xp+= b;
|
||||||
|
}
|
||||||
|
bmipopc_1slash8(wp, buf, (end+b)-xp);
|
||||||
|
for (usz j=0, bs=wsum-(rq-rp); j<bs; j++) rq[j] = xp[buf[j]];
|
||||||
|
TFREE(buf);
|
||||||
|
goto bit_ret;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user