fn __ctz_limb64(a_ptr: [*]const u64, bits: u16) callconv(.c) u16
fn __ctz_limb64(a_ptr: [*]const u64, bits: u16) callconv(.c) u16 { const limb_cnt = usedLimbCount(bits); const a = constLimbs(a_ptr, bits); var res: u16 = 0; var i: usize = 0; while (i < limb_cnt - 1) : (i += 1) { const limb = limbGet(a, i); if (limb == 0) { res += 64; } else { res += @ctz(limb); return res; } } const limb = limbGet(a, i); if (bits % 64 != 0 and limb == 0) { res += bits % 64; } else { res += @ctz(limb); } return res; }