1 subroutine foo(f1,f2,f3,f4,f5,f6,f7,f8,f9,f0,g1,g2,g3) 2 implicit none 3 integer f4,f3,f2,f1 4 integer g4,g5,g6,g7,g8,g9 5 integer i1,i2,i3,i4,i5 6 7 real*8 g1(5,f3,f2,f1),g2(5,5,f3,f2,f1),g3(5,f3,f2,f1) 8 real*8 f0(5,5,f3,f2,f1),f9(5,5,f3,f2,f1),f8(5,5,f3,f2,f1) 9 real*8 f7(5,5,f3,f2,f1),f6(5,5,f3,f2,f1),f5(5,5,f3,f2,f1) 10 11 do i3=1,f1 12 g8=mod(i3+f1-2,f1)+1 13 g9=mod(i3,f1)+1 14 do i4=1,f2 15 g6=mod(i4+f2-2,f2)+1 16 g7=mod(i4,f2)+1 17 do i5=1,f3 18 g4=mod(i5+f3-2,f3)+1 19 g5=mod(i5,f3)+1 20 do i1=1,5 21 g3(i1,i5,i4,i3)=0.0d0 22 do i2=1,5 23 g3(i1,i5,i4,i3)=g3(i1,i5,i4,i3)+ 24 1 g2(i1,i2,i5,i4,i3)*g1(i2,i5,i4,i3)+ 25 2 f0(i1,i2,i5,i4,i3)*g1(i2,g5,i4,i3)+ 26 3 f9(i1,i2,i5,i4,i3)*g1(i2,i5,g7,i3)+ 27 4 f8(i1,i2,i5,i4,i3)*g1(i2,i5,i4,g9)+ 28 5 f7(i1,i2,i5,i4,i3)*g1(i2,g4,i4,i3)+ 29 6 f6(i1,i2,i5,i4,i3)*g1(i2,i5,g6,i3)+ 30 7 f5(i1,i2,i5,i4,i3)*g1(i2,i5,i4,g8) 31 enddo 32 enddo 33 enddo 34 enddo 35 enddo 36 return 37 end 38 39 40! We should be able to interchange this as the number of iterations is 41! known to be 4 in the inner two loops. See interchange-2.f for the 42! kernel from bwaves. 43 44! { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } } 45