aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.fortran-torture
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-05-22 09:55:49 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-05-22 09:55:49 +0000
commit4515e413cb72d3a71b41d3e85da1be03fa88677d (patch)
tree2dfce6df605e1feeece53b2e077e8649db576436 /gcc/testsuite/gfortran.fortran-torture
parentc5470754d0371c375ddf7f63b398fe97cf18c939 (diff)
downloadgcc-4515e413cb72d3a71b41d3e85da1be03fa88677d.zip
gcc-4515e413cb72d3a71b41d3e85da1be03fa88677d.tar.gz
gcc-4515e413cb72d3a71b41d3e85da1be03fa88677d.tar.bz2
re PR tree-optimization/85863 (ICE in compiling spec2006 fortran test case solib.fppized.f starting with r260283)
2018-05-22 Richard Biener <rguenther@suse.de> PR tree-optimization/85863 * tree-vect-stmts.c (vect_is_simple_cond): Only widen invariant comparisons when vectype is specified. (vectorizable_condition): Do not specify vectype for vect_is_simple_cond when SLP vectorizing. * gfortran.fortran-torture/compile/pr85863.f: New testcase. From-SVN: r260501
Diffstat (limited to 'gcc/testsuite/gfortran.fortran-torture')
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/compile/pr85863.f22
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.fortran-torture/compile/pr85863.f b/gcc/testsuite/gfortran.fortran-torture/compile/pr85863.f
new file mode 100644
index 0000000..57673fd
--- /dev/null
+++ b/gcc/testsuite/gfortran.fortran-torture/compile/pr85863.f
@@ -0,0 +1,22 @@
+! { dg-do compile }
+! { dg-additional-options "-ffast-math -ftree-vectorize" }
+ SUBROUTINE SOBOOK(MHSO,HSOMAX,MS)
+ IMPLICIT DOUBLE PRECISION(A-H,O-Z)
+ COMPLEX*16 HSOT,HSO1(2)
+ PARAMETER (ZERO=0.0D+00,TWO=2.0D+00)
+ DIMENSION SOL1(3,2),SOL2(3)
+ CALL FOO(SOL1,SOL2)
+ SQRT2=SQRT(TWO)
+ DO IH=1,MHSO
+ IF(MS.EQ.0) THEN
+ HSO1(IH) = DCMPLX(ZERO,-SOL1(3,IH))
+ HSOT = DCMPLX(ZERO,-SOL2(3))
+ ELSE
+ HSO1(IH) = DCMPLX(-SOL1(2,IH),SOL1(1,IH))/SQRT2
+ HSOT = DCMPLX(-SOL2(2),SOL2(1))/SQRT2
+ ENDIF
+ ENDDO
+ HSOT=HSOT+HSO1(1)
+ HSOMAX=MAX(HSOMAX,ABS(HSOT))
+ RETURN
+ END