496
|
1 // $HeadURL$
|
|
2 // $Date$
|
|
3 // $Author$
|
|
4
|
|
5 module dstress.run.ieee_754_zerosdq_02;
|
|
6
|
|
7 // Check whether IEEE 754 signed zero is correctly supported.
|
|
8
|
|
9 union S{
|
|
10 double f;
|
|
11 uint[2] i;
|
|
12 }
|
|
13
|
|
14 int main(){
|
|
15 S s;
|
|
16 s.f=1.0;
|
|
17 int top = (s.i[0]==0) ? 1 : 0;
|
|
18
|
|
19
|
|
20 s.f = 0.0;
|
|
21 assert(s.i[top]==0x00000000);
|
|
22
|
|
23 s.f = -0.0;
|
|
24 assert(s.i[top]==0x80000000);
|
|
25
|
|
26 s.f = 0.0 - 0.0;
|
|
27 assert(s.i[top]==0x00000000);
|
|
28
|
|
29 s.f = (-0.0) - 0.0;
|
|
30 assert(s.i[top]==0x80000000);
|
|
31
|
|
32 s.f = 0.0;
|
|
33 s.f *= 1.0;
|
|
34 assert(s.i[top]==0x00000000);
|
|
35
|
|
36 s.f = 0.0;
|
|
37 s.f *= -1.0;
|
|
38 assert(s.i[top]==0x80000000);
|
|
39
|
|
40 return 0;
|
|
41 }
|