http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57393
--- Comment #6 from Joost VandeVondele <Joost.VandeVondele at mat dot ethz.ch> --- Simplified testcase that fails with 'gfortran -c -g -O2 -ffast-math bug.f90' > cat bug.f90 SUBROUTINE xb88_lr_adiabatic_lda_calc(npoints,e,g,sx) IMPLICIT REAL*8 (t) INTEGER, PARAMETER :: dp=8 REAL(kind=dp) :: e(npoints) DO ii=1,npoints t804 = 0.1955555555e2_dp * t7 * t766 + & 0.6000000000e1_dp * t405 * t2873 * t237 t3026 = 0.1620000000e3_dp * t1143 * t474 * t2169 + & 0.1080000000e3_dp * t1143 * t3030 * t237 - & 0.6000000000e1_dp * t478 * t27 * t379 * t14 - & 0.2400000000e2_dp * t478 * t123 * t2843 - & 0.1200000000e2_dp * t473 * t1157 * t2368 t3070 = t3026 + t3069 t3093 = (3 * t496 * t865 * t65) + & (t187 * t2285 * t65) + (t3070 * t65) - & 0.3333333336e0_dp * t1137 * t1134 t3268 = 0.1555555556e1_dp * t2937 * t446 * t2843 + & (t3093 + t3141 + t3181 + t3232) * & 0.3125000000e0_dp * t3262 * t45 * t166 * t3264 t3288 = -0.1000000001e1_dp * t165 * t2636 * t237 - & (t2724 + t2783 + t2935 + t3268) - & 0.8333333340e-1_dp * t906 * t384 * t2160 t3291 = -0.1000000001e1_dp * t2147 * t84 * t754 - & t8 * (t2635 + t3288) IF( g>= 3 .OR. g== -3 ) THEN e(ii) = e(ii) + t3291 * sx END IF END DO END SUBROUTINE xb88_lr_adiabatic_lda_calc