! { dg-do compile }
! { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-pre" }
module test

   type shell1quartet_type

   integer(kind=kind(1)) :: ab_l_sum
   integer(kind=kind(1)), dimension(:), pointer :: ab_form_3dints_x_indices => NULL()
   integer(kind=kind(1)), dimension(:), pointer :: ab_form_3dints_yz_rms_indices => NULL()

    end type

contains
subroutine make_esss(self,esss)
  type(shell1quartet_type) :: self
  intent(in) :: self
  real(kind=kind(1.0d0)), dimension(:), intent(out) :: esss
  real(kind=kind(1.0d0)), dimension(:), pointer :: Izz
  real(kind=kind(1.0d0)), dimension(:,:), pointer :: Ix,Iy,Iz,Iyz
  integer(kind=kind(1)), dimension(:), pointer  :: e_x,ii_ivec
  integer(kind=kind(1)) :: dim, dim1, nroots, ii,z,y

    dim = self%ab_l_sum+1
    dim1 = self%ab_l_sum+2
    nroots = (dim1) / 2
    call create_(Ix,nroots,dim)
    call create_(Iy,nroots,dim)
    call create_(Iz,nroots,dim)
    call create_(Iyz,nroots,dim*dim1/2)

    e_x => self%ab_form_3dints_x_indices
    ii_ivec => self%ab_form_3dints_yz_rms_indices

    call foo(Ix)
    call foo(Iy)
    call foo(Iz)

    esss = ZERO
    ii = 0
    do z=1,dim
      Izz => Iz(:,z)
      do y=1,dim1-z
        ii = ii + 1
        Iyz(:,ii) = Izz * Iy(:,y)
      end do
    end do
    esss = esss + sum(Ix(:,e_x) * Iyz(:,ii_ivec),1)

end subroutine

end

! There should be two loads from iyz.data, not four.

! { dg-final { scan-tree-dump-times "= iyz.data" 2 "pre" } }
