! { dg-do compile } ! { dg-options "-O2 -ftree-vectorize -fno-inline" } ! { dg-additional-options "-march=skylake" { target x86_64-*-* i?86-*-* } } MODULE pr93527 implicit none integer, parameter :: wp = kind (1.d0) interface p_min module procedure p_min_wp end interface contains subroutine foo (pr) real(wp), pointer :: pr(:) integer :: nzd real(wp) :: pmin real(wp) :: pmin_diag integer :: i nzd = 15 allocate (pr(nzd)) pmin_diag = 4000._wp pmin = p_min(pmin_diag) pmin = min (pmin,pmin_diag) pr(1) = log(pmin) do i=1,nzd-1 pr(i+1) = log(pmin) + i end do end subroutine foo function p_min_wp (x) result (p_min) real(wp), intent(in) :: x real(wp) :: p_min p_min = x end function p_min_wp end module pr93527