http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52678
--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-03-23 09:06:32 UTC --- I can reproduce the ICE, it's one of the more fragile areas of the vectorizer... Reduced testcase, ICEs at -O -ftree-vectorize -ffixed-form: SUBROUTINE OpenAD_set_ref_state(DRF, RHOFACF, RHOFACC) real(8) DRF(1 : 15) real(8) RHOFACF(1 : 16) real(8) RHOFACC(1 : 15) integer, dimension(:), allocatable :: oad_it integer :: oad_it_ptr INTEGER(8) OpenAD_Symbol_188 INTEGER(4) K OpenAD_Symbol_188 = 0 DO K = 2, 15, 1 RHOFACF(INT(K)) = ((RHOFACC(K) * DRF(K + (-1)) + RHOFACC(K + + (-1)) * DRF(K)) /(DRF(K) + DRF(K + (-1)))) OpenAD_Symbol_188 = (INT(OpenAD_Symbol_188) + INT(1)) END DO oad_it(oad_it_ptr) = OpenAD_Symbol_188 end subroutine OpenAD_set_ref_state