! { dg-do compile } SUBROUTINE smm_dnn_4_10_10_1_1_2_1(A,B,C) REAL :: C(4,10), B(10,10), A(4,10) DO j= 1 , 10 , 2 DO i= 1 , 4 , 1 DO l= 1 , 10 , 1 C(i+0,j+0)=C(i+0,j+0)+A(i+0,l+0)*B(l+0,j+0) C(i+0,j+1)=C(i+0,j+1)+A(i+0,l+0)*B(l+0,j+1) ENDDO ENDDO ENDDO END SUBROUTINE SUBROUTINE smm_dnn_4_10_10_6_4_1_1(A,B,C) REAL :: C(4,10), B(10,10), A(4,10) DO l= 1 , 10 , 1 DO j= 1 , 10 , 1 C(i+0,j+0)=C(i+0,j+0)+A(i+0,l+0)*B(l+0,j+0) ENDDO ENDDO END SUBROUTINE SUBROUTINE S(A,B,C) INTEGER :: Nmin=2,Niter=100 REAL, DIMENSION(:,:), ALLOCATABLE :: A,B,C DO imin=1,Nmin DO i=1,Niter CALL smm_dnn_4_10_10_1_1_2_1(A,B,C) ENDDO DO i=1,Niter CALL smm_dnn_4_10_10_6_4_1_1(A,B,C) ENDDO CALL foo() ENDDO END SUBROUTINE ! { dg-final { cleanup-tree-dump "vect" } }