fix heuristic bounds of select_rows_direct

inds_buf has limited size; failed fuzz/select-cells
This commit is contained in:
dzaima 2025-05-28 00:38:57 +03:00
parent 46c2578c73
commit 368fe11155

View File

@ -742,7 +742,7 @@ B select_rows_direct(B x, ux csz, ux cam, void* inds, ux indn, u8 ie) { // ⥊ (
if (ie==el_bit) { if (ie==el_bit) {
// TODO path for xe==el_bit + long indn // TODO path for xe==el_bit + long indn
if (HEURISTIC_BOUNDED(csz>32 || indn>32 || indn>INDS_BUF_MAX, xe!=el_bit && (csz>8 || indn>8), true)) { // TODO properly tune if (HEURISTIC_BOUNDED(csz>32 || indn>32 || indn>INDS_BUF_MAX, xe!=el_bit && (csz>8 || indn>8), indn<=32)) { // TODO properly tune
u8* rp = m_arrv_same(&r, &rbp, ria, x); u8* rp = m_arrv_same(&r, &rbp, ria, x);
for (ux i = 0; i < cam; i++) { for (ux i = 0; i < cam; i++) {
bitselFns[lb](rp, inds, loadu_u64(xp), loadu_u64(xp + (1<<lb)), indn); bitselFns[lb](rp, inds, loadu_u64(xp), loadu_u64(xp + (1<<lb)), indn);