It is also possible that our existing avx2 and/or avx512 (probably not sse41) message schedule vectorization is more optimal than the hardware-implemented 4 lane message processing of shani, at least for larger data hashing, where we must iterate over 4/8/16 hash blocks. In those cases we already vectorize the message buffer, which gives us about a 30% performance boost in that aspect. So we may end up outperforming the typical native shani implementation on machines with higher level vectorization.
(edited)