diff options
author | Joakim Andersson <joerchan@gmail.com> | 2015-04-12 23:50:05 +0200 |
---|---|---|
committer | Joakim Andersson <joerchan@gmail.com> | 2015-04-12 23:50:05 +0200 |
commit | 75f9bc244d43359750bf53660b6a7a36ee11e4ed (patch) | |
tree | 9b60efb465cf6a9ea0e8b5db01edaa3eafae46d1 /isa/rv32ui | |
parent | 74fa7fbd09701e8a63b616cd9a8f78c23a43cbb3 (diff) | |
download | riscv-tests-75f9bc244d43359750bf53660b6a7a36ee11e4ed.zip riscv-tests-75f9bc244d43359750bf53660b6a7a36ee11e4ed.tar.gz riscv-tests-75f9bc244d43359750bf53660b6a7a36ee11e4ed.tar.bz2 |
Better coverage of mul high instructions
Diffstat (limited to 'isa/rv32ui')
-rw-r--r-- | isa/rv32ui/mul.S | 6 | ||||
-rw-r--r-- | isa/rv32ui/mulh.S | 10 | ||||
-rw-r--r-- | isa/rv32ui/mulhsu.S | 9 | ||||
-rw-r--r-- | isa/rv32ui/mulhu.S | 6 |
4 files changed, 31 insertions, 0 deletions
diff --git a/isa/rv32ui/mul.S b/isa/rv32ui/mul.S index b3ec446..0368629 100644 --- a/isa/rv32ui/mul.S +++ b/isa/rv32ui/mul.S @@ -31,6 +31,12 @@ RVTEST_CODE_BEGIN TEST_RR_OP(30, mul, 0x0000ff7f, 0xaaaaaaab, 0x0002fe7d ); TEST_RR_OP(31, mul, 0x0000ff7f, 0x0002fe7d, 0xaaaaaaab ); + TEST_RR_OP(34, mul, 0x00000000, 0xff000000, 0xff000000 ); + + TEST_RR_OP(35, mul, 0x00000001, 0xffffffff, 0xffffffff ); + TEST_RR_OP(36, mul, 0xffffffff, 0xffffffff, 0x00000001 ); + TEST_RR_OP(37, mul, 0xffffffff, 0x00000001, 0xffffffff ); + #------------------------------------------------------------- # Source/Destination tests #------------------------------------------------------------- diff --git a/isa/rv32ui/mulh.S b/isa/rv32ui/mulh.S index 3f96931..3b34b6a 100644 --- a/isa/rv32ui/mulh.S +++ b/isa/rv32ui/mulh.S @@ -25,6 +25,16 @@ RVTEST_CODE_BEGIN TEST_RR_OP( 6, mulh, 0x00000000, 0x80000000, 0x00000000 ); TEST_RR_OP( 7, mulh, 0x00000000, 0x80000000, 0x00000000 ); + TEST_RR_OP(30, mulh, 0xfffe0101, 0xaaaaaaab, 0x0002fe7d ); + TEST_RR_OP(31, mulh, 0xfffe0101, 0x0002fe7d, 0xaaaaaaab ); + + TEST_RR_OP(32, mulh, 0xfe010000, 0xff000000, 0xff000000 ); + + TEST_RR_OP(33, mulh, 0xfffffffe, 0xffffffff, 0xffffffff ); + TEST_RR_OP(34, mulh, 0xffffffff, 0xffffffff, 0x00000001 ); + TEST_RR_OP(35, mulh, 0xffffffff, 0x00000001, 0xffffffff ); + + #------------------------------------------------------------- # Source/Destination tests #------------------------------------------------------------- diff --git a/isa/rv32ui/mulhsu.S b/isa/rv32ui/mulhsu.S index 1d3dd3e..93e698c 100644 --- a/isa/rv32ui/mulhsu.S +++ b/isa/rv32ui/mulhsu.S @@ -25,6 +25,15 @@ RVTEST_CODE_BEGIN TEST_RR_OP( 6, mulhsu, 0x00000000, 0x80000000, 0x00000000 ); TEST_RR_OP( 7, mulhsu, 0x80004000, 0x80000000, 0xffff8000 ); + TEST_RR_OP(30, mulhsu, 0xfffe0101, 0xaaaaaaab, 0x0002fe7d ); + TEST_RR_OP(31, mulhsu, 0x0001fefe, 0x0002fe7d, 0xaaaaaaab ); + + TEST_RR_OP(32, mulhsu, 0x01ff0000, 0xff000000, 0xff000000 ); + + TEST_RR_OP(33, mulhsu, 0x00000001, 0xffffffff, 0xffffffff ); + TEST_RR_OP(34, mulhsu, 0xffffffff, 0xffffffff, 0x00000001 ); + TEST_RR_OP(35, mulhsu, 0x00000000, 0x00000001, 0xffffffff ); + #------------------------------------------------------------- # Source/Destination tests #------------------------------------------------------------- diff --git a/isa/rv32ui/mulhu.S b/isa/rv32ui/mulhu.S index 70301d2..601dcff 100644 --- a/isa/rv32ui/mulhu.S +++ b/isa/rv32ui/mulhu.S @@ -28,6 +28,12 @@ RVTEST_CODE_BEGIN TEST_RR_OP(30, mulhu, 0x0001fefe, 0xaaaaaaab, 0x0002fe7d ); TEST_RR_OP(31, mulhu, 0x0001fefe, 0x0002fe7d, 0xaaaaaaab ); + TEST_RR_OP(32, mulhu, 0xfe010000, 0xff000000, 0xff000000 ); + + TEST_RR_OP(33, mulhu, 0xfffffffe, 0xffffffff, 0xffffffff ); + TEST_RR_OP(34, mulhu, 0x00000000, 0xffffffff, 0x00000001 ); + TEST_RR_OP(35, mulhu, 0x00000000, 0x00000001, 0xffffffff ); + #------------------------------------------------------------- # Source/Destination tests #------------------------------------------------------------- |