NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-sparc64/47834: 128 bit softfloat scalbnl broken

>Number:         47834
>Category:       port-sparc64
>Synopsis:       128 bit softfloat scalbnl broken
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-sparc64-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat May 18 13:45:00 +0000 2013
>Originator:     Martin Husemann
>Release:        NetBSD 6.99.19
The NetBSD Foundation, Inc.
System: NetBSD 6.99.19 NetBSD 6.99.19 (MODULAR) #92: Wed 
May 15 20:37:29 CEST 2013
Architecture: sparc64
Machine: sparc64

Running the below test program (natively compiled on sparc64) reports
different, but all wrong numeric results depending on the optimization
level used.

With -O0 it says:
        0 (should be: 1.00085)

Letting the compiler pre-compute it with -O2 it says:
        2.0017 (should be: 1.00085)

Natively compile this program (with -lm) on sparc64:

#include <math.h>
#include <stdio.h>

int main(int argc, char **argv)
        long double val = 1.00085;
        long double res = scalbnl(val, 1);

        printf("%Lg (should be: %Lg)\n", res, val);

        return 0;


Home | Main Index | Thread Index | Old Index