@@ -417,13 +417,6 @@ test_ ## testnum: \
417417# Tests floating - point instructions
418418#-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
419419
420- #define qNaNh 0h:7e00
421- #define sNaNh 0h:7c01
422- #define qNaNf 0f:7fc00000
423- #define sNaNf 0f:7f800001
424- #define qNaN 0d:7ff8000000000000
425- #define sNaN 0d:7ff0000000000001
426-
427420#define TEST_FP_OP_H_INTERNAL ( testnum , flags , result , val1 , val2 , val3 , code ... ) \
428421test_ ## testnum : \
429422 li TESTNUM, testnum; \
@@ -574,19 +567,35 @@ test_ ## testnum: \
574567 TEST_FP_OP_S_INTERNAL( testnum, flags, float result, val1, val2, 0.0, \
575568 inst f13, f10, f11; fmv.x.s a0, f13)
576569
570+ #define TEST_FP_OP2_S_CNAN ( testnum , inst , flags , val1 , val2 ) \
571+ TEST_FP_OP_S_INTERNAL( testnum, flags, word 0x7fc00000, val1, val2, 0.0, \
572+ inst f13, f10, f11; fmv.x.s a0, f13)
573+
577574#define TEST_FP_OP2_H ( testnum , inst , flags , result , val1 , val2 ) \
578575 TEST_FP_OP_H_INTERNAL( testnum, flags, float16 result, val1, val2, 0.0, \
579576 inst f13, f10, f11; fmv.x.h a0, f13)
580577
578+ #define TEST_FP_OP2_H_CNAN ( testnum , inst , flags , val1 , val2 ) \
579+ TEST_FP_OP_H_INTERNAL( testnum, flags, half 0x7e00, val1, val2, 0.0, \
580+ inst f13, f10, f11; fmv.x.h a0, f13)
581+
581582#define TEST_FP_OP2_D32 ( testnum , inst , flags , result , val1 , val2 ) \
582583 TEST_FP_OP_D32_INTERNAL( testnum, flags, double result, val1, val2, 0.0, \
583584 inst f13, f10, f11; fsd f13, 0(a0); lw t2, 4(a0); lw a0, 0(a0))
584585// ^: store computation result in address from a0, load high-word into t2
585586
587+ #define TEST_FP_OP2_D32_CNAN ( testnum , inst , flags , val1 , val2 ) \
588+ TEST_FP_OP_D32_INTERNAL( testnum, flags, dword 0x7ff8000000000000, val1, val2, 0.0, \
589+ inst f13, f10, f11; fsd f13, 0(a0); lw t2, 4(a0); lw a0, 0(a0))
590+
586591#define TEST_FP_OP2_D ( testnum , inst , flags , result , val1 , val2 ) \
587592 TEST_FP_OP_D_INTERNAL( testnum, flags, double result, val1, val2, 0.0, \
588593 inst f13, f10, f11; fmv.x.d a0, f13)
589594
595+ #define TEST_FP_OP2_D_CNAN ( testnum , inst , flags , val1 , val2 ) \
596+ TEST_FP_OP_D_INTERNAL( testnum, flags, dword 0x7ff8000000000000, val1, val2, 0.0, \
597+ inst f13, f10, f11; fmv.x.d a0, f13)
598+
590599#define TEST_FP_OP3_S ( testnum , inst , flags , result , val1 , val2 , val3 ) \
591600 TEST_FP_OP_S_INTERNAL( testnum, flags, float result, val1, val2, val3, \
592601 inst f13, f10, f11, f12; fmv.x.s a0, f13)
0 commit comments