aboutsummaryrefslogtreecommitdiffstats
path: root/test/libyul/yulOptimizerTests/fullSimplify/invariant.yul
diff options
context:
space:
mode:
Diffstat (limited to 'test/libyul/yulOptimizerTests/fullSimplify/invariant.yul')
-rw-r--r--test/libyul/yulOptimizerTests/fullSimplify/invariant.yul17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/libyul/yulOptimizerTests/fullSimplify/invariant.yul b/test/libyul/yulOptimizerTests/fullSimplify/invariant.yul
new file mode 100644
index 00000000..a8eedef1
--- /dev/null
+++ b/test/libyul/yulOptimizerTests/fullSimplify/invariant.yul
@@ -0,0 +1,17 @@
+{
+ let a := calldataload(sub(7, 7))
+ let b := sub(a, 0)
+ // Below, `b` is not eliminated, because
+ // we run CSE and then Simplify.
+ // Elimination of `b` would require another
+ // run of CSE afterwards.
+ mstore(b, eq(calldataload(0), a))
+}
+// ----
+// fullSimplify
+// {
+// let a := calldataload(0)
+// let _4 := 0
+// let b := a
+// mstore(b, eq(calldataload(_4), a))
+// }