Subject: Re: Setting FP precision: fpgetprec() and fpsetprec()
To: Krister Walfridsson <cato@df.lth.se>
From: Jason Thorpe <thorpej@wasabisystems.com>
List: tech-userlevel
Date: 06/29/2003 20:23:23
On Sunday, June 29, 2003, at 08:37  AM, Krister Walfridsson wrote:

> I have no comments on fpgetprec() and fpsetprec(), but I don't think
> it is the correct way to remove the FP failures in the gcc testsuite...
>
> It is IMHO much better to make gcc understand that NetBSD defaults to
> double-precision (which is what I believe RTH's old
> ieee_extended_intel_96_round_53_format patch to gcc/real.[ch] does.
> See Loren's updated patch, sent to gcc-patches last week...)

Unfortunately, applying the change to use intel_96_round_53 on 
i386-netbsd* seems to have caused regressions.  This puzzles me 
somewhat.

  FAIL: gcc.c-torture/execute/ieee/rbug.c execution,  -O0
  FAIL: gcc.c-torture/execute/ieee/rbug.c execution,  -O1
  FAIL: gcc.c-torture/execute/ieee/rbug.c execution,  -O2
+FAIL: gcc.c-torture/execute/ieee/rbug.c execution,  -O3 
-fomit-frame-pointer
+FAIL: gcc.c-torture/execute/ieee/rbug.c execution,  -O3 -g
  FAIL: gcc.c-torture/execute/ieee/rbug.c execution,  -Os
  XPASS: gcc.dg/cpp/cmdlne-dI-M.c scan-file 
(^|\\n)cmdlne-dI-M.*:[^\\n]*cmdlne-dI-M.c
  XPASS: gcc.dg/cpp/cmdlne-dM-M.c scan-file 
(^|\\n)cmdlne-dM-M[^\\n]*:[^\\n]*cmdlne-dM-M.c
  FAIL: gcc.dg/20030626-1.c  (test for bogus messages, line 17)
  FAIL: gcc.dg/builtins-20.c (test for excess errors)
  FAIL: gcc.dg/const-elim-1.c scan-assembler-not LC[^A-Z]
+FAIL: gcc.dg/i386-387-3.c scan-assembler fldpi
+FAIL: gcc.dg/i386-387-4.c scan-assembler fldpi
  FAIL: gcc.dg/warn-1.c  (test for warnings, line 15)
  FAIL: gcc.dg/pch/common-1.c  -O3 -fomit-frame-pointer  assembly 
comparison
  FAIL: gcc.dg/pch/common-1.c  -O3 -g  assembly comparison
@@ -66,8 +70,8 @@

                 === gcc Summary ===

-# of expected passes           22804
-# of unexpected failures       16
+# of expected passes           22800
+# of unexpected failures       20
  # of unexpected successes      2
  # of expected failures         73
  # of unsupported tests         134

I guess there are two interesting things here:

	1. ieee/rbug.c succeeds without the patch at -O3.  I don't
	   recall this being the case before.  I need to go look
	   back through older results.

	2. If it succeeds at -O3, why does it fail at < -O3?

	3. The patch causes the i387 pi constant to not be recognized
	   properly.  Why didn't this happen for FreeBSD, too?

         -- Jason R. Thorpe <thorpej@wasabisystems.com>