This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: gcse.c patch for IA-64 glibc math test failures
- From: Jim Wilson <wilson at specifixinc dot com>
- To: Roger Sayle <roger at eyesopen dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: 16 Dec 2003 14:28:29 -0800
- Subject: Re: gcse.c patch for IA-64 glibc math test failures
- References: <Pine.LNX.4.44.0312160616230.30494-100000@www.eyesopen.com>
On Tue, 2003-12-16 at 05:54, Roger Sayle wrote:
> static bool implicit_set_cond_p (rtx cond)
Yes, this looks good to me. I'll try rewriting and retesting my patch.
It will take an entire day pretty much to do gcc/glibc builds and tests.
> The dependence upon copysign can be removed with "minus_zero = -0.0;"
> The signbit test can be removed by using memcmp to determine whether
> the floating point representations match identically.
Thanks for the suggestions. I have a usable testcase now.
>I don't believe there are any other cases where floating point equality
>!= identity?
zero and NaN were the only ones that occurred to me also.
IA-64 also has NatVAL which results from failed speculative loads, and
behaves a bit like a NaN, but I don't think gcse has to worry about it.
I don't seem to have an x87 manual, but I'm wondering if there are
problems for that target. The i386 port lies about the FP instruction
set. There might be a chance that cse/gcse of an FP value here might
cause us to replace a DFmode value with a register XFmode value that
differs in the excess precision bits. This isn't really the fault of
cse/gcse though. It is a bug in the i386 target support, and it doesn't
seem appropriate to make cse/gcse change to workaround the i386 bug.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com