1! { dg-do compile { target { i?86-*-* x86_64-*-* } } }
2! { dg-options "-O3 -mavx" }
3!
4! PR fortran/50875.f90
5
6module test
7
8  implicit none
9
10  integer, parameter :: dp=kind(1.d0)
11
12  integer :: P = 2
13
14  real(kind=dp), allocatable :: real_array_A(:),real_array_B(:,:)
15  complex(kind=dp), allocatable :: cmplx_array_A(:)
16
17contains
18
19  subroutine routine_A
20
21    integer :: i
22
23    allocate(cmplx_array_A(P),real_array_B(P,P),real_array_A(P))
24
25    real_array_A = 1
26    real_array_B = 1
27
28    do i = 1, p
29       cmplx_array_A = cmplx(real_array_B(:,i),0.0_dp,dp)
30       cmplx_array_A = cmplx_array_A * exp(cmplx(0.0_dp,real_array_A+1))
31    end do
32
33    deallocate(cmplx_array_A,real_array_B,real_array_A)
34
35  end subroutine routine_A
36
37end module test
38