hjl.tools added a comment. For 16-byte memset, we can generate movzbl 4(%esp), %eax imull $16843009, %eax, %eax movd %eax, %xmm0 movl dst, %eax pshufd $0, %xmm0, %xmm0 movdqu %xmm0, (%eax) ret http://reviews.llvm.org/D18566