https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32629
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |DUPLICATE Status|NEW |RESOLVED --- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- On the trunk at -O2 we have: pxor %xmm0, %xmm0 movups %xmm0, (%rdi) movups %xmm0, 16(%rdi) movups %xmm0, 32(%rdi) pxor %xmm0, %xmm0 movups %xmm0, 48(%rdi) movups %xmm0, 64(%rdi) ret With -mno-sse we get: movq $0, (%rdi) movq $0, 8(%rdi) movq $0, 16(%rdi) movq $0, 24(%rdi) movq $0, 32(%rdi) movq $0, 40(%rdi) movq $0, 48(%rdi) movq $0, 56(%rdi) movq $0, 64(%rdi) movq $0, 72(%rdi) ret at -Os we get: xorl %eax, %eax leaq 48(%rdi), %rdx movl $8, %ecx movq %rax, (%rdi) movq %rax, 8(%rdi) movq %rax, 16(%rdi) movq %rax, 24(%rdi) movq %rax, 32(%rdi) movq %rax, 40(%rdi) xorl %eax, %eax movq %rdx, %rdi Which was implemented by PR 11877. So I am going to close this as a dup of bug 11877. *** This bug has been marked as a duplicate of bug 11877 ***