1 /* Copyright (C) 2002 Free Software Foundation.
2 by Hans-Peter Nilsson <hp@bitrange.com>, derived from mzero2.c
3
4 In the MMIX port, negdf2 was bogusly expanding -x into 0 - x. */
5
6 double nzerod = -0.0;
7 float nzerof = -0.0;
8 double zerod = 0.0;
9 float zerof = 0.0;
10
11 void expectd (double, double);
12 void expectf (float, float);
13 double negd (double);
14 float negf (float);
15
main()16 main ()
17 {
18 expectd (negd (zerod), nzerod);
19 expectf (negf (zerof), nzerof);
20 expectd (negd (nzerod), zerod);
21 expectf (negf (nzerof), zerof);
22 exit (0);
23 }
24
25 void
expectd(double value,double expected)26 expectd (double value, double expected)
27 {
28 if (value != expected
29 || memcmp ((void *)&value, (void *) &expected, sizeof (double)) != 0)
30 abort ();
31 }
32
33 void
expectf(float value,float expected)34 expectf (float value, float expected)
35 {
36 if (value != expected
37 || memcmp ((void *)&value, (void *) &expected, sizeof (float)) != 0)
38 abort ();
39 }
40
41 double
negd(double v)42 negd (double v)
43 {
44 return -v;
45 }
46
47 float
negf(float v)48 negf (float v)
49 {
50 return -v;
51 }
52