I'm confused how the ASCII check works. It's checking if any byte is greater than zero. Wouldn't you want to check if the 8th bit in any byte is set?
I think it would be faster to OR the entire string with itself, then finally check the 8th bit though. On Skylake that would cut it to 0.33 cycles per 16 bytes (HSW 1 per 16).
The string could have NUL (zero) bytes in between.
[1] https://lemire.me/blog/2018/05/09/how-quickly-can-you-check-...