mightsleep commented on PR #11554: URL: https://github.com/apache/arrow-rs/pull/11554#issuecomment-6190932785
Yes hello, BitChunks walks the words one after another, but here each read starts popcount bits further on, so on top of it we'd need the u128 window and refill loop again, which is what this PR removes. BitChunks::chunk could do it with two chunks and a shift. Looking at the asm that's about the same at offset 0 (it even saves a bounds check), but for a sliced buffer each chunk() does its own shift, so it's 4 loads and ~14 instructions per word instead of 2 loads and ~12. Or maybe move BitReader into arrow-buffer in a follow-up if you'd rather not have it local. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
