! { dg-do compile { target { i?86-*-* x86_64-*-* } } } ! { dg-options "-O3 -mavx" } ! ! PR fortran/50875.f90 module test implicit none integer, parameter :: dp=kind(1.d0) integer :: P = 2 real(kind=dp), allocatable :: real_array_A(:),real_array_B(:,:) complex(kind=dp), allocatable :: cmplx_array_A(:) contains subroutine routine_A integer :: i allocate(cmplx_array_A(P),real_array_B(P,P),real_array_A(P)) real_array_A = 1 real_array_B = 1 do i = 1, p cmplx_array_A = cmplx(real_array_B(:,i),0.0_dp,dp) cmplx_array_A = cmplx_array_A * exp(cmplx(0.0_dp,real_array_A+1)) end do deallocate(cmplx_array_A,real_array_B,real_array_A) end subroutine routine_A end module test