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