[Bug target/35659] [4.3/4.4 Regression] Miscompiled code with -O2 (but not with -O2 -funroll-loops) on ia64
jakub at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Tue Jun 24 14:45:00 GMT 2008
------- Comment #11 from jakub at gcc dot gnu dot org 2008-06-24 14:44 -------
PROGRAM PR35659
DIMENSION A(1000), B(1010), AUX(8), IPIV(8), X(16)
COMMON /TLSDIM/ M1,M,N,L,IER
COMMON /SLATE/ V1,V2,IAR(24),DUM(14)
DATA A/0, 1, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 1, 0.200000003,
1 0.0399999991, 0.00800000038, 1, 0.400000006, 0.159999996,
2 0.064000003, 1, 0.600000024, 0.360000014, 0.216000006, 1,
3 0.800000012, 0.639999986, 0.512000024, 1, 1, 1, 1, 968*0./
DATA B/1, 2, 1, 1.22140002, 1.49179995, 1.82210004,
4 2.22550011, 2.7183001, 0, 0, 1000*0./
M1 = 2
M = 8
N = 4
L = 1
IER = 0
V1 = 0
V2 = 1.40129846e-45
IAR(:) = 538976288
DUM(:) = 1.35631564e-19
CALL TLSC(A,B,AUX,IPIV,1.,X)
IF (ABS(X(1) - 0.99785352).GE.0.1) CALL ABORT
IF (ABS(X(2) - 1.0).GE.0.1) CALL ABORT
IF (ABS(X(3) - 0.50107324).GE.0.1) CALL ABORT
IF (ABS(X(4) - 0.21670136).GE.0.1) CALL ABORT
END
SUBROUTINE TLSMSQ (B,L,M,F)
COMMON /SLATE/ DUM(38),I,JB
DIMENSION B(*)
F = 0.
JB = 1
DO 10 I=1,M
F = F + B(JB)*B(JB)
10 JB = JB + L
RETURN
END
SUBROUTINE TLSWOP (A,AD,N,NR)
COMMON /SLATE/ DUM(37),H,I,JA
DIMENSION A(*), AD(*)
JA = 1
DO 10 I=1,NR
H = A(JA)
A(JA) = AD(JA)
AD(JA) = H
10 JA = JA + N
RETURN
END
SUBROUTINE TLUK (A,IASEP,NR,SIG,BETA)
COMMON /SLATE/ DUM(37),I,JA,LL
DIMENSION A(*)
SIG= 0.
JA = 1
LL = 0
DO 10 I=1,NR
IF (A(JA).EQ.0.) GO TO 10
LL = I
SIG= SIG + A(JA)* A(JA)
10 JA = JA + IASEP
NR = LL
IF (NR.EQ.0) RETURN
SIG = SIGN (SQRT (SIG),A(1))
BETA = A(1) + SIG
A(1) = BETA
BETA = 1. / (SIG * BETA)
RETURN
END
SUBROUTINE TLSTEP (A,B,IASEP,IBSEP,NR,NC,BETA)
COMMON /SLATE/ DUM(34),H,I,IB,J,JA,JB
DIMENSION A(*), B(*)
IB = 0
DO 30 J=1,NC
IB = IB + 1
H = 0.
JA = 1
JB = IB
DO 10 I=1,NR
H = H + A(JA) * B(JB)
JA = JA +IASEP
10 JB = JB + IBSEP
H = H * BETA
JA = 1
JB = IB
DO 20 I=1,NR
B(JB) = B(JB) - A(JA) * H
JA = JA +IASEP
20 JB = JB + IBSEP
30 CONTINUE
RETURN
END
together with tlsc.f can work as a testcase, and reproduces the problem with
current 4.3 branch.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35659
More information about the Gcc-bugs
mailing list