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 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
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 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
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 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
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 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.
Suffix for __float128 FP constants
Hello! 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? Uros.
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]