We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents 355f1fb + f5ffcb6 commit 7b7074aCopy full SHA for 7b7074a
isa/macros/scalar/test_macros.h
@@ -417,6 +417,24 @@ test_ ## testnum: \
417
# Tests floating-point instructions
418
#-----------------------------------------------------------------------
419
420
+# 16-bit half precision (float16)
421
+#define qNaNh 0x7e00
422
+#define sNaNh 0x7c01
423
+#define Infh 0x7c00
424
+#define nInfh 0xfc00
425
+
426
+# 32-bit single precision (float)
427
+#define qNaNf 0x7fc00000
428
+#define sNaNf 0x7f800001
429
+#define Inff 0x7f800000
430
+#define nInff 0xff800000
431
432
+# 64-bit double precision (double)
433
+#define qNaNd 0x7ff8000000000000
434
+#define sNaNd 0x7ff0000000000001
435
+#define Infd 0x7ff0000000000000
436
+#define nInfd 0xfff0000000000000
437
438
#define TEST_FP_OP_H_INTERNAL( testnum, flags, result, val1, val2, val3, code... ) \
439
test_ ## testnum: \
440
li TESTNUM, testnum; \
isa/rv64ud/fadd.S
@@ -38,7 +38,7 @@ RVTEST_CODE_BEGIN
38
TEST_FP_OP2_D(10, fmul.d, 1, 3.14159265e-8, 3.14159265, 0.00000001 );
39
40
# Is the canonical NaN generated for Inf - Inf?
41
- TEST_FP_OP2_D_HEX(11, fsub.d, 0x10, 0x7ff8000000000000, 0x7ff0000000000000, 0x7ff0000000000000);
+ TEST_FP_OP2_D_HEX(11, fsub.d, 0x10, qNaNd, Infd, Infd);
42
43
TEST_PASSFAIL
44
isa/rv64ud/fclass.S
@@ -23,16 +23,16 @@ RVTEST_CODE_BEGIN
23
# Arithmetic tests
24
#-------------------------------------------------------------
25
26
- TEST_FCLASS_D( 2, 1 << 0, 0xfff0000000000000 )
+ TEST_FCLASS_D( 2, 1 << 0, nInfd )
27
TEST_FCLASS_D( 3, 1 << 1, 0xbff0000000000000 )
28
TEST_FCLASS_D( 4, 1 << 2, 0x800fffffffffffff )
29
TEST_FCLASS_D( 5, 1 << 3, 0x8000000000000000 )
30
TEST_FCLASS_D( 6, 1 << 4, 0x0000000000000000 )
31
TEST_FCLASS_D( 7, 1 << 5, 0x000fffffffffffff )
32
TEST_FCLASS_D( 8, 1 << 6, 0x3ff0000000000000 )
33
- TEST_FCLASS_D( 9, 1 << 7, 0x7ff0000000000000 )
34
- TEST_FCLASS_D(10, 1 << 8, 0x7ff0000000000001 )
35
- TEST_FCLASS_D(11, 1 << 9, 0x7ff8000000000000 )
+ TEST_FCLASS_D( 9, 1 << 7, Infd )
+ TEST_FCLASS_D(10, 1 << 8, sNaNd )
+ TEST_FCLASS_D(11, 1 << 9, qNaNd )
36
37
isa/rv64ud/fcmp.S
@@ -36,15 +36,15 @@ RVTEST_CODE_BEGIN
# Only sNaN should signal invalid for feq.
TEST_FP_CMP_OP_D( 8, feq.d, 0x00, 0, NaN, 0)
TEST_FP_CMP_OP_D( 9, feq.d, 0x00, 0, NaN, NaN)
- TEST_FP_CMP_OP_D_HEX(10, feq.d, 0x10, 0, 0x7ff0000000000001, 0)
+ TEST_FP_CMP_OP_D_HEX(10, feq.d, 0x10, 0, sNaNd, 0)
# qNaN should signal invalid for fle/flt.
TEST_FP_CMP_OP_D(11, flt.d, 0x10, 0, NaN, 0)
TEST_FP_CMP_OP_D(12, flt.d, 0x10, 0, NaN, NaN)
- TEST_FP_CMP_OP_D_HEX(13, flt.d, 0x10, 0, 0x7ff0000000000001, 0)
+ TEST_FP_CMP_OP_D_HEX(13, flt.d, 0x10, 0, sNaNd, 0)
45
TEST_FP_CMP_OP_D(14, fle.d, 0x10, 0, NaN, 0)
46
TEST_FP_CMP_OP_D(15, fle.d, 0x10, 0, NaN, NaN)
47
- TEST_FP_CMP_OP_D_HEX(16, fle.d, 0x10, 0, 0x7ff0000000000001, 0)
+ TEST_FP_CMP_OP_D_HEX(16, fle.d, 0x10, 0, sNaNd, 0)
48
49
50
isa/rv64ud/fcvt.S
@@ -44,7 +44,7 @@ RVTEST_CODE_BEGIN
TEST_FCVT_D_S(11, -1.5, -1.5)
#if __riscv_xlen >= 64
- TEST_CASE(12, a0, 0x7ff8000000000000,
+ TEST_CASE(12, a0, qNaNd,
la a1, test_data_22;
ld a2, 0(a1);
fmv.d.x f2, a2;
@@ -53,7 +53,7 @@ RVTEST_CODE_BEGIN
53
fmv.x.d a0, f2;
54
)
55
#else
56
- TEST_CASE_D32(12, a0, a1, 0x7ff8000000000000,
+ TEST_CASE_D32(12, a0, a1, qNaNd,
57
58
fld f2, 0(a1);
59
fcvt.s.d f2, f2;
isa/rv64ud/fcvt_w.S
@@ -102,13 +102,13 @@ RVTEST_DATA_BEGIN
102
tdat:
103
.word 0xffffffff
104
.word 0x7fffffff
105
-.word 0xff800000
106
-.word 0x7f800000
+.word nInff
+.word Inff
107
108
tdat_d:
109
.dword 0xffffffffffffffff
110
.dword 0x7fffffffffffffff
111
-.dword 0xfff0000000000000
112
-.dword 0x7ff0000000000000
+.dword nInfd
+.dword Infd
113
114
RVTEST_DATA_END
isa/rv64ud/fmin.S
@@ -40,9 +40,9 @@ RVTEST_CODE_BEGIN
TEST_FP_OP2_D(17, fmax.d, 0, -1.0, -1.0, -2.0 );
# FMAX(sNaN, x) = x
- TEST_FP_OP2_D_HEX(20, fmax.d, 0x10, 0x3ff0000000000000, 0x7ff0000000000001, 0x3ff0000000000000);
+ TEST_FP_OP2_D_HEX(20, fmax.d, 0x10, 0x3ff0000000000000, sNaNd, 0x3ff0000000000000);
# FMAX(qNaN, qNaN) = canonical NaN
- TEST_FP_OP2_D_HEX(21, fmax.d, 0x00, 0x7ff8000000000000, 0x7fffffffffffffff, 0x7fffffffffffffff);
+ TEST_FP_OP2_D_HEX(21, fmax.d, 0x00, qNaNd, 0x7fffffffffffffff, 0x7fffffffffffffff);
# -0.0 < +0.0
TEST_FP_OP2_D(30, fmin.d, 0, -0.0, -0.0, 0.0 );
isa/rv64ud/move.S
@@ -55,14 +55,14 @@ RVTEST_CODE_BEGIN
fsgnj.s f0, f1, f2; \
fmv.x.d a0, f0)
- TEST_FSGNJS(40, 0x7fc00000, 0x7ffffffe12345678, 0)
- TEST_FSGNJS(41, 0x7fc00000, 0xfffffffe12345678, 0)
60
- TEST_FSGNJS(42, 0x7fc00000, 0x7fffffff12345678, 0)
+ TEST_FSGNJS(40, qNaNf, 0x7ffffffe12345678, 0)
+ TEST_FSGNJS(41, qNaNf, 0xfffffffe12345678, 0)
+ TEST_FSGNJS(42, qNaNf, 0x7fffffff12345678, 0)
61
TEST_FSGNJS(43, 0x12345678, 0xffffffff12345678, 0)
62
63
- TEST_FSGNJS(50, 0x7fc00000, 0x7ffffffe12345678, 0x80000000)
64
- TEST_FSGNJS(51, 0x7fc00000, 0xfffffffe12345678, 0x80000000)
65
- TEST_FSGNJS(52, 0x7fc00000, 0x7fffffff12345678, 0x80000000)
+ TEST_FSGNJS(50, qNaNf, 0x7ffffffe12345678, 0x80000000)
+ TEST_FSGNJS(51, qNaNf, 0xfffffffe12345678, 0x80000000)
+ TEST_FSGNJS(52, qNaNf, 0x7fffffff12345678, 0x80000000)
66
TEST_FSGNJS(53, 0x12345678, 0xffffffff12345678, 0x80000000)
67
68
TEST_FSGNJS(60, 0xffc00000, 0x7ffffffe12345678, 0xffffffff80000000)
isa/rv64uf/fadd.S
@@ -30,7 +30,7 @@ RVTEST_CODE_BEGIN
TEST_FP_OP2_S(10, fmul.s, 1, 3.14159265e-8, 3.14159265, 0.00000001 );
- TEST_FP_OP2_S_HEX(11, fsub.s, 0x10, 0x7fc00000, 0x7f800000, 0x7f800000);
+ TEST_FP_OP2_S_HEX(11, fsub.s, 0x10, qNaNf, Inff, Inff);
isa/rv64uf/fclass.S
@@ -17,16 +17,16 @@ RVTEST_CODE_BEGIN
17
18
19
20
- TEST_FCLASS_S( 2, 1 << 0, 0xff800000 )
+ TEST_FCLASS_S( 2, 1 << 0, nInff )
21
TEST_FCLASS_S( 3, 1 << 1, 0xbf800000 )
22
TEST_FCLASS_S( 4, 1 << 2, 0x807fffff )
TEST_FCLASS_S( 5, 1 << 3, 0x80000000 )
TEST_FCLASS_S( 6, 1 << 4, 0x00000000 )
TEST_FCLASS_S( 7, 1 << 5, 0x007fffff )
TEST_FCLASS_S( 8, 1 << 6, 0x3f800000 )
- TEST_FCLASS_S( 9, 1 << 7, 0x7f800000 )
- TEST_FCLASS_S(10, 1 << 8, 0x7f800001 )
- TEST_FCLASS_S(11, 1 << 9, 0x7fc00000 )
+ TEST_FCLASS_S( 9, 1 << 7, Inff )
+ TEST_FCLASS_S(10, 1 << 8, sNaNf )
+ TEST_FCLASS_S(11, 1 << 9, qNaNf )
0 commit comments