fmadd.S revision 12771
112771Sqtt2@cornell.edu# See LICENSE for license details. 212771Sqtt2@cornell.edu 312771Sqtt2@cornell.edu#***************************************************************************** 412771Sqtt2@cornell.edu# fmadd.S 512771Sqtt2@cornell.edu#----------------------------------------------------------------------------- 612771Sqtt2@cornell.edu# 712771Sqtt2@cornell.edu# Test f[n]m{add|sub}.s and f[n]m{add|sub}.d instructions. 812771Sqtt2@cornell.edu# 912771Sqtt2@cornell.edu 1012771Sqtt2@cornell.edu#include "riscv_test.h" 1112771Sqtt2@cornell.edu#include "test_macros.h" 1212771Sqtt2@cornell.edu 1312771Sqtt2@cornell.eduRVTEST_RV64UF 1412771Sqtt2@cornell.eduRVTEST_CODE_BEGIN 1512771Sqtt2@cornell.edu 1612771Sqtt2@cornell.edu#if __riscv_xlen == 32 1712771Sqtt2@cornell.edu # Replace the function with the 32-bit variant defined in test_macros.h 1812771Sqtt2@cornell.edu #undef TEST_FP_OP3_D 1912771Sqtt2@cornell.edu #define TEST_FP_OP3_D TEST_FP_OP3_D32 2012771Sqtt2@cornell.edu#endif 2112771Sqtt2@cornell.edu 2212771Sqtt2@cornell.edu #------------------------------------------------------------- 2312771Sqtt2@cornell.edu # Arithmetic tests 2412771Sqtt2@cornell.edu #------------------------------------------------------------- 2512771Sqtt2@cornell.edu 2612771Sqtt2@cornell.edu TEST_FP_OP3_D( 2, fmadd.d, 0, 3.5, 1.0, 2.5, 1.0 ); 2712771Sqtt2@cornell.edu TEST_FP_OP3_D( 3, fmadd.d, 1, 1236.1999999999999, -1.0, -1235.1, 1.1 ); 2812771Sqtt2@cornell.edu TEST_FP_OP3_D( 4, fmadd.d, 0, -12.0, 2.0, -5.0, -2.0 ); 2912771Sqtt2@cornell.edu 3012771Sqtt2@cornell.edu TEST_FP_OP3_D( 5, fnmadd.d, 0, -3.5, 1.0, 2.5, 1.0 ); 3112771Sqtt2@cornell.edu TEST_FP_OP3_D( 6, fnmadd.d, 1, -1236.1999999999999, -1.0, -1235.1, 1.1 ); 3212771Sqtt2@cornell.edu TEST_FP_OP3_D( 7, fnmadd.d, 0, 12.0, 2.0, -5.0, -2.0 ); 3312771Sqtt2@cornell.edu 3412771Sqtt2@cornell.edu TEST_FP_OP3_D( 8, fmsub.d, 0, 1.5, 1.0, 2.5, 1.0 ); 3512771Sqtt2@cornell.edu TEST_FP_OP3_D( 9, fmsub.d, 1, 1234, -1.0, -1235.1, 1.1 ); 3612771Sqtt2@cornell.edu TEST_FP_OP3_D(10, fmsub.d, 0, -8.0, 2.0, -5.0, -2.0 ); 3712771Sqtt2@cornell.edu 3812771Sqtt2@cornell.edu TEST_FP_OP3_D(11, fnmsub.d, 0, -1.5, 1.0, 2.5, 1.0 ); 3912771Sqtt2@cornell.edu TEST_FP_OP3_D(12, fnmsub.d, 1, -1234, -1.0, -1235.1, 1.1 ); 4012771Sqtt2@cornell.edu TEST_FP_OP3_D(13, fnmsub.d, 0, 8.0, 2.0, -5.0, -2.0 ); 4112771Sqtt2@cornell.edu 4212771Sqtt2@cornell.edu TEST_PASSFAIL 4312771Sqtt2@cornell.edu 4412771Sqtt2@cornell.eduRVTEST_CODE_END 4512771Sqtt2@cornell.edu 4612771Sqtt2@cornell.edu .data 4712771Sqtt2@cornell.eduRVTEST_DATA_BEGIN 4812771Sqtt2@cornell.edu 4912771Sqtt2@cornell.edu TEST_DATA 5012771Sqtt2@cornell.edu 5112771Sqtt2@cornell.eduRVTEST_DATA_END 52