http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55341
Joost VandeVondele <Joost.VandeVondele at mat dot ethz.ch> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #29019|0 |1 is obsolete| | --- Comment #47 from Joost VandeVondele <Joost.VandeVondele at mat dot ethz.ch> 2012-12-24 11:53:57 UTC --- Created attachment 29041 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29041 good and bad version of the asm of __qs_dispersion_pairpot_MOD_calculate_dispersion_pairpot two asm files for the routine that appears to be problematic ( __qs_dispersion_pairpot_MOD_calculate_dispersion_pairpot), compiled once with and once without -march=native I'm not particularly versed in asm, but this part of the diff seems like it could be significant, it is just before the return of the subroutine, and could be some difference in unpoisoning ?: 35418,35423d35699 < movq -10392(%rbp), %rdx < movl $724, %esi < testb $1, %dl < je .L66 < movb $0, (%rdx) < .LVL2656: 35425,35426c35701,35702 < leaq 1(%rax), %rdx < movb $-45, %sil --- > addq $724, %rax > .LVL2645: 35428,35460c35704,35708 < testb $2, %dl < je .L67 < movw $0, (%rdx) < addq $2, %rdx < subl $2, %esi < .L67: < testb $4, %dl < je .L68 < movl $0, (%rdx) < addq $4, %rdx < subl $4, %esi < .L68: < movl %esi, %eax < shrl $3, %eax < movl %eax, %ecx < movl $0, %eax < movq %rdx, %rdi < rep stosq < movq %rdi, %rdx < testb $4, %sil < je .L69 < movl $0, (%rdi) < addq $4, %rdx < .L69: < testb $2, %sil < je .L70 < movw $0, (%rdx) < addq $2, %rdx < .L70: < testb $1, %sil < je .L71 < movb $0, (%rdx) < .L71: --- > movq -10392(%rbp), %rbx > movl $0, (%rbx) > addq $4, -10392(%rbp) > cmpq %rax, -10392(%rbp) > jb .L66 35653c35901