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
6double nzerod = -0.0;
7float nzerof = -0.0;
8double zerod = 0.0;
9float zerof = 0.0;
10
11void expectd (double, double);
12void expectf (float, float);
13double negd (double);
14float negf (float);
15
16main ()
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
25void
26expectd (double value, double expected)
27{
28  if (value != expected
29      || memcmp ((void *)&value, (void *) &expected, sizeof (double)) != 0)
30    abort ();
31}
32
33void
34expectf (float value, float expected)
35{
36  if (value != expected
37      || memcmp ((void *)&value, (void *) &expected, sizeof (float)) != 0)
38    abort ();
39}
40
41double
42negd (double v)
43{
44  return -v;
45}
46
47float
48negf (float v)
49{
50  return -v;
51}
52