# Tests floating-point instructions
#-----------------------------------------------------------------------
+#define qNaNf 0f:7fc00000
+#define sNaNf 0f:7f800001
+#define qNaN 0d:7ff8000000000000
+#define sNaN 0d:7ff0000000000001
+
#define TEST_FP_OP_S_INTERNAL( testnum, flags, result, val1, val2, val3, code... ) \
test_ ## testnum: \
li TESTNUM, testnum; \
TEST_FP_OP2_D(16, fmax.d, 0, 3.14159265, 3.14159265, 0.00000001 );
TEST_FP_OP2_D(17, fmax.d, 0, -1.0, -1.0, -2.0 );
+ # FMIN(sNaN, x) = canonical NaN
+ TEST_FP_OP2_D(20, fmax.d, 0x10, qNaN, sNaN, 0);
+ # FMIN(qNaN, qNaN) = canonical NaN
+ TEST_FP_OP2_D(21, fmax.d, 0x00, qNaN, NaN, NaN);
+
TEST_PASSFAIL
RVTEST_CODE_END
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 );
+ # 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
RVTEST_CODE_END