The trick here is that each byte is treated as a signed 8-bit number. When the top bit is set, the number is negative.
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).
[1] https://lemire.me/blog/2018/05/09/how-quickly-can-you-check-...
The string could have NUL (zero) bytes in between.