
Boris Gubenko wrote:
Johan Rede wrote:
Try both with and without /float=ieee/ieee=denorm, and let me know the results.
/float=ieee is necessary on AlphaVMS because on this platform, the default floating point mode is G_FLOAT: one of so called VAX FP modes.
Interesting! I had no idea the VAX FP modes were still used. It may be overkill to try to handle the VAX FP modes. But maybe I should trigger a compile time assertion if they show up. Is there any way to detect AlphaVMS without /float=ieee at compile time?
With iVMS, we bit the bullet and made IEEE the default, although it also supports VAX FP modes.
Can you get the VAX FP modes on iVMS through compiler flags?
As far as I can see, the only difference between the two platforms is -n.min/2 in fast IEEE mode for float and double:
Alpha ------ float: -n.min/2 00 00 00 00 double: -n.min/2 00 00 00 00 00 00 00 00
= positive zero
IPF --- float: -n.min/2 80 00 00 00 double: -n.min/2 80 00 00 00 00 00 00 00
= negative zero --Johan