diff options
| author | Robert Norton | 2017-07-19 18:08:02 +0100 |
|---|---|---|
| committer | Robert Norton | 2017-07-19 18:08:02 +0100 |
| commit | 632b10c0d4b01dc1af8593b8ae1f088fbfd9e342 (patch) | |
| tree | ac566808213125670da5f4dc3d702fe663333f7e /src/test/lib/tests/test_minus_signed.sail | |
| parent | d8969b1f9631dc15d5fb6b3b33a4a69dbfb7358a (diff) | |
split library tests into separate files to avoid risk of sail compiler stack overflow.
Diffstat (limited to 'src/test/lib/tests/test_minus_signed.sail')
| -rw-r--r-- | src/test/lib/tests/test_minus_signed.sail | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test/lib/tests/test_minus_signed.sail b/src/test/lib/tests/test_minus_signed.sail new file mode 100644 index 00000000..7268f340 --- /dev/null +++ b/src/test/lib/tests/test_minus_signed.sail @@ -0,0 +1,27 @@ +function unit test() = { + test_assert("minus_signed", 1 -_s 1 == 0); + (* XXX minus_vec_signed not implemented + test_assert("minus_vec_signed", ((bit[4])(0x2 -_s 0x1)) == 0x1); + test_assert("minus_vec_ov_signed", ((bit[4])(0x1 -_s 0xf)) == 0x2); *) + (* XXX minus_vec_vec_range_signed not implemented + test_assert("minus_vec_vec_range_signed_pp", ((int)(0x1 -_s 0x1)) == 0); + test_assert("minus_vec_vec_range_signed_np", ((int)(0xa -_s 0x1)) == 9); + test_assert("minus_vec_vec_range_signed_pn", ((int)(0x3 -_s 0xe)) == 5); + test_assert("minus_vec_vec_range_signed_nn", ((int)(0x8 -_s 0x8)) == 0);*) + (* XXX not implemented + test_assert("minus_vec_range_signed", ((bit[4])(0xe -_s 1)) == 0xd); + test_assert("minus_vec_range_range_signed", ((int)(0xe -_s 1)) == -3); + test_assert("minus_range_vec_signed", ((bit[4])(1 -_s 0xe)) == 0x3); + test_assert("minus_range_vec_range_signed", ((int)(1 -_s 0xe)) == 3);*) + (* returns (result, signed overflow, borrow in)*) + test_assert ("minus_overflow_vec_signed0", (((bit[4], bit, bit))(0x1 -_s 0x1)) == (0x0, false, false)); + test_assert ("minus_overflow_vec_signed1", (((bit[4], bit, bit))(0x0 -_s 0x1)) == (0xf, true, true)); + test_assert ("minus_overflow_vec_signed2", (((bit[4], bit, bit))(0x8 -_s 0x1)) == (0x7, false, false)); + test_assert ("minus_overflow_vec_signed3", (((bit[4], bit, bit))(0x0 -_s 0x8)) == (0x8, true, true)); + + test_assert ("minus_overflow_vec_bit_signed0", (((bit[4], bit, bit))(0x1 -_s bitone)) == (0x0, false, false)); + test_assert ("minus_overflow_vec_bit_signed1", (((bit[4], bit, bit))(0x0 -_s bitone)) == (0xf, true, true)); + test_assert ("minus_overflow_vec_bit_signed2", (((bit[4], bit, bit))(0x8 -_s bitone)) == (0x7, false, false)); + test_assert ("minus_overflow_vec_bit_signed3", (((bit[4], bit, bit))(0x8 -_s bitzero)) == (0x8, false, false)); +} + |
