! { dg-do compile } ! { dg-options "-fdump-tree-optimized-blocks-details -O2" } SUBROUTINE S42(a,b,c,N) IMPLICIT NONE integer :: N real*8 :: a(N),b(N),c(N),tmp,tmp2,tmp4 real*8, parameter :: p=1.0D0/3.0D0 integer :: i c=0.0D0 DO i=1,N tmp=a(i)**p ! could even be done with a cube root tmp2=tmp*tmp tmp4=tmp2*tmp2 b(i)=b(i)+tmp4 c(i)=c(i)+tmp2 ENDDO END SUBROUTINE ! { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } }