annotate gcc/testsuite/gfortran.dg/pr43984.f90 @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ! { dg-do compile }
kono
parents:
diff changeset
2 ! { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-pre" }
kono
parents:
diff changeset
3 module test
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 type shell1quartet_type
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 integer(kind=kind(1)) :: ab_l_sum
kono
parents:
diff changeset
8 integer(kind=kind(1)), dimension(:), pointer :: ab_form_3dints_x_indices => NULL()
kono
parents:
diff changeset
9 integer(kind=kind(1)), dimension(:), pointer :: ab_form_3dints_yz_rms_indices => NULL()
kono
parents:
diff changeset
10
kono
parents:
diff changeset
11 end type
kono
parents:
diff changeset
12
kono
parents:
diff changeset
13 contains
kono
parents:
diff changeset
14 subroutine make_esss(self,esss)
kono
parents:
diff changeset
15 type(shell1quartet_type) :: self
kono
parents:
diff changeset
16 intent(in) :: self
kono
parents:
diff changeset
17 real(kind=kind(1.0d0)), dimension(:), intent(out) :: esss
kono
parents:
diff changeset
18 real(kind=kind(1.0d0)), dimension(:), pointer :: Izz
kono
parents:
diff changeset
19 real(kind=kind(1.0d0)), dimension(:,:), pointer :: Ix,Iy,Iz,Iyz
kono
parents:
diff changeset
20 integer(kind=kind(1)), dimension(:), pointer :: e_x,ii_ivec
kono
parents:
diff changeset
21 integer(kind=kind(1)) :: dim, dim1, nroots, ii,z,y
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 dim = self%ab_l_sum+1
kono
parents:
diff changeset
24 dim1 = self%ab_l_sum+2
kono
parents:
diff changeset
25 nroots = (dim1) / 2
kono
parents:
diff changeset
26 call create_(Ix,nroots,dim)
kono
parents:
diff changeset
27 call create_(Iy,nroots,dim)
kono
parents:
diff changeset
28 call create_(Iz,nroots,dim)
kono
parents:
diff changeset
29 call create_(Iyz,nroots,dim*dim1/2)
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 e_x => self%ab_form_3dints_x_indices
kono
parents:
diff changeset
32 ii_ivec => self%ab_form_3dints_yz_rms_indices
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34 call foo(Ix)
kono
parents:
diff changeset
35 call foo(Iy)
kono
parents:
diff changeset
36 call foo(Iz)
kono
parents:
diff changeset
37
kono
parents:
diff changeset
38 esss = ZERO
kono
parents:
diff changeset
39 ii = 0
kono
parents:
diff changeset
40 do z=1,dim
kono
parents:
diff changeset
41 Izz => Iz(:,z)
kono
parents:
diff changeset
42 do y=1,dim1-z
kono
parents:
diff changeset
43 ii = ii + 1
kono
parents:
diff changeset
44 Iyz(:,ii) = Izz * Iy(:,y)
kono
parents:
diff changeset
45 end do
kono
parents:
diff changeset
46 end do
kono
parents:
diff changeset
47 esss = esss + sum(Ix(:,e_x) * Iyz(:,ii_ivec),1)
kono
parents:
diff changeset
48
kono
parents:
diff changeset
49 end subroutine
kono
parents:
diff changeset
50
kono
parents:
diff changeset
51 end
kono
parents:
diff changeset
52
kono
parents:
diff changeset
53 ! There should be two loads from iyz.data, not four.
kono
parents:
diff changeset
54
kono
parents:
diff changeset
55 ! { dg-final { scan-tree-dump-times "= iyz.data" 2 "pre" } }