| ! { 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)=1.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" } } |