about summary refs log tree commit diff stats
path: root/test/expression/simplifications.py
diff options
context:
space:
mode:
authorCamille Mougey <commial@gmail.com>2019-02-12 16:10:33 +0100
committerGitHub <noreply@github.com>2019-02-12 16:10:33 +0100
commit1f884d4e08eef12207b66ab1b3baebac016afe68 (patch)
tree2a148c472ddf699fe4a7dbff53b37c68707f7f41 /test/expression/simplifications.py
parent9b53aa5f888c84c069809ffae752ecb80c51c738 (diff)
parent15976e2f8c0a490d6c6b8c3ef02d38762ed8585c (diff)
downloadmiasm-1f884d4e08eef12207b66ab1b3baebac016afe68.tar.gz
miasm-1f884d4e08eef12207b66ab1b3baebac016afe68.zip
Merge pull request #958 from serpilliere/simp_cond_add
Add simplifications
Diffstat (limited to 'test/expression/simplifications.py')
-rw-r--r--test/expression/simplifications.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/test/expression/simplifications.py b/test/expression/simplifications.py
index 5bca3fa9..cc33fc54 100644
--- a/test/expression/simplifications.py
+++ b/test/expression/simplifications.py
@@ -101,6 +101,10 @@ i3 = ExprInt(3, 32)
 im1 = ExprInt(-1, 32)
 im2 = ExprInt(-2, 32)
 
+bi0 = ExprInt(0, 1)
+bi1 = ExprInt(1, 1)
+
+
 icustom = ExprInt(0x12345678, 32)
 cc = ExprCond(a, b, c)
 
@@ -490,6 +494,21 @@ to_test = [
         ExprOp(TOK_EQUAL, a8, ExprInt(0xFF, 8))
     ),
 
+    (
+        ExprOp(TOK_EQUAL, i2, a + i1),
+        ExprOp(TOK_EQUAL, a , i1)
+    ),
+
+    (
+        ExprOp(TOK_EQUAL, a ^ i1, i2),
+        ExprOp(TOK_EQUAL, a , i3)
+    ),
+
+    (
+        ExprOp(TOK_EQUAL, i2, a ^ i1),
+        ExprOp(TOK_EQUAL, a , i3)
+    ),
+
     (ExprOp(TOK_INF_SIGNED, i1, i2), ExprInt(1, 1)),
     (ExprOp(TOK_INF_UNSIGNED, i1, i2), ExprInt(1, 1)),
     (ExprOp(TOK_INF_EQUAL_SIGNED, i1, i2), ExprInt(1, 1)),
@@ -692,6 +711,33 @@ to_test = [
 
     (a8.zeroExtend(32)[2:5], a8[2:5]),
 
+
+    (
+        ExprCond(a + b, a, b),
+        ExprCond(ExprOp(TOK_EQUAL, a, -b), b, a)
+    ),
+
+    (
+        ExprCond(a + i1, a, b),
+        ExprCond(ExprOp(TOK_EQUAL, a, im1), b, a)
+    ),
+
+
+    (
+        ExprCond(ExprOp(TOK_EQUAL, a, i1), bi1, bi0),
+        ExprOp(TOK_EQUAL, a, i1)
+    ),
+
+    (
+        ExprCond(ExprOp(TOK_INF_SIGNED, a, i1), bi1, bi0),
+        ExprOp(TOK_INF_SIGNED, a, i1)
+    ),
+
+    (
+        ExprOp(TOK_INF_EQUAL_UNSIGNED, a, i0),
+        ExprOp(TOK_EQUAL, a, i0)
+    ),
+
 ]
 
 for e_input, e_check in to_test: