11// gcc -Wall -W -lm double-to-float-with-rounding-modes.c -o double-to-float-with-rounding-modes -frounding-math -fsignaling-nans -ffp-contract=off -msse2 -mfpmath=sse
22
33#ifdef __GNUC__
4- #include <assert.h>
5- #include <fenv.h>
6- #include <math.h>
4+ # include <assert.h>
5+ # include <fenv.h>
6+ # include <math.h>
77
88float setRoundingModeAndCast (int mode , double d )
99{
@@ -25,136 +25,136 @@ int main(void)
2525 // 0x1.fffffep+127f is the largest binary32 float so
2626 // these should all be representable as floats...
2727 test (FE_TONEAREST , 0x1.fffffep+127 , 0x1.fffffep+127 );
28- #ifdef FE_UPWARD
28+ # ifdef FE_UPWARD
2929 test (FE_UPWARD , 0x1.fffffep+127 , 0x1.fffffep+127 );
30- #endif
31- #ifdef FE_DOWNWARD
30+ # endif
31+ # ifdef FE_DOWNWARD
3232 test (FE_DOWNWARD , 0x1.fffffep+127 , 0x1.fffffep+127 );
33- #endif
33+ # endif
3434 test (FE_TOWARDZERO , 0x1.fffffep+127 , 0x1.fffffep+127 );
3535
3636 // Likewise, this should be an obvious sanity check
3737 test (FE_TONEAREST , + INFINITY , + INFINITY );
38- #ifdef FE_UPWARD
38+ # ifdef FE_UPWARD
3939 test (FE_UPWARD , + INFINITY , + INFINITY );
40- #endif
41- #ifdef FE_DOWNWARD
40+ # endif
41+ # ifdef FE_DOWNWARD
4242 test (FE_DOWNWARD , + INFINITY , + INFINITY );
43- #endif
43+ # endif
4444 test (FE_TOWARDZERO , + INFINITY , + INFINITY );
4545
4646 // Nearer to 0x1.fffffep+127 than to 0x1.000000p+128
4747 test (FE_TONEAREST , 0x1.fffffe0000001p+127 , 0x1.fffffep+127 );
48- #ifdef FE_UPWARD
48+ # ifdef FE_UPWARD
4949 test (FE_UPWARD , 0x1.fffffe0000001p+127 , + INFINITY );
50- #endif
51- #ifdef FE_DOWNWARD
50+ # endif
51+ # ifdef FE_DOWNWARD
5252 test (FE_DOWNWARD , 0x1.fffffe0000001p+127 , 0x1.fffffep+127 );
53- #endif
53+ # endif
5454 test (FE_TOWARDZERO , 0x1.fffffe0000001p+127 , 0x1.fffffep+127 );
5555
5656 // 0x1.fffffefffffffp+127 is immediately below half way
5757 test (FE_TONEAREST , 0x1.fffffefffffffp+127 , 0x1.fffffep+127 );
58- #ifdef FE_UPWARD
58+ # ifdef FE_UPWARD
5959 test (FE_UPWARD , 0x1.fffffefffffffp+127 , + INFINITY );
60- #endif
61- #ifdef FE_DOWNWARD
60+ # endif
61+ # ifdef FE_DOWNWARD
6262 test (FE_DOWNWARD , 0x1.fffffefffffffp+127 , 0x1.fffffep+127 );
63- #endif
63+ # endif
6464 test (FE_TOWARDZERO , 0x1.fffffefffffffp+127 , 0x1.fffffep+127 );
6565
6666 // Half way
6767 test (FE_TONEAREST , 0x1.ffffffp+127 , + INFINITY );
68- #ifdef FE_UPWARD
68+ # ifdef FE_UPWARD
6969 test (FE_UPWARD , 0x1.ffffffp+127 , + INFINITY );
70- #endif
71- #ifdef FE_DOWNWARD
70+ # endif
71+ # ifdef FE_DOWNWARD
7272 test (FE_DOWNWARD , 0x1.ffffffp+127 , 0x1.fffffep+127 );
73- #endif
73+ # endif
7474 test (FE_TOWARDZERO , 0x1.ffffffp+127 , 0x1.fffffep+127 );
7575
7676 // Larger
7777 test (FE_TONEAREST , 0x1.0p+128 , + INFINITY );
78- #ifdef FE_UPWARD
78+ # ifdef FE_UPWARD
7979 test (FE_UPWARD , 0x1.0p+128 , + INFINITY );
80- #endif
81- #ifdef FE_DOWNWARD
80+ # endif
81+ # ifdef FE_DOWNWARD
8282 test (FE_DOWNWARD , 0x1.0p+128 , 0x1.fffffep+127 );
83- #endif
83+ # endif
8484 test (FE_TOWARDZERO , 0x1.0p+128 , 0x1.fffffep+127 );
8585
8686 // Huge
8787 test (FE_TONEAREST , 0x1.fffffffffffffp+1023 , + INFINITY );
88- #ifdef FE_UPWARD
88+ # ifdef FE_UPWARD
8989 test (FE_UPWARD , 0x1.fffffffffffffp+1023 , + INFINITY );
90- #endif
91- #ifdef FE_DOWNWARD
90+ # endif
91+ # ifdef FE_DOWNWARD
9292 test (FE_DOWNWARD , 0x1.fffffffffffffp+1023 , 0x1.fffffep+127 );
93- #endif
93+ # endif
9494 test (FE_TOWARDZERO , 0x1.fffffffffffffp+1023 , 0x1.fffffep+127 );
9595
9696 // Same again but negative
9797 test (FE_TONEAREST , -0x1.fffffep+127 , -0x1.fffffep+127 );
98- #ifdef FE_UPWARD
98+ # ifdef FE_UPWARD
9999 test (FE_UPWARD , -0x1.fffffep+127 , -0x1.fffffep+127 );
100- #endif
101- #ifdef FE_DOWNWARD
100+ # endif
101+ # ifdef FE_DOWNWARD
102102 test (FE_DOWNWARD , -0x1.fffffep+127 , -0x1.fffffep+127 );
103- #endif
103+ # endif
104104 test (FE_TOWARDZERO , -0x1.fffffep+127 , -0x1.fffffep+127 );
105105
106106 test (FE_TONEAREST , - INFINITY , - INFINITY );
107- #ifdef FE_UPWARD
107+ # ifdef FE_UPWARD
108108 test (FE_UPWARD , - INFINITY , - INFINITY );
109- #endif
110- #ifdef FE_DOWNWARD
109+ # endif
110+ # ifdef FE_DOWNWARD
111111 test (FE_DOWNWARD , - INFINITY , - INFINITY );
112- #endif
112+ # endif
113113 test (FE_TOWARDZERO , - INFINITY , - INFINITY );
114114
115115 test (FE_TONEAREST , -0x1.fffffe0000001p+127 , -0x1.fffffep+127 );
116- #ifdef FE_UPWARD
116+ # ifdef FE_UPWARD
117117 test (FE_UPWARD , -0x1.fffffe0000001p+127 , -0x1.fffffep+127 );
118- #endif
119- #ifdef FE_DOWNWARD
118+ # endif
119+ # ifdef FE_DOWNWARD
120120 test (FE_DOWNWARD , -0x1.fffffe0000001p+127 , - INFINITY );
121- #endif
121+ # endif
122122 test (FE_TOWARDZERO , -0x1.fffffe0000001p+127 , -0x1.fffffep+127 );
123123
124124 test (FE_TONEAREST , -0x1.fffffefffffffp+127 , -0x1.fffffep+127 );
125- #ifdef FE_UPWARD
125+ # ifdef FE_UPWARD
126126 test (FE_UPWARD , -0x1.fffffefffffffp+127 , -0x1.fffffep+127 );
127- #endif
128- #ifdef FE_DOWNWARD
127+ # endif
128+ # ifdef FE_DOWNWARD
129129 test (FE_DOWNWARD , -0x1.fffffefffffffp+127 , - INFINITY );
130- #endif
130+ # endif
131131 test (FE_TOWARDZERO , -0x1.fffffefffffffp+127 , -0x1.fffffep+127 );
132132
133133 test (FE_TONEAREST , -0x1.ffffffp+127 , - INFINITY );
134- #ifdef FE_UPWARD
134+ # ifdef FE_UPWARD
135135 test (FE_UPWARD , -0x1.ffffffp+127 , -0x1.fffffep+127 );
136- #endif
137- #ifdef FE_DOWNWARD
136+ # endif
137+ # ifdef FE_DOWNWARD
138138 test (FE_DOWNWARD , -0x1.ffffffp+127 , - INFINITY );
139- #endif
139+ # endif
140140 test (FE_TOWARDZERO , -0x1.ffffffp+127 , -0x1.fffffep+127 );
141141
142142 test (FE_TONEAREST , -0x1.0p+128 , - INFINITY );
143- #ifdef FE_UPWARD
143+ # ifdef FE_UPWARD
144144 test (FE_UPWARD , -0x1.0p+128 , -0x1.fffffep+127 );
145- #endif
146- #ifdef FE_DOWNWARD
145+ # endif
146+ # ifdef FE_DOWNWARD
147147 test (FE_DOWNWARD , -0x1.0p+128 , - INFINITY );
148- #endif
148+ # endif
149149 test (FE_TOWARDZERO , -0x1.0p+128 , -0x1.fffffep+127 );
150150
151151 test (FE_TONEAREST , -0x1.fffffffffffffp+1023 , - INFINITY );
152- #ifdef FE_UPWARD
152+ # ifdef FE_UPWARD
153153 test (FE_UPWARD , -0x1.fffffffffffffp+1023 , -0x1.fffffep+127 );
154- #endif
155- #ifdef FE_DOWNWARD
154+ # endif
155+ # ifdef FE_DOWNWARD
156156 test (FE_DOWNWARD , -0x1.fffffffffffffp+1023 , - INFINITY );
157- #endif
157+ # endif
158158 test (FE_TOWARDZERO , -0x1.fffffffffffffp+1023 , -0x1.fffffep+127 );
159159#endif
160160
0 commit comments