1*3348c083SValentin Clement! RUN: bbc %s -o - | FileCheck %s
2*3348c083SValentin Clement
3*3348c083SValentin Clement! CHECK-LABEL: _QPsub
4*3348c083SValentin Clement
5*3348c083SValentin Clement! F77 code for the array computation c = ((a + b) * c) + (b / 2.0).
6*3348c083SValentin Clement! (Eventually, test that the temporary arrays are eliminated.)
7*3348c083SValentin Clementsubroutine sub(a,b,c,i,j,k)
8*3348c083SValentin Clement  real a(i,j,k), b(i,j,k), c(i,j,k)
9*3348c083SValentin Clement  real t1(i,j,k), t2(i,j,k)
10*3348c083SValentin Clement  integer i, j, k
11*3348c083SValentin Clement  integer r, s, t
12*3348c083SValentin Clement
13*3348c083SValentin Clement  do t = 1, k
14*3348c083SValentin Clement     do s = 1, j
15*3348c083SValentin Clement        do r = 1, i
16*3348c083SValentin Clement           t1(r,s,t) = a(r,s,t) + b(r,s,t)
17*3348c083SValentin Clement        end do
18*3348c083SValentin Clement     end do
19*3348c083SValentin Clement  end do
20*3348c083SValentin Clement  do t = 1, k
21*3348c083SValentin Clement     do s = 1, j
22*3348c083SValentin Clement        do r = 1, i
23*3348c083SValentin Clement           t2(r,s,t) = t1(r,s,t) * c(r,s,t)
24*3348c083SValentin Clement        end do
25*3348c083SValentin Clement     end do
26*3348c083SValentin Clement  end do
27*3348c083SValentin Clement  do t = 1, k
28*3348c083SValentin Clement     do s = 1, j
29*3348c083SValentin Clement        do r = 1, i
30*3348c083SValentin Clement           c(r,s,t) = t2(r,s,t) + b(r,s,t) / 2.0
31*3348c083SValentin Clement        end do
32*3348c083SValentin Clement     end do
33*3348c083SValentin Clement  end do
34*3348c083SValentin Clementend subroutine sub
35