diff options
author | Richard Biener <rguenther@suse.de> | 2017-08-08 12:49:39 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2017-08-08 12:49:39 +0000 |
commit | 26d66f28fdb9bea6e05c2c9f9df7870f9d9f76b2 (patch) | |
tree | 44c9ca13f1ec9e28922d7e114717cf35d2f576bb /gcc/testsuite | |
parent | 82c0d3ebe651bb12c087855c0e621cf070e97ed3 (diff) | |
download | gcc-26d66f28fdb9bea6e05c2c9f9df7870f9d9f76b2.zip gcc-26d66f28fdb9bea6e05c2c9f9df7870f9d9f76b2.tar.gz gcc-26d66f28fdb9bea6e05c2c9f9df7870f9d9f76b2.tar.bz2 |
re PR tree-optimization/81723 (fortran build doesn't terminate on 64bit targets)
2017-08-08 Richard Biener <rguenther@suse.de>
PR tree-optimization/81723
* tree-vect-slp.c (struct bst_traits): New hash traits.
(bst_fail): New global.
(vect_build_slp_tree_2): New worker, split out from ...
(vect_build_slp_tree): ... this now wrapping it with using
bst_fail set to cache SLP tree build fails. Properly handle
max_tree_size.
(vect_analyze_slp_instance): Allocate and free bst_fail.
* gfortran.dg/pr81723.f: New testcase.
From-SVN: r250953
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr81723.f | 56 |
2 files changed, 61 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c457a9e7..a3f5d46 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-08-08 Richard Biener <rguenther@suse.de> + + PR tree-optimization/81723 + * gfortran.dg/pr81723.f: New testcase. + 2017-08-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * gcc.target/powerpc/bfp/scalar-extract-exp-2.c: Adjust diagnostic diff --git a/gcc/testsuite/gfortran.dg/pr81723.f b/gcc/testsuite/gfortran.dg/pr81723.f new file mode 100644 index 0000000..977c1b6 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr81723.f @@ -0,0 +1,56 @@ +! { dg-do compile } +! { dg-options "-O3 -fno-automatic" } + + FUNCTION WWERF(Z) + + IMPLICIT DOUBLE PRECISION (A-H,O-Z) + COMPLEX*16 WWERF + COMPLEX*16 Z,ZH,R(37),S,T,V,W + + PARAMETER (Z1 = 1, HF = Z1/2, Z10 = 10) + PARAMETER (C1 = 74/Z10, C2 = 83/Z10, C3 = Z10/32, C4 = 16/Z10) + PARAMETER (C = 1.12837 91670 95512 57D0, P = (2*C4)**33) + + DOUBLE PRECISION GREAL,GIMAG,XARG,YARG + COMPLEX*16 ZARG,GCONJG,GCMPLX + GREAL( ZARG)=DREAL( ZARG) + GIMAG( ZARG)=DIMAG( ZARG) + GCONJG(ZARG)=DCONJG(ZARG) + GCMPLX(XARG,YARG)=DCMPLX(XARG,YARG) + + X=Z + Y=GIMAG(Z) + XA=ABS(X) + YA=ABS(Y) + IF(YA .LT. C1 .AND. XA .LT. C2) THEN + ZH=GCMPLX(YA+C4,XA) + R(37)=0 + DO 1 N = 36,1,-1 + T=ZH+N*GCONJG(R(N+1)) + 1 R(N)=HF*T/(GREAL(T)**2+GIMAG(T)**2) + XL=P + S=0 + DO 2 N = 33,1,-1 + XL=C3*XL + 2 S=R(N)*(S+XL) + V=C*S + ELSE + ZH=GCMPLX(YA,XA) + R(1)=0 + DO 3 N = 9,1,-1 + T=ZH+N*GCONJG(R(1)) + 3 R(1)=HF*T/(GREAL(T)**2+GIMAG(T)**2) + V=C*R(1) + END IF + IF(YA .EQ. 0) V=GCMPLX(EXP(-XA**2),GIMAG(V)) + IF(Y .LT. 0) THEN + V=2*EXP(-GCMPLX(XA,YA)**2)-V + IF(X .GT. 0) V=GCONJG(V) + ELSE + IF(X .LT. 0) V=GCONJG(V) + END IF + + WWERF=V + + RETURN + END |