aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2023-07-01 13:44:46 +0200
committerJan Hubicka <jh@suse.cz>2023-07-01 13:44:46 +0200
commitee4d85b3a8b76328df6bccc1026d62dff5f827ce (patch)
treed09bd9ba4bce7f219bf2d818815abf481a3c8978
parent7e904d6c7f252ee947c237ed32dd43b2c248384d (diff)
downloadgcc-ee4d85b3a8b76328df6bccc1026d62dff5f827ce.zip
gcc-ee4d85b3a8b76328df6bccc1026d62dff5f827ce.tar.gz
gcc-ee4d85b3a8b76328df6bccc1026d62dff5f827ce.tar.bz2
Add testcase from PR25623
gcc/testsuite/ChangeLog: PR tree-optimization/25623 * gfortran.dg/pr25623.f90: New test.
-rw-r--r--gcc/testsuite/gfortran.dg/pr25623.f9019
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/pr25623.f90 b/gcc/testsuite/gfortran.dg/pr25623.f90
new file mode 100644
index 0000000..30905e4
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr25623.f90
@@ -0,0 +1,19 @@
+! { 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" } }