annotate gcc/testsuite/gfortran.dg/pr81303.f @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 ! { dg-do compile }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 ! { dg-options "-O3 -ffast-math -floop-interchange -fdump-tree-linterchange-details" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 subroutine mat_times_vec(y,x,a,axp,ayp,azp,axm,aym,azm,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 $ nb,nx,ny,nz)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 implicit none
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 integer nb,nx,ny,nz,i,j,k,m,l,kit,im1,ip1,jm1,jp1,km1,kp1
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 real*8 y(nb,nx,ny,nz),x(nb,nx,ny,nz)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 real*8 a(nb,nb,nx,ny,nz),
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 1 axp(nb,nb,nx,ny,nz),ayp(nb,nb,nx,ny,nz),azp(nb,nb,nx,ny,nz),
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 2 axm(nb,nb,nx,ny,nz),aym(nb,nb,nx,ny,nz),azm(nb,nb,nx,ny,nz)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 do k=1,nz
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 km1=mod(k+nz-2,nz)+1
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 kp1=mod(k,nz)+1
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 do j=1,ny
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 jm1=mod(j+ny-2,ny)+1
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 jp1=mod(j,ny)+1
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 do i=1,nx
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 im1=mod(i+nx-2,nx)+1
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 ip1=mod(i,nx)+1
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 do l=1,nb
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 y(l,i,j,k)=0.0d0
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 do m=1,nb
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 y(l,i,j,k)=y(l,i,j,k)+
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 1 a(l,m,i,j,k)*x(m,i,j,k)+
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 2 axp(l,m,i,j,k)*x(m,ip1,j,k)+
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 3 ayp(l,m,i,j,k)*x(m,i,jp1,k)+
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 4 azp(l,m,i,j,k)*x(m,i,j,kp1)+
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33 5 axm(l,m,i,j,k)*x(m,im1,j,k)+
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 6 aym(l,m,i,j,k)*x(m,i,jm1,k)+
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 7 azm(l,m,i,j,k)*x(m,i,j,km1)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 enddo
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37 enddo
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 enddo
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39 enddo
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40 enddo
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41 return
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42 end
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
43
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
44 ! { dg-final { scan-tree-dump-times "is interchanged" 1 "linterchange" } }