[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