diff options
author | Andrey Belevantsev <abel@ispras.ru> | 2010-08-20 12:07:17 +0400 |
---|---|---|
committer | Andrey Belevantsev <abel@gcc.gnu.org> | 2010-08-20 12:07:17 +0400 |
commit | 46499993b183dd96d52a050628e409c0512cc411 (patch) | |
tree | cd82490d66705363cd96dce145f56d215adae4e5 | |
parent | 891aa2ecc420149e34dabf08c84019bcd174a611 (diff) | |
download | gcc-46499993b183dd96d52a050628e409c0512cc411.zip gcc-46499993b183dd96d52a050628e409c0512cc411.tar.gz gcc-46499993b183dd96d52a050628e409c0512cc411.tar.bz2 |
re PR rtl-optimization/44691 (ICE: RTL check: expected code 'reg', have 'plus' in rhs_regno, at rtl.h:1050)
PR rtl-optimization/44691
* gfortran.dg/pr44691.f: New test.
From-SVN: r163396
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr44691.f | 41 |
2 files changed, 46 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e46fd3f..be71700 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-08-19 Andrey Belevantsev <abel@ispras.ru> + + PR rtl-optimization/44691 + * gfortran.dg/pr44691.f: New test. + 2010-10-19 Olivier Hainque <hainque@adacore.com> * gcc.target/sparc/sibcall-dslot.c: New testcase. diff --git a/gcc/testsuite/gfortran.dg/pr44691.f b/gcc/testsuite/gfortran.dg/pr44691.f new file mode 100644 index 0000000..dc57c44 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr44691.f @@ -0,0 +1,41 @@ +C PR rtl-optimization/44691 +C { dg-do compile { target powerpc*-*-* ia64-*-* x86_64-*-* } } +C { dg-options "-O2 -fselective-scheduling2" } + + SUBROUTINE ORIEN(IW,NATOT,NTOTORB,NATORB,P,T) + IMPLICIT DOUBLE PRECISION(A-H,O-Z) + DIMENSION NATORB(NATOT),P(NTOTORB*(NTOTORB+1)/2) + DIMENSION T(NTOTORB,NTOTORB) + DO 9000 IATOM=1,NATOT + ILAST = NTOTORB + IF (IATOM.NE.NATOT) ILAST=NATORB(IATOM+1)-1 + DO 8000 IAOI=NATORB(IATOM),ILAST + DO 7000 IAOJ = IAOI+1,ILAST + R2 = 0.0D+00 + R3 = 0.0D+00 + DO 6000 INOTA=1,NATOT + DO 5000 IK=NATORB(INOTA),NTOTORB + IMAI=MAX(IK,IAOI) + IMII=MIN(IK,IAOI) + IMAJ=MAX(IK,IAOJ) + IMIJ=MIN(IK,IAOJ) + IKI=(IMAI*(IMAI-1))/2 + IMII + IKJ=(IMAJ*(IMAJ-1))/2 + IMIJ + PIKI=P(IKI) + PIKJ=P(IKJ) + R2 = R2 + (PIKI**4)-6*(PIKI*PIKI*PIKJ*PIKJ)+(PIKJ) + 5000 CONTINUE + 6000 CONTINUE + R2 = (R2/4.0D+00) + Q = SQRT(R2*R2 + R3*R3) + IF (Q.LT.1.0D-08) GO TO 7000 + A = COS(THETA) + B = -SIN(THETA) + CALL ROT1INT(NTOTORB,IAOI,IAOJ,A,B,P) + 7000 CONTINUE + 8000 CONTINUE + 9000 CONTINUE + RETURN + END + + |