tree-optimization/113385 - wrong loop father with early exit vectorization
[official-gcc.git] / gcc / testsuite / gfortran.dg / pr106226.f
blob19237bc5a7136f1734453ea861bbca63e2a99a4f
1 ! { dg-do compile }
2 ! { dg-options "-O3 -std=legacy" }
4 SUBROUTINE EFTORD(DM,CHDINT,L4)
5 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
6 PARAMETER (MXPT=100, MXFRG=50, MXFGPT=MXPT*MXFRG)
7 DIMENSION DM(*),CHDINT(L4)
8 COMMON /FGRAD / DEF0,DEFT0,TORQ0
9 * ,ATORQ(3,MXFRG)
10 COMMON /CSSTV / CX,CY,CZ
11 * EFBTRM(MXFGPT),EFATRM2(MXFGPT),EFBTRM2(MXFGPT),
12 * EFDIP(3,MXFGPT),EFQAD(6,MXFGPT),
13 * EFOCT(10,MXFGPT),FRGNME(MXFGPT)
14 IF(NROOTS.EQ.5) CALL ROOT5
15 IF(NROOTS.EQ.6) CALL ROOT6
16 IF(NROOTS.GE.7) THEN
17 CALL ABRT
18 END IF
19 DO 403 I = 1,IJ
20 CHDINT(ICC)=CHDINT(ICC)-DUM*DUMY
21 ICC=ICC+1
22 403 CONTINUE
23 CHDINT(ICC)=CHDINT(ICC)-DUM*DUMY
24 DO 550 J=MINJ,MAX
25 LJ=LOCJ+J
26 IF (LI-LJ) 920,940,940
27 920 ID = LJ
28 GO TO 960
29 940 ID = LI
30 960 NN = (ID*(ID-1))/2+JD
31 DUM = DM(NN)
32 ATORQ(1,INF)=ATORQ(1,INF)-DUM*(CHDINT(ICC+1)*EFDIP(3,IC)
33 $ -CHDINT(ICC+2)*EFDIP(2,IC))
34 ICC=ICC+1
35 ICC=ICC+1
36 550 CONTINUE
37 END