Skip to content

Commit 8d1e1ca

Browse files
authored
Remove use of qNaN/sNaN in a different way to fix LLVM build (#613)
* Fix qNaN replacement in a more scalable way * Fix sNaN replacement in same manner as qNaN
1 parent 40f07e2 commit 8d1e1ca

File tree

9 files changed

+87
-69
lines changed

9 files changed

+87
-69
lines changed

isa/macros/scalar/test_macros.h

Lines changed: 65 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -433,9 +433,9 @@ test_ ## testnum: \
433433
.pushsection .data; \
434434
.align 1; \
435435
test_ ## testnum ## _data: \
436-
.float16 val1; \
437-
.float16 val2; \
438-
.float16 val3; \
436+
.val1; \
437+
.val2; \
438+
.val3; \
439439
.result; \
440440
.popsection
441441

@@ -455,9 +455,9 @@ test_ ## testnum: \
455455
.pushsection .data; \
456456
.align 2; \
457457
test_ ## testnum ## _data: \
458-
.float val1; \
459-
.float val2; \
460-
.float val3; \
458+
.val1; \
459+
.val2; \
460+
.val3; \
461461
.result; \
462462
.popsection
463463

@@ -477,9 +477,9 @@ test_ ## testnum: \
477477
.pushsection .data; \
478478
.align 3; \
479479
test_ ## testnum ## _data: \
480-
.double val1; \
481-
.double val2; \
482-
.double val3; \
480+
.val1; \
481+
.val2; \
482+
.val3; \
483483
.result; \
484484
.popsection
485485

@@ -502,147 +502,163 @@ test_ ## testnum: \
502502
.pushsection .data; \
503503
.align 3; \
504504
test_ ## testnum ## _data: \
505-
.double val1; \
506-
.double val2; \
507-
.double val3; \
505+
.val1; \
506+
.val2; \
507+
.val3; \
508508
.result; \
509509
.popsection
510510

511511
#define TEST_FCVT_S_D32( testnum, result, val1 ) \
512-
TEST_FP_OP_D32_INTERNAL( testnum, 0, double result, val1, 0.0, 0.0, \
512+
TEST_FP_OP_D32_INTERNAL( testnum, 0, double result, double val1, double 0, double 0, \
513513
fcvt.s.d f13, f10; fcvt.d.s f13, f13; fsd f13, 0(a0); lw t2, 4(a0); lw a0, 0(a0))
514514

515515
#define TEST_FCVT_S_D( testnum, result, val1 ) \
516-
TEST_FP_OP_D_INTERNAL( testnum, 0, double result, val1, 0.0, 0.0, \
516+
TEST_FP_OP_D_INTERNAL( testnum, 0, double result, double val1, double 0, double 0, \
517517
fcvt.s.d f13, f10; fcvt.d.s f13, f13; fmv.x.d a0, f13)
518518

519519
#define TEST_FCVT_D_S( testnum, result, val1 ) \
520-
TEST_FP_OP_S_INTERNAL( testnum, 0, float result, val1, 0.0, 0.0, \
520+
TEST_FP_OP_S_INTERNAL( testnum, 0, float result, float val1, float 0, float 0, \
521521
fcvt.d.s f13, f10; fcvt.s.d f13, f13; fmv.x.s a0, f13)
522522

523523
#define TEST_FCVT_H_S( testnum, result, val1 ) \
524-
TEST_FP_OP_H_INTERNAL( testnum, 0, float16 result, val1, 0.0, 0.0, \
524+
TEST_FP_OP_H_INTERNAL( testnum, 0, float16 result, float16 val1, float16 0, float16 0, \
525525
fcvt.s.h f13, f10; fcvt.h.s f13, f13; fmv.x.h a0, f13)
526526

527527
#define TEST_FCVT_H_D( testnum, result, val1 ) \
528-
TEST_FP_OP_H_INTERNAL( testnum, 0, float16 result, val1, 0.0, 0.0, \
528+
TEST_FP_OP_H_INTERNAL( testnum, 0, float16 result, float16 val1, float16 0, float16 0, \
529529
fcvt.d.h f13, f10; fcvt.h.d f13, f13; fmv.x.h a0, f13)
530530

531531

532532
#define TEST_FP_OP1_H( testnum, inst, flags, result, val1 ) \
533-
TEST_FP_OP_H_INTERNAL( testnum, flags, float16 result, val1, 0.0, 0.0, \
533+
TEST_FP_OP_H_INTERNAL( testnum, flags, float16 result, float16 val1, float16 0, float16 0, \
534534
inst f13, f10; fmv.x.h a0, f13;)
535535

536536
#define TEST_FP_OP1_S( testnum, inst, flags, result, val1 ) \
537-
TEST_FP_OP_S_INTERNAL( testnum, flags, float result, val1, 0.0, 0.0, \
537+
TEST_FP_OP_S_INTERNAL( testnum, flags, float result, float val1, float 0, float 0, \
538538
inst f13, f10; fmv.x.s a0, f13)
539539

540540
#define TEST_FP_OP1_D32( testnum, inst, flags, result, val1 ) \
541-
TEST_FP_OP_D32_INTERNAL( testnum, flags, double result, val1, 0.0, 0.0, \
541+
TEST_FP_OP_D32_INTERNAL( testnum, flags, double result, double val1, double 0, double 0, \
542542
inst f13, f10; fsd f13, 0(a0); lw t2, 4(a0); lw a0, 0(a0))
543543
// ^: store computation result in address from a0, load high-word into t2
544544

545545
#define TEST_FP_OP1_D( testnum, inst, flags, result, val1 ) \
546-
TEST_FP_OP_D_INTERNAL( testnum, flags, double result, val1, 0.0, 0.0, \
546+
TEST_FP_OP_D_INTERNAL( testnum, flags, double result, double val1, double 0, double 0, \
547547
inst f13, f10; fmv.x.d a0, f13)
548548

549549
#define TEST_FP_OP1_S_DWORD_RESULT( testnum, inst, flags, result, val1 ) \
550-
TEST_FP_OP_S_INTERNAL( testnum, flags, dword result, val1, 0.0, 0.0, \
550+
TEST_FP_OP_S_INTERNAL( testnum, flags, dword result, float val1, float 0, float 0, \
551551
inst f13, f10; fmv.x.s a0, f13)
552552

553553
#define TEST_FP_OP1_H_DWORD_RESULT( testnum, inst, flags, result, val1 ) \
554-
TEST_FP_OP_H_INTERNAL( testnum, flags, word result, val1, 0.0, 0.0, \
554+
TEST_FP_OP_H_INTERNAL( testnum, flags, word result, float16 val1, float16 0, float16 0, \
555555
inst f13, f10; fmv.x.h a0, f13)
556556

557557
#define TEST_FP_OP1_D32_DWORD_RESULT( testnum, inst, flags, result, val1 ) \
558-
TEST_FP_OP_D32_INTERNAL( testnum, flags, dword result, val1, 0.0, 0.0, \
558+
TEST_FP_OP_D32_INTERNAL( testnum, flags, dword result, double val1, double 0, double 0, \
559559
inst f13, f10; fsd f13, 0(a0); lw t2, 4(a0); lw a0, 0(a0))
560560
// ^: store computation result in address from a0, load high-word into t2
561561

562562
#define TEST_FP_OP1_D_DWORD_RESULT( testnum, inst, flags, result, val1 ) \
563-
TEST_FP_OP_D_INTERNAL( testnum, flags, dword result, val1, 0.0, 0.0, \
563+
TEST_FP_OP_D_INTERNAL( testnum, flags, dword result, double val1, double 0, double 0, \
564564
inst f13, f10; fmv.x.d a0, f13)
565565

566566
#define TEST_FP_OP2_S( testnum, inst, flags, result, val1, val2 ) \
567-
TEST_FP_OP_S_INTERNAL( testnum, flags, float result, val1, val2, 0.0, \
567+
TEST_FP_OP_S_INTERNAL( testnum, flags, float result, float val1, float val2, float 0, \
568568
inst f13, f10, f11; fmv.x.s a0, f13)
569569

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, \
570+
#define TEST_FP_OP2_S_HEX( testnum, inst, flags, result, val1, val2 ) \
571+
TEST_FP_OP_S_INTERNAL( testnum, flags, word result, word val1, word val2, float 0, \
572572
inst f13, f10, f11; fmv.x.s a0, f13)
573573

574574
#define TEST_FP_OP2_H( testnum, inst, flags, result, val1, val2 ) \
575-
TEST_FP_OP_H_INTERNAL( testnum, flags, float16 result, val1, val2, 0.0, \
575+
TEST_FP_OP_H_INTERNAL( testnum, flags, float16 result, float16 val1, float16 val2, float16 0, \
576576
inst f13, f10, f11; fmv.x.h a0, f13)
577577

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, \
578+
#define TEST_FP_OP2_H_HEX( testnum, inst, flags, result, val1, val2 ) \
579+
TEST_FP_OP_H_INTERNAL( testnum, flags, half result, half val1, half val2, float16 0, \
580580
inst f13, f10, f11; fmv.x.h a0, f13)
581581

582582
#define TEST_FP_OP2_D32( testnum, inst, flags, result, val1, val2 ) \
583-
TEST_FP_OP_D32_INTERNAL( testnum, flags, double result, val1, val2, 0.0, \
583+
TEST_FP_OP_D32_INTERNAL( testnum, flags, double result, double val1, double val2, double 0, \
584584
inst f13, f10, f11; fsd f13, 0(a0); lw t2, 4(a0); lw a0, 0(a0))
585585
// ^: store computation result in address from a0, load high-word into t2
586586

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, \
587+
#define TEST_FP_OP2_D32_HEX( testnum, inst, flags, result, val1, val2 ) \
588+
TEST_FP_OP_D32_INTERNAL( testnum, flags, dword result, dword val1, dword val2, double 0, \
589589
inst f13, f10, f11; fsd f13, 0(a0); lw t2, 4(a0); lw a0, 0(a0))
590590

591591
#define TEST_FP_OP2_D( testnum, inst, flags, result, val1, val2 ) \
592-
TEST_FP_OP_D_INTERNAL( testnum, flags, double result, val1, val2, 0.0, \
592+
TEST_FP_OP_D_INTERNAL( testnum, flags, double result, double val1, double val2, double 0, \
593593
inst f13, f10, f11; fmv.x.d a0, f13)
594594

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, \
595+
#define TEST_FP_OP2_D_HEX( testnum, inst, flags, result, val1, val2 ) \
596+
TEST_FP_OP_D_INTERNAL( testnum, flags, dword result, dword val1, dword val2, double 0, \
597597
inst f13, f10, f11; fmv.x.d a0, f13)
598598

599599
#define TEST_FP_OP3_S( testnum, inst, flags, result, val1, val2, val3 ) \
600-
TEST_FP_OP_S_INTERNAL( testnum, flags, float result, val1, val2, val3, \
600+
TEST_FP_OP_S_INTERNAL( testnum, flags, float result, float val1, float val2, float val3, \
601601
inst f13, f10, f11, f12; fmv.x.s a0, f13)
602602

603603
#define TEST_FP_OP3_H( testnum, inst, flags, result, val1, val2, val3 ) \
604-
TEST_FP_OP_H_INTERNAL( testnum, flags, float16 result, val1, val2, val3, \
604+
TEST_FP_OP_H_INTERNAL( testnum, flags, float16 result, float16 val1, float16 val2, float16 val3, \
605605
inst f13, f10, f11, f12; fmv.x.h a0, f13)
606606

607607
#define TEST_FP_OP3_D32( testnum, inst, flags, result, val1, val2, val3 ) \
608-
TEST_FP_OP_D32_INTERNAL( testnum, flags, double result, val1, val2, val3, \
608+
TEST_FP_OP_D32_INTERNAL( testnum, flags, double result, double val1, double val2, double val3, \
609609
inst f13, f10, f11, f12; fsd f13, 0(a0); lw t2, 4(a0); lw a0, 0(a0))
610610
// ^: store computation result in address from a0, load high-word into t2
611611

612612
#define TEST_FP_OP3_D( testnum, inst, flags, result, val1, val2, val3 ) \
613-
TEST_FP_OP_D_INTERNAL( testnum, flags, double result, val1, val2, val3, \
613+
TEST_FP_OP_D_INTERNAL( testnum, flags, double result, double val1, double val2, double val3, \
614614
inst f13, f10, f11, f12; fmv.x.d a0, f13)
615615

616616
#define TEST_FP_INT_OP_S( testnum, inst, flags, result, val1, rm ) \
617-
TEST_FP_OP_S_INTERNAL( testnum, flags, word result, val1, 0.0, 0.0, \
617+
TEST_FP_OP_S_INTERNAL( testnum, flags, word result, float val1, float 0, float 0, \
618618
inst a0, f10, rm)
619619

620620
#define TEST_FP_INT_OP_H( testnum, inst, flags, result, val1, rm ) \
621-
TEST_FP_OP_H_INTERNAL( testnum, flags, word result, val1, 0.0, 0.0, \
621+
TEST_FP_OP_H_INTERNAL( testnum, flags, word result, float16 val1, float16 0, float16 0, \
622622
inst a0, f10, rm)
623623

624624
#define TEST_FP_INT_OP_D32( testnum, inst, flags, result, val1, rm ) \
625-
TEST_FP_OP_D32_INTERNAL( testnum, flags, dword result, val1, 0.0, 0.0, \
625+
TEST_FP_OP_D32_INTERNAL( testnum, flags, dword result, double val1, double 0, double 0, \
626626
inst a0, f10, f11; li t2, 0)
627627

628628
#define TEST_FP_INT_OP_D( testnum, inst, flags, result, val1, rm ) \
629-
TEST_FP_OP_D_INTERNAL( testnum, flags, dword result, val1, 0.0, 0.0, \
629+
TEST_FP_OP_D_INTERNAL( testnum, flags, dword result, double val1, double 0, double 0, \
630630
inst a0, f10, rm)
631631

632632
#define TEST_FP_CMP_OP_S( testnum, inst, flags, result, val1, val2 ) \
633-
TEST_FP_OP_S_INTERNAL( testnum, flags, word result, val1, val2, 0.0, \
633+
TEST_FP_OP_S_INTERNAL( testnum, flags, word result, float val1, float val2, float 0, \
634+
inst a0, f10, f11)
635+
636+
#define TEST_FP_CMP_OP_S_HEX( testnum, inst, flags, result, val1, val2 ) \
637+
TEST_FP_OP_S_INTERNAL( testnum, flags, word result, word val1, word val2, float 0, \
634638
inst a0, f10, f11)
635639

636640
#define TEST_FP_CMP_OP_H( testnum, inst, flags, result, val1, val2 ) \
637-
TEST_FP_OP_H_INTERNAL( testnum, flags, hword result, val1, val2, 0.0, \
641+
TEST_FP_OP_H_INTERNAL( testnum, flags, hword result, float16 val1, float16 val2, float16 0, \
642+
inst a0, f10, f11)
643+
644+
#define TEST_FP_CMP_OP_H_HEX( testnum, inst, flags, result, val1, val2 ) \
645+
TEST_FP_OP_H_INTERNAL( testnum, flags, hword result, half val1, half val2, float16 0, \
638646
inst a0, f10, f11)
639647

640648
#define TEST_FP_CMP_OP_D32( testnum, inst, flags, result, val1, val2 ) \
641-
TEST_FP_OP_D32_INTERNAL( testnum, flags, dword result, val1, val2, 0.0, \
649+
TEST_FP_OP_D32_INTERNAL( testnum, flags, dword result, double val1, double val2, double 0, \
650+
inst a0, f10, f11; li t2, 0)
651+
652+
#define TEST_FP_CMP_OP_D32_HEX( testnum, inst, flags, result, val1, val2 ) \
653+
TEST_FP_OP_D32_INTERNAL( testnum, flags, dword result, dword val1, dword val2, double 0, \
642654
inst a0, f10, f11; li t2, 0)
643655

644656
#define TEST_FP_CMP_OP_D( testnum, inst, flags, result, val1, val2 ) \
645-
TEST_FP_OP_D_INTERNAL( testnum, flags, dword result, val1, val2, 0.0, \
657+
TEST_FP_OP_D_INTERNAL( testnum, flags, dword result, double val1, double val2, double 0, \
658+
inst a0, f10, f11)
659+
660+
#define TEST_FP_CMP_OP_D_HEX( testnum, inst, flags, result, val1, val2 ) \
661+
TEST_FP_OP_D_INTERNAL( testnum, flags, dword result, dword val1, dword val2, double 0, \
646662
inst a0, f10, f11)
647663

648664
#define TEST_FCLASS_S(testnum, correct, input) \

isa/rv64ud/fadd.S

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ RVTEST_CODE_BEGIN
1717
# Replace the function with the 32-bit variant defined in test_macros.h
1818
#undef TEST_FP_OP2_D
1919
#define TEST_FP_OP2_D TEST_FP_OP2_D32
20-
#undef TEST_FP_OP2_D_CNAN
21-
#define TEST_FP_OP2_D_CNAN TEST_FP_OP2_D32_CNAN
20+
#undef TEST_FP_OP2_D_HEX
21+
#define TEST_FP_OP2_D_HEX TEST_FP_OP2_D32_HEX
2222
#endif
2323

2424
#-------------------------------------------------------------
@@ -38,7 +38,7 @@ RVTEST_CODE_BEGIN
3838
TEST_FP_OP2_D(10, fmul.d, 1, 3.14159265e-8, 3.14159265, 0.00000001 );
3939

4040
# Is the canonical NaN generated for Inf - Inf?
41-
TEST_FP_OP2_D_CNAN(11, fsub.d, 0x10, Inf, Inf);
41+
TEST_FP_OP2_D_HEX(11, fsub.d, 0x10, 0x7ff8000000000000, 0x7ff0000000000000, 0x7ff0000000000000);
4242

4343
TEST_PASSFAIL
4444

isa/rv64ud/fcmp.S

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ RVTEST_CODE_BEGIN
2121
# Replace the function with the 32-bit variant defined in test_macros.h
2222
#undef TEST_FP_CMP_OP_D
2323
#define TEST_FP_CMP_OP_D TEST_FP_CMP_OP_D32
24+
#undef TEST_FP_CMP_OP_D_HEX
25+
#define TEST_FP_CMP_OP_D_HEX TEST_FP_CMP_OP_D32_HEX
2426
#endif
2527

2628
TEST_FP_CMP_OP_D( 2, feq.d, 0x00, 1, -1.36, -1.36)
@@ -34,15 +36,15 @@ RVTEST_CODE_BEGIN
3436
# Only sNaN should signal invalid for feq.
3537
TEST_FP_CMP_OP_D( 8, feq.d, 0x00, 0, NaN, 0)
3638
TEST_FP_CMP_OP_D( 9, feq.d, 0x00, 0, NaN, NaN)
37-
TEST_FP_CMP_OP_D(10, feq.d, 0x10, 0, SNaN, 0)
39+
TEST_FP_CMP_OP_D_HEX(10, feq.d, 0x10, 0, 0x7ff0000000000001, 0)
3840

3941
# qNaN should signal invalid for fle/flt.
4042
TEST_FP_CMP_OP_D(11, flt.d, 0x10, 0, NaN, 0)
4143
TEST_FP_CMP_OP_D(12, flt.d, 0x10, 0, NaN, NaN)
42-
TEST_FP_CMP_OP_D(13, flt.d, 0x10, 0, SNaN, 0)
44+
TEST_FP_CMP_OP_D_HEX(13, flt.d, 0x10, 0, 0x7ff0000000000001, 0)
4345
TEST_FP_CMP_OP_D(14, fle.d, 0x10, 0, NaN, 0)
4446
TEST_FP_CMP_OP_D(15, fle.d, 0x10, 0, NaN, NaN)
45-
TEST_FP_CMP_OP_D(16, fle.d, 0x10, 0, SNaN, 0)
47+
TEST_FP_CMP_OP_D_HEX(16, fle.d, 0x10, 0, 0x7ff0000000000001, 0)
4648

4749
TEST_PASSFAIL
4850

isa/rv64ud/fmin.S

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ RVTEST_CODE_BEGIN
1717
# Replace the function with the 32-bit variant defined in test_macros.h
1818
#undef TEST_FP_OP2_D
1919
#define TEST_FP_OP2_D TEST_FP_OP2_D32
20-
#undef TEST_FP_OP2_D_CNAN
21-
#define TEST_FP_OP2_D_CNAN TEST_FP_OP2_D32_CNAN
20+
#undef TEST_FP_OP2_D_HEX
21+
#define TEST_FP_OP2_D_HEX TEST_FP_OP2_D32_HEX
2222
#endif
2323

2424
#-------------------------------------------------------------
@@ -40,9 +40,9 @@ RVTEST_CODE_BEGIN
4040
TEST_FP_OP2_D(17, fmax.d, 0, -1.0, -1.0, -2.0 );
4141

4242
# FMAX(sNaN, x) = x
43-
TEST_FP_OP2_D(20, fmax.d, 0x10, 1.0, SNaN, 1.0);
43+
TEST_FP_OP2_D_HEX(20, fmax.d, 0x10, 0x3ff0000000000000, 0x7ff0000000000001, 0x3ff0000000000000);
4444
# FMAX(qNaN, qNaN) = canonical NaN
45-
TEST_FP_OP2_D_CNAN(21, fmax.d, 0x00, NaN, NaN);
45+
TEST_FP_OP2_D_HEX(21, fmax.d, 0x00, 0x7ff8000000000000, 0x7fffffffffffffff, 0x7fffffffffffffff);
4646

4747
# -0.0 < +0.0
4848
TEST_FP_OP2_D(30, fmin.d, 0, -0.0, -0.0, 0.0 );

isa/rv64uf/fadd.S

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ RVTEST_CODE_BEGIN
3030
TEST_FP_OP2_S(10, fmul.s, 1, 3.14159265e-8, 3.14159265, 0.00000001 );
3131

3232
# Is the canonical NaN generated for Inf - Inf?
33-
TEST_FP_OP2_S_CNAN(11, fsub.s, 0x10, Inf, Inf);
33+
TEST_FP_OP2_S_HEX(11, fsub.s, 0x10, 0x7fc00000, 0x7f800000, 0x7f800000);
3434

3535
TEST_PASSFAIL
3636

isa/rv64uf/fcmp.S

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ RVTEST_CODE_BEGIN
2828
# Only sNaN should signal invalid for feq.
2929
TEST_FP_CMP_OP_S( 8, feq.s, 0x00, 0, NaN, 0)
3030
TEST_FP_CMP_OP_S( 9, feq.s, 0x00, 0, NaN, NaN)
31-
TEST_FP_CMP_OP_S(10, feq.s, 0x10, 0, SNaN, 0)
31+
TEST_FP_CMP_OP_S_HEX(10, feq.s, 0x10, 0, 0x7f800001, 0)
3232

3333
# qNaN should signal invalid for fle/flt.
3434
TEST_FP_CMP_OP_S(11, flt.s, 0x10, 0, NaN, 0)
3535
TEST_FP_CMP_OP_S(12, flt.s, 0x10, 0, NaN, NaN)
36-
TEST_FP_CMP_OP_S(13, flt.s, 0x10, 0, SNaN, 0)
36+
TEST_FP_CMP_OP_S_HEX(13, flt.s, 0x10, 0, 0x7f800001, 0)
3737
TEST_FP_CMP_OP_S(14, fle.s, 0x10, 0, NaN, 0)
3838
TEST_FP_CMP_OP_S(15, fle.s, 0x10, 0, NaN, NaN)
39-
TEST_FP_CMP_OP_S(16, fle.s, 0x10, 0, SNaN, 0)
39+
TEST_FP_CMP_OP_S_HEX(16, fle.s, 0x10, 0, 0x7f800001, 0)
4040

4141
TEST_PASSFAIL
4242

isa/rv64uf/fmin.S

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ RVTEST_CODE_BEGIN
3232
TEST_FP_OP2_S(17, fmax.s, 0, -1.0, -1.0, -2.0 );
3333

3434
# FMAX(sNaN, x) = x
35-
TEST_FP_OP2_S(20, fmax.s, 0x10, 1.0, SNaN, 1.0);
35+
TEST_FP_OP2_S_HEX(20, fmax.s, 0x10, 0x3f800000, 0x7f800001, 0x3f800000);
3636
# FMAX(qNaN, qNaN) = canonical NaN
37-
TEST_FP_OP2_S_CNAN(21, fmax.s, 0x00, NaN, NaN);
37+
TEST_FP_OP2_S_HEX(21, fmax.s, 0x00, 0x7fc00000, 0x7fffffff, 0x7fffffff);
3838

3939
# -0.0 < +0.0
4040
TEST_FP_OP2_S(30, fmin.s, 0, -0.0, -0.0, 0.0 );

isa/rv64uzfh/fadd.S

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ RVTEST_CODE_BEGIN
3030
TEST_FP_OP2_H(10, fmul.h, 1, 1.1, 11.0, 0.1 );
3131

3232
# Is the canonical NaN generated for Inf - Inf?
33-
TEST_FP_OP2_H_CNAN(11, fsub.h, 0x10, Inf, Inf);
33+
TEST_FP_OP2_H_HEX(11, fsub.h, 0x10, 0x7e00, 0x7c00, 0x7c00);
3434

3535
TEST_PASSFAIL
3636

isa/rv64uzfh/fmin.S

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ RVTEST_CODE_BEGIN
3131
TEST_FP_OP2_H(16, fmax.h, 0, 3.14159265, 3.14159265, 0.00000001 );
3232
TEST_FP_OP2_H(17, fmax.h, 0, -1.0, -1.0, -2.0 );
3333

34-
# FMIN(hNaN, x) = x
35-
TEST_FP_OP2_H(20, fmax.h, 0x10, 1.0, SNaN, 1.0);
34+
# FMIN(sNaN, x) = x
35+
TEST_FP_OP2_H_HEX(20, fmax.h, 0x10, 0x3c00, 0x7c01, 0x3c00);
3636
# FMIN(hNaN, hNaN) = canonical NaN
37-
TEST_FP_OP2_H_CNAN(21, fmax.h, 0x00, NaN, NaN);
37+
TEST_FP_OP2_H_HEX(21, fmax.h, 0x00, 0x7e00, 0x7fff, 0x7fff);
3838

3939
# -0.0 < +0.0
4040
TEST_FP_OP2_H(30, fmin.h, 0, -0.0, -0.0, 0.0 );

0 commit comments

Comments
 (0)