aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/pr42108.f90
blob: eb93604e6b035973b0a1c74059f3ad0a7b470be3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
! { dg-do compile }
! { dg-options "-O2 -fdump-tree-fre1 -fdump-tree-pre-details -fno-tree-loop-im" }

subroutine  eval(foo1,foo2,foo3,foo4,x,n,nnd)
  implicit real*8 (a-h,o-z)
  dimension foo3(n),foo4(n),x(nnd)
  nw=0
  foo3(1)=foo2*foo4(1)
  do i=2,n
    foo3(i)=foo2*foo4(i)
    do  j=1,i-1
      temp=0.0d0
      jmini=j-i
      do  k=i,nnd,n
        temp=temp+(x(k)-x(k+jmini))**2
      end do
      temp = sqrt(temp+foo1)
      foo3(i)=foo3(i)+temp*foo4(j)
      foo3(j)=foo3(j)+temp*foo4(i)
    end do
  end do
end subroutine eval

! We should have hoisted the division
! { dg-final { scan-tree-dump "in all uses of countm1\[^\n\]* / " "pre" } }
! There should be only one load from n left
! { dg-final { scan-tree-dump-times "\\*n_" 1 "fre1" } }