! { 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 | |