Now I'm curious - do you have performance numbers somewhere for this? The rep instructions can actually be shorter than a call to str*, so if rep is actually fast enough then it might make a nice optimization.
http://stackoverflow.com/a/9177369
https://stackoverflow.com/questions/12359228/reliable-inform...
https://stackoverflow.com/questions/8425022/performance-of-x...
Some code I just compiled with GCC 6.1.1 had several snippets like this emitted for zeroing with memset:
xor eax,eax
...
rep stos QWORD PTR es:[rdi],rax
and some rep movs for memcpy/memmove.