[Bug target/7285] [ia64] unsigned-to-floating conversion not spec conformant
zack at codesourcery dot com
gcc-bugzilla@gcc.gnu.org
Thu Mar 18 10:08:00 GMT 2004
------- Additional Comments From zack at codesourcery dot com 2004-03-18 10:08 -------
Subject: Re: [ia64] unsigned-to-floating conversion not
spec conformant
Thanks for the additional detail, but I am still not seeing exactly
what should happen. (For the record, I used the HP compiler as a
reference because it's the non-GCC compiler for IA64 that I have
convenient access to; I wasn't expecting its output necessarily to be
correct.)
This code
static __float80 floatunsdixf(unsigned long long x) { return x; }
void main(void)
{
__float80 v = floatunsdixf(12);
printf("%qf\n", v);
return 0;
}
does _not_ trigger a denormal exception when executed on ia64-hpux.
(On this target "long double" is a software-emulated 128-bit type, you
have to use __float80 to get IEEE extended.) I determined this by
running the program under GDB, stepi-ing through floatunsdixf(), and
printing the value of ar40 (= ar.fpsr) at each step. What gives? Did
I pick a bad test constant or something?
zw
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=7285
More information about the Gcc-bugs
mailing list