OSDN Git Service

2010-11-02 Steven G. Kargl < kargl@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gfortran.dg / pr42294.f
1 C PR rtl-optimization/42294
2 C { dg-do compile { target powerpc*-*-* ia64-*-* x86_64-*-* } }
3 C { dg-options "-O2 -fselective-scheduling2 -fsel-sched-pipelining -funroll-all-loops" }
4
5       SUBROUTINE ORIEN(IW,NATOT,NTOTORB,NATORB,P,T)
6       IMPLICIT DOUBLE PRECISION(A-H,O-Z)
7       DIMENSION NATORB(NATOT),P(NTOTORB*(NTOTORB+1)/2)
8       DIMENSION T(NTOTORB,NTOTORB)
9       DO 9000 IATOM=1,NATOT
10          ILAST = NTOTORB
11          IF (IATOM.NE.NATOT) ILAST=NATORB(IATOM+1)-1
12          DO 8000 IAOI=NATORB(IATOM),ILAST
13             DO 7000 IAOJ = IAOI+1,ILAST
14                R2 = 0.0D+00
15                R3 = 0.0D+00
16                DO 6000 INOTA=1,NATOT
17                   DO 5000 IK=NATORB(INOTA),NTOTORB
18                      IMAI=MAX(IK,IAOI)
19                      IMII=MIN(IK,IAOI)
20                      IMAJ=MAX(IK,IAOJ)
21                      IMIJ=MIN(IK,IAOJ)
22                      IKI=(IMAI*(IMAI-1))/2 + IMII
23                      IKJ=(IMAJ*(IMAJ-1))/2 + IMIJ
24                      PIKI=P(IKI)
25                      PIKJ=P(IKJ)
26                      R2 = R2 + (PIKI**4)-6*(PIKI*PIKI*PIKJ*PIKJ)+(PIKJ)
27  5000             CONTINUE
28  6000          CONTINUE
29                R2 = (R2/4.0D+00)
30                Q = SQRT(R2*R2 + R3*R3)
31                IF (Q.LT.1.0D-08) GO TO 7000
32                A = COS(THETA)
33                B = -SIN(THETA)
34                CALL ROT1INT(NTOTORB,IAOI,IAOJ,A,B,P)
35  7000       CONTINUE
36  8000    CONTINUE
37  9000 CONTINUE
38       RETURN
39       END
40
41