NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-m68k/59616 (m68k softfloat nans and infs have to be preserved when changing sizes)
Attached is a test program for reference:
Best regards,
Nat
#include <stdio.h>
#define VAL (3.9e-10)
#define VAL2 (+1.0/0.0)
#define VAL3 (0.0/0.0)
#define VAL4 (5.2e3)
int
main(void)
{
float f = VAL;
double d = VAL;
long double l = VAL;
printf("MINUS %le: %le %le %le\n", VAL, (double)(l - d),
(double)(l - f), (double)(d - f));
printf("PLUS %le: %le %le %le\n", VAL, (double)(l + d),
(double)(l + f), (double)(d + f));
if (l - d == 0)
printf("OK ");
if (l - f == 0)
printf("OK ");
if (d - f == 0)
printf("OK");
printf("\n");
f = VAL2;
d = VAL2;
l = VAL2;
printf("MINUS %le: %le %le %le\n", VAL2, (double)(l - d),
(double)(l - f), (double)(d - f));
printf("PLUS %le: %le %le %le\n", VAL2, (double)(l + d),
(double)(l + f), (double)(d + f));
if (l - d == 0)
printf("OK ");
if (l - f == 0)
printf("OK ");
if (d - f == 0)
printf("OK");
printf("\n");
f = VAL3;
d = VAL3;
l = VAL3;
printf("MINUS %le: %le %le %le\n", VAL3, (double)(l - d),
(double)(l - f), (double)(d - f));
printf("PLUS %le: %le %le %le\n", VAL3, (double)(l + d),
(double)(l + f), (double)(d + f));
if (l - d == 0)
printf("OK ");
if (l - f == 0)
printf("OK ");
if (d - f == 0)
printf("OK");
printf("\n");
f = VAL4;
d = VAL4;
l = VAL4;
printf("MINUS %le: %le %le %le\n", VAL4, (double)(l - d),
(double)(l - f), (double)(d - f));
printf("PLUS %le: %le %le %le\n", VAL4, (double)(l + d),
(double)(l + f), (double)(d + f));
if (l - d == 0)
printf("OK ");
if (l - f == 0)
printf("OK ");
if (d - f == 0)
printf("OK");
printf("\n");
return 0;
}
Home |
Main Index |
Thread Index |
Old Index