diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/pr46519-2.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr46519-2.f90 | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/pr46519-2.f90 b/gcc/testsuite/gfortran.dg/pr46519-2.f90 new file mode 100644 index 000000000..b4d698055 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr46519-2.f90 @@ -0,0 +1,31 @@ +! { dg-do compile { target i?86-*-* x86_64-*-* } } +! { dg-options "-O3 -mavx -mvzeroupper -mtune=generic -dp" } + + SUBROUTINE func(kts, kte, qrz, qiz, rho) + IMPLICIT NONE + INTEGER, INTENT(IN) :: kts, kte + REAL, DIMENSION(kts:kte), INTENT(INOUT) :: qrz, qiz, rho + INTEGER :: k + REAL, DIMENSION(kts:kte) :: praci, vtiold + REAL :: fluxout + INTEGER :: min_q, max_q, var + do k=kts,kte + praci(k)=0.0 + enddo + min_q=kte + max_q=kts-1 + DO var=1,20 + do k=max_q,min_q,-1 + fluxout=rho(k)*qrz(k) + enddo + qrz(min_q-1)=qrz(min_q-1)+fluxout + ENDDO + DO var=1,20 + do k=kts,kte-1 + vtiold(k)= (rho(k))**0.16 + enddo + ENDDO + STOP + END SUBROUTINE func + +! { dg-final { scan-assembler "avx_vzeroupper" } } |