Detected a fault in the fortran 90 version of the LLNL "mflops" test. SPREAD is causing a segmentation fault in "KERNEL 21". Replacing this section with the fortran77 kernel corrects the fault (BTW will report the benchmarks on the gfortran wiki - they do not look too bad at all!). The fault is caused by:
DO K = 1, 25 PX(:,:N) = PX(:,:N) + SPREAD(VY(:25,K),DIM = 2,NCOPIES = N)* & & SPREAD(CX(K,:N),DIM = 1,NCOPIES = 25) END DO where N is 1000 The following codelet gives incorrect results for small N and also segment faults for large enough N (eg 1000, as here): program test_spread implicit none integer, parameter :: N = 1000 integer :: I integer, dimension(N) :: source integer, dimension(N,N) :: sink do i = 1 , N source(i) = N end do print *,'product' sink = spread( source , 1 , N ) * spread( source , N , N ) print *, sink stop end program test_spread -- Summary: Intrinisc function SPREAD is broken Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: paulthomas2 at wanadoo dot fr CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18495