[Bug tree-optimization/53340] [4.8 Regression] rnflow.f90 is ~20% slower after revision 187092

dominiq at lps dot ens.fr gcc-bugzilla@gcc.gnu.org
Mon May 14 10:02:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53340

--- Comment #2 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2012-05-14 09:49:22 UTC ---
If I understand correctly the profiling, the slowdown comes from the first
inlined function minlst. The fast assembly is

L45:
    movss   (%r10), %xmm10
    leal    -1(%rsi), %edi
    movss   -4(%r10), %xmm11
    comiss  %xmm10, %xmm6
    movss   -8(%r10), %xmm12
    minss   %xmm10, %xmm6
    movss   -12(%r10), %xmm13
    cmova   %esi, %edx
    comiss  %xmm11, %xmm6
    minss   %xmm11, %xmm6
    cmova   %edi, %edx
    comiss  %xmm12, %xmm6
    minss   %xmm12, %xmm6
    leal    -2(%rsi), %edi
    cmova   %edi, %edx
    comiss  %xmm13, %xmm6
    leal    -3(%rsi), %edi
    minss   %xmm13, %xmm6
    cmova   %edi, %edx
    subl    $4, %esi
    subq    $16, %r10
    cmpl    %r8d, %esi
    jne     L45

while the slow one is

L39:
    movslq  %edx, %r9
    movss   -4(%rdi,%r9,4), %xmm9
    leal    -1(%r8), %r9d
    comiss  (%rbx), %xmm9
    cmova   %r8d, %edx
    movslq  %edx, %r14
    movss   -4(%rdi,%r14,4), %xmm10
    comiss  -4(%rbx), %xmm10
    cmova   %r9d, %edx
    leal    -2(%r8), %r9d
    movslq  %edx, %r14
    movss   -4(%rdi,%r14,4), %xmm11
    comiss  -8(%rbx), %xmm11
    cmova   %r9d, %edx
    leal    -3(%r8), %r9d
    movslq  %edx, %r14
    movss   -4(%rdi,%r14,4), %xmm12
    comiss  -12(%rbx), %xmm12
    cmova   %r9d, %edx
    subl    $4, %r8d
    subq    $16, %rbx
    cmpl    %r10d, %r8d
    jne     L39



More information about the Gcc-bugs mailing list