gcc/testsuite/ChangeLog:
PR tree-optimization/25623
* gfortran.dg/pr25623.f90: New test.
--- /dev/null
+! { dg-do compile }
+! { dg-options "-fdump-tree-optimized-blocks -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" } }