summaryrefslogtreecommitdiff
path: root/src/test/lib/tests/test_minus_signed.sail
diff options
context:
space:
mode:
authorAlasdair Armstrong2017-07-26 14:12:09 +0100
committerAlasdair Armstrong2017-07-26 14:12:09 +0100
commit678ab0e23ba4a8d95010df2bd2467dae7d544e29 (patch)
tree0b2e02773327b9483f24b2e1ad46b7235ec9633e /src/test/lib/tests/test_minus_signed.sail
parent26e59493cde0ffbf1868426fe3bec158f2dbaad0 (diff)
parent18cf235fad35a0e06e26ea91ee0e1c673febddb8 (diff)
Merge remote-tracking branch 'origin/master' into sail_new_tc
Diffstat (limited to 'src/test/lib/tests/test_minus_signed.sail')
-rw-r--r--src/test/lib/tests/test_minus_signed.sail27
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));
+}
+