Test FMIN/FMAX NaN behavior
[riscv-tests.git] / isa / rv64uf / fmin.S
index 80eecf67df4ea219769da8ba0f77e03901e14326..5bbbf3f37ffb655f20da7a76387845b7c68ebb4b 100644 (file)
@@ -1,8 +1,10 @@
+# See LICENSE for license details.
+
 #*****************************************************************************
 # fmin.S
 #-----------------------------------------------------------------------------
 #
-# Test f{min|max}.{s|d} instructinos.
+# Test f{min|max}.s instructinos.
 #
 
 #include "riscv_test.h"
@@ -29,19 +31,10 @@ RVTEST_CODE_BEGIN
   TEST_FP_OP2_S(16,  fmax.s, 0, 3.14159265, 3.14159265, 0.00000001 );
   TEST_FP_OP2_S(17,  fmax.s, 0,       -1.0,       -1.0,       -2.0 );
 
-  TEST_FP_OP2_D(22,  fmin.d, 0,        1.0,        2.5,        1.0 );
-  TEST_FP_OP2_D(23,  fmin.d, 0,    -1235.1,    -1235.1,        1.1 );
-  TEST_FP_OP2_D(24,  fmin.d, 0,    -1235.1,        1.1,    -1235.1 );
-  TEST_FP_OP2_D(25,  fmin.d, 0,    -1235.1,        NaN,    -1235.1 );
-  TEST_FP_OP2_D(26,  fmin.d, 0, 0.00000001, 3.14159265, 0.00000001 );
-  TEST_FP_OP2_D(27,  fmin.d, 0,       -2.0,       -1.0,       -2.0 );
-
-  TEST_FP_OP2_D(32,  fmax.d, 0,        2.5,        2.5,        1.0 );
-  TEST_FP_OP2_D(33,  fmax.d, 0,        1.1,    -1235.1,        1.1 );
-  TEST_FP_OP2_D(34,  fmax.d, 0,        1.1,        1.1,    -1235.1 );
-  TEST_FP_OP2_D(35,  fmax.d, 0,    -1235.1,        NaN,    -1235.1 );
-  TEST_FP_OP2_D(36,  fmax.d, 0, 3.14159265, 3.14159265, 0.00000001 );
-  TEST_FP_OP2_D(37,  fmax.d, 0,       -1.0,       -1.0,       -2.0 );
+  # FMIN(sNaN, x) = canonical NaN
+  TEST_FP_OP2_S(20,  fmax.s, 0x10, qNaNf, sNaNf, 0);
+  # FMIN(qNaN, qNaN) = canonical NaN
+  TEST_FP_OP2_S(21,  fmax.s, 0x00, qNaNf, NaN, NaN);
 
   TEST_PASSFAIL