rv32g-core

Pipelined, synthesizable, and fabricable RISC-V core in SystemVerilog+Yosys+OpenROAD
Log | Files | Refs | LICENSE

fmin.S (1908B)


      1 # See LICENSE for license details.
      2 
      3 #*****************************************************************************
      4 # fmin.S
      5 #-----------------------------------------------------------------------------
      6 #
      7 # Test f{min|max}.s instructinos.
      8 #
      9 
     10 #include "riscv_test.h"
     11 #include "test_macros.h"
     12 
     13 RVTEST_RV64UF
     14 RVTEST_CODE_BEGIN
     15 
     16   #-------------------------------------------------------------
     17   # Arithmetic tests
     18   #-------------------------------------------------------------
     19 
     20   TEST_FP_OP2_S( 2,  fmin.s, 0,        1.0,        2.5,        1.0 );
     21   TEST_FP_OP2_S( 3,  fmin.s, 0,    -1235.1,    -1235.1,        1.1 );
     22   TEST_FP_OP2_S( 4,  fmin.s, 0,    -1235.1,        1.1,    -1235.1 );
     23   TEST_FP_OP2_S( 5,  fmin.s, 0,    -1235.1,        NaN,    -1235.1 );
     24   TEST_FP_OP2_S( 6,  fmin.s, 0, 0.00000001, 3.14159265, 0.00000001 );
     25   TEST_FP_OP2_S( 7,  fmin.s, 0,       -2.0,       -1.0,       -2.0 );
     26 
     27   TEST_FP_OP2_S(12,  fmax.s, 0,        2.5,        2.5,        1.0 );
     28   TEST_FP_OP2_S(13,  fmax.s, 0,        1.1,    -1235.1,        1.1 );
     29   TEST_FP_OP2_S(14,  fmax.s, 0,        1.1,        1.1,    -1235.1 );
     30   TEST_FP_OP2_S(15,  fmax.s, 0,    -1235.1,        NaN,    -1235.1 );
     31   TEST_FP_OP2_S(16,  fmax.s, 0, 3.14159265, 3.14159265, 0.00000001 );
     32   TEST_FP_OP2_S(17,  fmax.s, 0,       -1.0,       -1.0,       -2.0 );
     33 
     34   # FMAX(sNaN, x) = x
     35   TEST_FP_OP2_S_HEX(20,  fmax.s, 0x10, 0x3f800000, sNaNf, 0x3f800000);
     36   # FMAX(qNaN, qNaN) = canonical NaN
     37   TEST_FP_OP2_S_HEX(21,  fmax.s, 0x00, qNaNf, 0x7fffffff, 0x7fffffff);
     38 
     39   # -0.0 < +0.0
     40   TEST_FP_OP2_S(30,  fmin.s, 0,       -0.0,       -0.0,        0.0 );
     41   TEST_FP_OP2_S(31,  fmin.s, 0,       -0.0,        0.0,       -0.0 );
     42   TEST_FP_OP2_S(32,  fmax.s, 0,        0.0,       -0.0,        0.0 );
     43   TEST_FP_OP2_S(33,  fmax.s, 0,        0.0,        0.0,       -0.0 );
     44 
     45   TEST_PASSFAIL
     46 
     47 RVTEST_CODE_END
     48 
     49   .data
     50 RVTEST_DATA_BEGIN
     51 
     52   TEST_DATA
     53 
     54 RVTEST_DATA_END