[Bug optimization/4714] Haney's real matrix performance regression

stl@caltech.edu gcc-bugzilla@gcc.gnu.org
Fri May 23 05:48:00 GMT 2003


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

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



------- Additional Comments From stl@caltech.edu  2003-05-23 05:33 -------
Is this bug still an issue?

[05/22/2003 Thu 10:29.03 PM stl@nuwen ~/PR4714]
> gcc --version
gcc (GCC) 3.3
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


[05/22/2003 Thu 10:29.07 PM stl@nuwen ~/PR4714]
> g++ -Wall -W -O3 -fomit-frame-pointer -S pr.cc -o -
        .file   "pr.cc"
        .text
        .align 2
        .p2align 4,,15
.globl _Z7rmatMulR10RealMatrixRKS_S2_
        .type   _Z7rmatMulR10RealMatrixRKS_S2_, @function
_Z7rmatMulR10RealMatrixRKS_S2_:
.LFB6:
        pushl   %ebp
.LCFI0:
        pushl   %edi
.LCFI1:
        pushl   %esi
.LCFI2:
        pushl   %ebx
.LCFI3:
        subl    $24, %esp
.LCFI4:
        movl    52(%esp), %eax
        movl    $1, 12(%esp)
        movl    52(%esp), %esi
        movl    48(%esp), %edx
        movl    8(%eax), %ecx
        movl    4(%esi), %ebx
        movl    4(%edx), %edi
        cmpl    %ecx, 12(%esp)
        movl    %ecx, 20(%esp)
        movl    %ebx, 16(%esp)
        jg      .L26
        fldz
.L24:
        movl    $1, %ebp
        cmpl    16(%esp), %ebp
        jg      .L28
        movl    $0, (%esp)
        movl    52(%esp), %ebx
        fld     %st(0)
        movl    12(%esp), %esi
        movl    (%ebx), %ecx
        decl    %esi
        movl    %esi, 4(%esp)
        movl    %ecx, 8(%esp)
        .p2align 4,,15
.L23:
        movl    4(%esp), %eax
        movl    16(%esp), %ebx
        movl    8(%esp), %ecx
        imull   %eax, %ebx
        leal    (%ebx,%ebp), %edx
        flds    -4(%ecx,%edx,4)
        fld     %st(0)
        fucomp  %st(2)
        fnstsw  %ax
        sahf
        jp      .L31
        je      .L33
.L31:
        movl    $1, %ecx
        cmpl    %edi, %ecx
        jg      .L33
        movl    44(%esp), %edx
        movl    48(%esp), %ebx
        movl    4(%esp), %eax
        movl    (%ebx), %esi
        movl    4(%edx), %ebx
        imull   %ebx, %eax
        movl    (%esp), %ebx
        sall    $2, %eax
        addl    (%edx), %eax
        leal    4(%eax), %edx
        .p2align 4,,15
.L22:
        leal    (%ebx,%ecx), %eax
        incl    %ecx
        fld     %st(0)
        fmuls   -4(%esi,%eax,4)
        fadds   -4(%edx)
        fstps   -4(%edx)
        addl    $4, %edx
        cmpl    %edi, %ecx
        jle     .L22
        .p2align 4,,15
.L33:
        fstp    %st(0)
        addl    %edi, (%esp)
        incl    %ebp
        cmpl    16(%esp), %ebp
        jle     .L23
        fstp    %st(0)
.L28:
        incl    12(%esp)
        movl    20(%esp), %ebp
        cmpl    %ebp, 12(%esp)
        jle     .L24
        fstp    %st(0)
.L26:
        addl    $24, %esp
        popl    %ebx
        popl    %esi
        popl    %edi
        popl    %ebp
        ret
.LFE6:
        .size   _Z7rmatMulR10RealMatrixRKS_S2_, .-
_Z7rmatMulR10RealMatrixRKS_S2_
        .ident  "GCC: (GNU) 3.3"

[05/22/2003 Thu 10:29.10 PM stl@nuwen ~/PR4714]
>

The section marked .L22: seems to be the inner loop in question (I do not know 
assembly) and it looks nearly identical to the "good" version presented in the 
PR.



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



More information about the Gcc-bugs mailing list