X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=isa%2Frv64ud%2Ffmin.S;h=10ff8e6a3abab4c82bd8dde0eb0c773cab4112bf;hb=49f478416cec9f73801fdc5dedf9955494be8c66;hp=82641bce91e2aa1b5fcc219294189fe3196fb3cf;hpb=b6b5e81217c1f2a70ecb6883b1756859cd7bb999;p=riscv-tests.git diff --git a/isa/rv64ud/fmin.S b/isa/rv64ud/fmin.S index 82641bc..10ff8e6 100644 --- a/isa/rv64ud/fmin.S +++ b/isa/rv64ud/fmin.S @@ -13,6 +13,12 @@ RVTEST_RV64UF RVTEST_CODE_BEGIN +#if __riscv_xlen == 32 + # Replace the function with the 32-bit variant defined in test_macros.h + #undef TEST_FP_OP2_D + #define TEST_FP_OP2_D TEST_FP_OP2_D32 +#endif + #------------------------------------------------------------- # Arithmetic tests #------------------------------------------------------------- @@ -31,6 +37,17 @@ RVTEST_CODE_BEGIN 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) = x + TEST_FP_OP2_D(20, fmax.d, 0x10, 1.0, sNaN, 1.0); + # FMIN(qNaN, qNaN) = canonical NaN + TEST_FP_OP2_D(21, fmax.d, 0x00, qNaN, NaN, NaN); + + # -0.0 < +0.0 + TEST_FP_OP2_D(30, fmin.d, 0, -0.0, -0.0, 0.0 ); + TEST_FP_OP2_D(31, fmin.d, 0, -0.0, 0.0, -0.0 ); + TEST_FP_OP2_D(32, fmax.d, 0, 0.0, -0.0, 0.0 ); + TEST_FP_OP2_D(33, fmax.d, 0, 0.0, 0.0, -0.0 ); + TEST_PASSFAIL RVTEST_CODE_END