I noticed today (gcc version 4.4.0 20080221) two failures in FM827 when running the NIST test suite with -m64. I have reduced the code to:
PROGRAM FM827 DOUBLE PRECISION AVD, BVD, CVD, DVD, DVCORR IVPASS = 0 IVFAIL = 0 IVDELE = 0 IVINSP = 0 IVTOTN = 0 ICZERO = 0 I01 = 05 I02 = 06 NUVI = I02 CT007* TEST 7 SQRT(X)**2 = X IVTNUM = 7 AVD = DSQRT(9.125D0) ** 2 - 9.125D0 IF (AVD + 0.5000000000D-09) 20070, 10070, 40070 40070 IF (AVD - 0.5000000000D-09) 10070, 10070, 20070 10070 IVPASS = IVPASS + 1 WRITE (NUVI, 80002) IVTNUM GO TO 0071 20070 IVFAIL = IVFAIL + 1 DVCORR = 0.0D+00 WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 0071 CONTINUE CT008* TEST 8 LN(X) = LN(10) * LOG10(X) IVTNUM = 8 BVD = 62.5D0 / 1000.0D0 AVD = DLOG10(BVD) * DLOG(10.0D0) - DLOG(0.0625D0) IF (AVD + 0.5000000000D-09) 20080, 10080, 40080 40080 IF (AVD - 0.5000000000D-09) 10080, 10080, 20080 10080 IVPASS = IVPASS + 1 WRITE (NUVI, 80002) IVTNUM GO TO 0081 20080 IVFAIL = IVFAIL + 1 DVCORR = 0.0D+00 WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 0081 CONTINUE CT009* TEST 9 COSH**2 - SINH**2 = 1 IVTNUM = 9 BVD = 0.125D0 CVD = DSINH(2.125D0) DVD = DCOSH(2.0D0 + BVD) AVD = DVD ** 2 - CVD ** 2 - DCOSH(0.0D0) IF (AVD + 0.5000000000D-09) 20090, 10090, 40090 40090 IF (AVD - 0.5000000000D-09) 10090, 10090, 20090 10090 IVPASS = IVPASS + 1 WRITE (NUVI, 80002) IVTNUM GO TO 0091 20090 IVFAIL = IVFAIL + 1 DVCORR = 0.0D+00 WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 0091 CONTINUE CT010* TEST 10 TANH(X) = 1 - 2/(EXP(2X)+1) IVTNUM = 10 BVD = 5.0D0 CVD = 2.0D0 DVD = DLOG10(BVD * CVD) - DSQRT(4.0D0) / 1 (DEXP(2.0D0 * (BVD - CVD)) + DCOS(0.0D0)) AVD = DVD - DTANH(3.0D0) IF (AVD + 0.5000000000D-09) 20100, 10100, 40100 40100 IF (AVD - 0.5000000000D-09) 10100, 10100, 20100 10100 IVPASS = IVPASS + 1 WRITE (NUVI, 80002) IVTNUM GO TO 0101 20100 IVFAIL = IVFAIL + 1 DVCORR = 0.0D+00 WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 0101 CONTINUE 80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 1D17.10,/," ",16X,"CORRECT= " ,D17.10) STOP END for which the executable gives: 7 PASS 8 FAIL COMPUTED= 0.2772588722D+01 CORRECT= 0.0000000000D+00 9 PASS 10 FAIL COMPUTED= -0.1000000000D+01 CORRECT= 0.0000000000D+00 I have tried to reduce the code further, but I cannot keep at the same time the logic of the code and the failures. I don't get any failure on PPC. When the tests fail, DLOG10(BVD)=0.0D0. I am pretty sure to have run the NIST test suite with -m64 without error when Jerry DeLisle proposed his first patch for PR35036 three weeks ago, now it fails even with 4.2.3 and all the old gfortran I have tried. So I don't understand what's happening. I don't know if this related, but in the last weeks I have updated mpfr to 2.3.1 (from 2.3.0) and Darwin to 9.2 (from 9.1). -- Summary: Failures in the NIST test suite FM827 with -m64 Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dominiq at lps dot ens dot fr GCC build triplet: i686-apple-darwin9 GCC host triplet: i686-apple-darwin9 GCC target triplet: i686-apple-darwin9 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35285