@@ -86,6 +86,24 @@ function test_float_is_nan () -> unit = {
8686 assert (float_is_nan (0xfff0000000000000 ) == false );
8787 assert (float_is_nan (0xffe0000000000000 ) == false );
8888 assert (float_is_nan (0xffc0000000000000 ) == false );
89+
90+ /* Quad floating point */
91+ assert (float_is_nan (0x7fff8000000000000000000000000000 ));
92+ assert (float_is_nan (0x7fff0000000000000000000000000001 ));
93+ assert (float_is_nan (0x7fff8000000000000000000000000100 ));
94+ assert (float_is_nan (0x7fffc000000000001000000000000000 ));
95+
96+ assert (float_is_nan (0xffff8000000000000000000000000000 ));
97+ assert (float_is_nan (0xffff0000000000000000000000000001 ));
98+ assert (float_is_nan (0xffff8000000000000000000000000100 ));
99+ assert (float_is_nan (0xffffc000000000001000000000000000 ));
100+
101+ assert (float_is_nan (0x7fff0000000000000000000000000000 ) == false );
102+ assert (float_is_nan (0x7ffe0000000000000000000000000000 ) == false );
103+ assert (float_is_nan (0x7ffc0000000000000000000000000000 ) == false );
104+ assert (float_is_nan (0xffff0000000000000000000000000000 ) == false );
105+ assert (float_is_nan (0xfffe0000000000000000000000000000 ) == false );
106+ assert (float_is_nan (0xfffc0000000000000000000000000000 ) == false );
89107}
90108
91109function test_float_is_snan () -> unit = {
@@ -121,6 +139,18 @@ function test_float_is_snan () -> unit = {
121139 assert (float_is_snan (0x7ff8000000000000 ) == false );
122140 assert (float_is_snan (0xfff8000000000000 ) == false );
123141 assert (float_is_snan (0xfef8000000000001 ) == false );
142+
143+ /* Quad floating point */
144+ assert (float_is_snan (0x7fff7000000000000000000000000000 ));
145+ assert (float_is_snan (0x7fff7000000000000000000000000001 ));
146+
147+ assert (float_is_snan (0xffff7000000000000000000000000000 ));
148+ assert (float_is_snan (0xffff7000000000000000000000000001 ));
149+
150+ assert (float_is_snan (0x7fff8000000000000000000000000000 ) == false );
151+ assert (float_is_snan (0xffff8000000000000000000000000000 ) == false );
152+ assert (float_is_snan (0xfeff8000000000000000000000000001 ) == false );
153+
124154}
125155
126156function test_float_is_qnan () -> unit = {
@@ -156,6 +186,17 @@ function test_float_is_qnan () -> unit = {
156186 assert (float_is_qnan (0x7ff7000000000000 ) == false );
157187 assert (float_is_qnan (0xfff7000000000000 ) == false );
158188 assert (float_is_qnan (0xfef7000000000001 ) == false );
189+
190+ /* Quad floating point */
191+ assert (float_is_qnan (0x7fff8000000000000000000000000000 ));
192+ assert (float_is_qnan (0x7fff8000000000000000000000000001 ));
193+
194+ assert (float_is_qnan (0xffff8000000000000000000000000000 ));
195+ assert (float_is_qnan (0xffff8000000000000000000000000001 ));
196+
197+ assert (float_is_qnan (0x7fff7000000000000000000000000000 ) == false );
198+ assert (float_is_qnan (0xffff7000000000000000000000000000 ) == false );
199+ assert (float_is_qnan (0xfeff7000000000000000000000000001 ) == false );
159200}
160201
161202function main () -> unit = {
0 commit comments