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(f4,f3,f2,f1),g2(f4,f4,f3,f2,f1),g3(f4,f3,f2,f1) 8 real*8 f0(f4,f4,f3,f2,f1),f9(f4,f4,f3,f2,f1),f8(f4,f4,f3,f2,f1) 9 real*8 f7(f4,f4,f3,f2,f1),f6(f4,f4,f3,f2,f1),f5(f4,f4,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,f4 21 g3(i1,i5,i4,i3)=0.0d0 22 do i2=1,f4 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! This is the kernel extracted from bwaves: this cannot be interchanged 40! as the number of iterations for f4 is not known. 41 42! { dg-final { scan-tree-dump-times "will be interchanged" 0 "graphite" } } 43