gfortran -c -v -O3 -ffast-math -funroll-loops -ftree-vectorize -march=native -ffree-form bug.F
crashes with bug.F: In function check_dnucint_ana: bug.F:1: internal compiler error: in vectorizable_assignment, at tree-vect-transform.c:3671 for /data03/vondele/gcc_trunk/build/libexec/gcc/x86_64-unknown-linux-gnu/4.4.0/f951 /tmp/cc7t33Xt.f -march=k8-sse3 -mcx16 -msahf --param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=1024 -mtune=k8 -quiet -dumpbase bug.F -auxbase bug -O3 -version -ffast-math -funroll-loops -ftree-vectorize -ffree-form -fpreprocessed -fintrinsic-modules-path /data03/vondele/gcc_trunk/build/lib/gcc/x86_64-unknown-linux-gnu/4.4.0/finclude -o /tmp/ccwqJEaQ.s GNU Fortran (GCC) version 4.4.0 20080503 (experimental) [trunk revision 134897] (x86_64-unknown-linux-gnu) This blocks compilation of CVS CP2K. A reduced testcase is: SUBROUTINE check_dnucint_ana (dcore) IMPLICIT NONE INTEGER, PARAMETER :: dp=8 REAL(dp), DIMENSION(10, 2), INTENT(IN),& OPTIONAL :: dcore INTEGER :: i, j REAL(dp) :: delta, nssss, od, rn, ssssm, & ssssp REAL(dp), DIMENSION(10, 2) :: corem, corep, ncore LOGICAL :: check_value delta = 1.0E-8_dp od = 0.5_dp/delta ncore = od * (corep - corem) nssss = od * (ssssp - ssssm) IF (PRESENT(dcore)) THEN DO i = 1, 2 DO j = 1, 10 IF (.NOT.check_value(ncore(j,i), dcore(j,i), delta, 0.1_dp)) THEN END IF END DO END DO END IF END SUBROUTINE check_dnucint_ana -- Summary: internal compiler error: in vectorizable_assignment, at tree-vect-transform.c:3671 Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk OtherBugsDependingO 29975 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36119