[Bug rtl-optimization/38434] New: [4.4 Regression] speed regression with hand-unrolled matmul
tkoenig at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sun Dec 7 11:35:00 GMT 2008
$ gfortran-4.3 -O3 -funroll-all-loops -ffast-math foo-2.f90
$ ./a.out
subroutine with explicit interface and unroll(1): 2.3321450 s
$ gfortran -O3 -funroll-all-loops -ffast-math foo-2.f90
$ ./a.out
subroutine with explicit interface and unroll(1): 3.0121880 s
$ gfortran -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../../gcc/trunk/configure --prefix=/home/ig25
--enable-languages=c,fortran --enable-maintainer-mode
Thread model: posix
gcc version 4.4.0 20081122 (experimental) (GCC)
$ cat foo-2.f90
module foo
implicit none
contains
subroutine unroll(a,b,c)
real, dimension(3,3) :: a,b,c
integer :: i,j
do i=1,3
do j=1,3
c(i,j) = a(i,1)*b(1,j) + a(i,2)*b(2,j) + a(i,3)*b(3,j)
end do
end do
end subroutine unroll
end module foo
program main
use foo
implicit none
integer :: k
real, dimension(3,3) :: a,b,c, a0, b0
real :: t1, t2
character(len=90) :: line
call random_number(a0)
call random_number(b0)
a = a0
b = b0
call cpu_time(t1)
do k=1,10**8
call unroll(a,b,c)
end do
call cpu_time(t2)
print *,"subroutine with explicit interface and unroll(1): ",t2-t1, " s"
write (unit=line,fmt='(9G10.3)') c
end program main
--
Summary: [4.4 Regression] speed regression with hand-unrolled
matmul
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: normal
Priority: P3
Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tkoenig at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38434
More information about the Gcc-bugs
mailing list