Re: Suffix for __float128 FP constants
On Mon, Jun 18, 2007 at 02:08:15PM -0700, H. J. Lu wrote: > On Mon, Jun 18, 2007 at 11:10:43AM -0700, Steve Ellcey wrote: > > > BTW: IA64 has the same issues with two FP types (long double XFmode and > > > "longer double" TFmode). How is this solved for IA64? > > > > > > Uros. > > > > This is different on IA64 HP-UX and IA64 Linux. On HP-UX, 128 bits is > > the standard long double and 80 bits is __float80. We use the 'W' > > suffix for a __float80 constant on HP-UX. HP-UX also uses a lower case > > 'w' in math names for functions (e.g. sqrtw) for __float80 functions. > > > > Since __float128 == long double on HP-UX we can just use 'L' and 'l' for > > those. > > > BTW, icc uses the same suffix for __float128 constant as HP-UX. H.J.
Re: Suffix for __float128 FP constants
On Mon, Jun 18, 2007 at 02:33:07PM -0700, Steve Ellcey wrote: > > We need a standard for __float128. Otherwise, a program using > > __float128 may generate different results with different > > compilers on different platforms. > > > > BTW, I had a __float128 patch for glibc. Because there is no > > __float128 standard, it wasn't accepted. > > > > > > H.J. > > The HP compiler has an option that allows it to accept 'extended' as a > type that is equivalent to __float80 and 'quad' as equivalent to 'long > double' which is __float128 on HP-UX. For the quad type it uses the Q > suffix for quad constants (and a lower case q for quad functions like > sqrtq). I don't think this is a standard, but it is a precedent. I used `q' as suffix for __float128 functions like __isinfq/__isnanq. But I used strtoqd since we have strtold. I like `Q' suffix in __float128 constants. H.J.
Re: Suffix for __float128 FP constants
> We need a standard for __float128. Otherwise, a program using > __float128 may generate different results with different > compilers on different platforms. > > BTW, I had a __float128 patch for glibc. Because there is no > __float128 standard, it wasn't accepted. > > > H.J. The HP compiler has an option that allows it to accept 'extended' as a type that is equivalent to __float80 and 'quad' as equivalent to 'long double' which is __float128 on HP-UX. For the quad type it uses the Q suffix for quad constants (and a lower case q for quad functions like sqrtq). I don't think this is a standard, but it is a precedent. Steve Ellcey [EMAIL PROTECTED]
Re: Suffix for __float128 FP constants
On Mon, Jun 18, 2007 at 11:10:43AM -0700, Steve Ellcey wrote: > > BTW: IA64 has the same issues with two FP types (long double XFmode and > > "longer double" TFmode). How is this solved for IA64? > > > > Uros. > > This is different on IA64 HP-UX and IA64 Linux. On HP-UX, 128 bits is > the standard long double and 80 bits is __float80. We use the 'W' > suffix for a __float80 constant on HP-UX. HP-UX also uses a lower case > 'w' in math names for functions (e.g. sqrtw) for __float80 functions. > > Since __float128 == long double on HP-UX we can just use 'L' and 'l' for > those. > We need a standard for __float128. Otherwise, a program using __float128 may generate different results with different compilers on different platforms. BTW, I had a __float128 patch for glibc. Because there is no __float128 standard, it wasn't accepted. H.J.
Re: Suffix for __float128 FP constants
> BTW: IA64 has the same issues with two FP types (long double XFmode and > "longer double" TFmode). How is this solved for IA64? > > Uros. This is different on IA64 HP-UX and IA64 Linux. On HP-UX, 128 bits is the standard long double and 80 bits is __float80. We use the 'W' suffix for a __float80 constant on HP-UX. HP-UX also uses a lower case 'w' in math names for functions (e.g. sqrtw) for __float80 functions. Since __float128 == long double on HP-UX we can just use 'L' and 'l' for those. None of which helps on Linux. Steve Ellcey [EMAIL PROTECTED]
Re: Suffix for __float128 FP constants
On Mon, Jun 18, 2007 at 07:25:06PM +0200, Uros Bizjak wrote: > H. J. Lu wrote: > > >>>I was trying to load a full 128 bit constant into __float128 variable, > >>>but > >>>with "L" suffix, I was able to load only XFmode constant. Is there a > >>>special > >>>suffix for __float128 available in gcc? > >>> > >>No; since the x86-64 ABI is what defines the __float128 name, you could > >>ask the associated mailing list about a standard suffix to associate with > >>it. > >> > >Lack of standard for __float128 is always a problem. Suffix for > >__float128 constant is one, scanf/printf specifier for __float128 > >is another. We also don't have a name for string to __float128 > >function. > > > > While the __float128 scanf/printf specifier is part of library (and this > way, a custom library can provide these functions), the suffix for > constant should be covered by the compiler. Otherwise there is no > (clear) way to load the 128bit register with a 128bit constant value. > > BTW: IA64 has the same issues with two FP types (long double XFmode and > "longer double" TFmode). How is this solved for IA64? The same as x86-64 :-(. That is there is __float128 in ia64 psABI. But it isn't fully implemented in gcc and glibc. H.J.
Re: Suffix for __float128 FP constants
H. J. Lu wrote: I was trying to load a full 128 bit constant into __float128 variable, but with "L" suffix, I was able to load only XFmode constant. Is there a special suffix for __float128 available in gcc? No; since the x86-64 ABI is what defines the __float128 name, you could ask the associated mailing list about a standard suffix to associate with it. Lack of standard for __float128 is always a problem. Suffix for __float128 constant is one, scanf/printf specifier for __float128 is another. We also don't have a name for string to __float128 function. While the __float128 scanf/printf specifier is part of library (and this way, a custom library can provide these functions), the suffix for constant should be covered by the compiler. Otherwise there is no (clear) way to load the 128bit register with a 128bit constant value. BTW: IA64 has the same issues with two FP types (long double XFmode and "longer double" TFmode). How is this solved for IA64? Uros.
Re: Suffix for __float128 FP constants
On Sun, Jun 17, 2007 at 09:06:36PM +, Joseph S. Myers wrote: > On Sun, 17 Jun 2007, Uros Bizjak wrote: > > > I was trying to load a full 128 bit constant into __float128 variable, but > > with "L" suffix, I was able to load only XFmode constant. Is there a special > > suffix for __float128 available in gcc? > > No; since the x86-64 ABI is what defines the __float128 name, you could > ask the associated mailing list about a standard suffix to associate with > it. > Lack of standard for __float128 is always a problem. Suffix for __float128 constant is one, scanf/printf specifier for __float128 is another. We also don't have a name for string to __float128 function. H.J.
Re: Suffix for __float128 FP constants
On Sun, 17 Jun 2007, Uros Bizjak wrote: > I was trying to load a full 128 bit constant into __float128 variable, but > with "L" suffix, I was able to load only XFmode constant. Is there a special > suffix for __float128 available in gcc? No; since the x86-64 ABI is what defines the __float128 name, you could ask the associated mailing list about a standard suffix to associate with it. -- Joseph S. Myers [EMAIL PROTECTED]