Skip to content

Commit

Permalink
fixes for flang bug on arithmetic if flang-compiler/flang#844 #179
Browse files Browse the repository at this point in the history
  • Loading branch information
edoapra committed Feb 15, 2020
1 parent 2158080 commit f49eb48
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 0 deletions.
29 changes: 29 additions & 0 deletions src/ddscf/fast/sint.f → src/ddscf/fast/sint.F
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ SUBROUTINE SINT1(N,WAR,WAS,XH,X,IFAC)
DOUBLE PRECISION T1
DOUBLE PRECISION T2
DOUBLE PRECISION WAR(*),WAS(*),X(*),XH(*)
integer*4 n4
INTEGER IFAC(*)
DATA SQRT3/1.73205080756888D0/
C
Expand All @@ -86,7 +87,12 @@ SUBROUTINE SINT1(N,WAR,WAS,XH,X,IFAC)
XH(I) = WAR(I)
WAR(I) = X(I)
100 CONTINUE
#if 1
n4=n-2
IF (n4) 101,102,103
#else
IF (N-2) 101,102,103
#endif
101 XH(1) = XH(1) + XH(1)
GO TO 106
102 XHOLD = SQRT3* (XH(1)+XH(2))
Expand Down Expand Up @@ -241,6 +247,7 @@ SUBROUTINE RFFTI1(N,WA,IFAC)
DOUBLE PRECISION ARG
DOUBLE PRECISION WA(*)
INTEGER IFAC(*),NTRYH(4)
integer*4 n4
DATA NTRYH(1),NTRYH(2),NTRYH(3),NTRYH(4)/4,2,3,5/
C
C FFTPACK 5.0 auxiliary routine
Expand All @@ -250,13 +257,23 @@ SUBROUTINE RFFTI1(N,WA,IFAC)
NTRY = 0
J = 0
101 J = J + 1
#if 1
n4=j-4
IF (n4) 102,102,103
#else
IF (J-4) 102,102,103
#endif
102 NTRY = NTRYH(J)
GO TO 104
103 NTRY = NTRY + 2
104 NQ = NL/NTRY
NR = NL - NTRY*NQ
#if 1
n4=NR
IF (n4) 101,105,101
#else
IF (NR) 101,105,101
#endif
105 NF = NF + 1
IFAC(NF+2) = NTRY
NL = NQ
Expand Down Expand Up @@ -318,14 +335,20 @@ SUBROUTINE RADF2(IDO,L1,CC,CH,WA1)
DOUBLE PRECISION TR2
DOUBLE PRECISION TI2
DOUBLE PRECISION CH(IDO,2,L1),CC(IDO,L1,2),WA1(*)
integer*4 n4
C
C FFTPACK 5.0 auxiliary routine
C
DO 101 K = 1,L1
CH(1,1,K) = CC(1,K,1) + CC(1,K,2)
CH(IDO,2,K) = CC(1,K,1) - CC(1,K,2)
101 CONTINUE
#if 1
n4=ido-2
IF (n4) 107,105,102
#else
IF (IDO-2) 107,105,102
#endif
102 IDP2 = IDO + 2
DO 104 K = 1,L1
DO 103 I = 3,IDO,2
Expand Down Expand Up @@ -439,6 +462,7 @@ SUBROUTINE RADF4(IDO,L1,CC,CH,WA1,WA2,WA3)
DOUBLE PRECISION TI3
DOUBLE PRECISION TR3
DOUBLE PRECISION CC(IDO,L1,4),CH(IDO,4,L1),WA1(*),WA2(*),WA3(*)
integer*4 n4
DATA HSQT2/.7071067811865475D0/
C
C FFTPACK 5.0 auxiliary routine
Expand All @@ -451,7 +475,12 @@ SUBROUTINE RADF4(IDO,L1,CC,CH,WA1,WA2,WA3)
CH(IDO,2,K) = CC(1,K,1) - CC(1,K,3)
CH(1,3,K) = CC(1,K,4) - CC(1,K,2)
101 CONTINUE
#if 1
n4=ido-2
IF (n4) 107,105,102
#else
IF (IDO-2) 107,105,102
#endif
102 IDP2 = IDO + 2
DO 104 K = 1,L1
DO 103 I = 3,IDO,2
Expand Down
23 changes: 23 additions & 0 deletions src/ddscf/fast/vsint.f → src/ddscf/fast/vsint.F
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ SUBROUTINE VRADF2 (MP,IDO,L1,CC,CH,MDIMC,WA1)
C
C VRFFTPK, VERSION 1, AUGUST 1985
C
integer*4 n4
DIMENSION CH(MDIMC,IDO,2,L1) ,CC(MDIMC,IDO,L1,2) ,
1 WA1(IDO)
DO 101 K=1,L1
Expand All @@ -180,7 +181,12 @@ SUBROUTINE VRADF2 (MP,IDO,L1,CC,CH,MDIMC,WA1)
CH(M,IDO,2,K) = CC(M,1,K,1)-CC(M,1,K,2)
1001 CONTINUE
101 CONTINUE
#if 1
n4=ido-2
IF (n4) 107,105,102
#else
IF (IDO-2) 107,105,102
#endif
102 IDP2 = IDO+2
DO 104 K=1,L1
DO 103 I=3,IDO,2
Expand Down Expand Up @@ -258,6 +264,7 @@ SUBROUTINE VRADF4 (MP,IDO,L1,CC,CH,MDIMC,WA1,WA2,WA3)
C
DIMENSION CC(MDIMC,IDO,L1,4) ,CH(MDIMC,IDO,4,L1) ,
1 WA1(IDO) ,WA2(IDO) ,WA3(IDO)
integer*4 n4
HSQT2=SQRT(2.d0)/2.d0
DO 101 K=1,L1
DO 1001 M=1,MP
Expand All @@ -269,7 +276,12 @@ SUBROUTINE VRADF4 (MP,IDO,L1,CC,CH,MDIMC,WA1,WA2,WA3)
CH(M,1,3,K) = CC(M,1,K,4)-CC(M,1,K,2)
1001 CONTINUE
101 CONTINUE
#if 1
n4=ido-2
IF (n4) 107,105,102
#else
IF (IDO-2) 107,105,102
#endif
102 IDP2 = IDO+2
DO 104 K=1,L1
DO 103 I=3,IDO,2
Expand Down Expand Up @@ -965,19 +977,30 @@ SUBROUTINE VRFTI1 (N,WA,FAC)
C VRFFTPK, VERSION 1, AUGUST 1985
C
DIMENSION WA(N) ,FAC(15) ,NTRYH(4)
integer*4 n4
DATA NTRYH(1),NTRYH(2),NTRYH(3),NTRYH(4)/4,2,3,5/
NTRY = 0
NL = N
NF = 0
J = 0
101 J = J+1
#if 1
n4=j-4
IF (n4) 102,102,103
#else
IF (J-4) 102,102,103
#endif
102 NTRY = NTRYH(J)
GO TO 104
103 NTRY = NTRY+2
104 NQ = NL/NTRY
NR = NL-NTRY*NQ
#if 1
n4=n5
IF (n4) 101,105,101
#else
IF (NR) 101,105,101
#endif
105 NF = NF+1
FAC(NF+2) = NTRY
NL = NQ
Expand Down

0 comments on commit f49eb48

Please sign in to comment.