aboutsummaryrefslogtreecommitdiffstats
path: root/test/libyul/yulOptimizerTests/splitJoin/functions.yul
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-11-09 23:07:20 +0800
committerGitHub <noreply@github.com>2018-11-09 23:07:20 +0800
commit9709dfe04633ddb5e7d9911cdef1f4de54e5592e (patch)
tree2a30bcc226d55b80207ff5fc09d9befaffd9fb99 /test/libyul/yulOptimizerTests/splitJoin/functions.yul
parentdffbeebf606c41442fd79bdaf59cfa6649ffc0d0 (diff)
parent5ea514213a2ba15a8190f0171ddc003607faa679 (diff)
downloaddexon-solidity-9709dfe04633ddb5e7d9911cdef1f4de54e5592e.tar
dexon-solidity-9709dfe04633ddb5e7d9911cdef1f4de54e5592e.tar.gz
dexon-solidity-9709dfe04633ddb5e7d9911cdef1f4de54e5592e.tar.bz2
dexon-solidity-9709dfe04633ddb5e7d9911cdef1f4de54e5592e.tar.lz
dexon-solidity-9709dfe04633ddb5e7d9911cdef1f4de54e5592e.tar.xz
dexon-solidity-9709dfe04633ddb5e7d9911cdef1f4de54e5592e.tar.zst
dexon-solidity-9709dfe04633ddb5e7d9911cdef1f4de54e5592e.zip
Merge pull request #5128 from ethereum/breakUnbreak
[Yul] Test case that shows that break / unbreak are more or less inverse
Diffstat (limited to 'test/libyul/yulOptimizerTests/splitJoin/functions.yul')
-rw-r--r--test/libyul/yulOptimizerTests/splitJoin/functions.yul30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/libyul/yulOptimizerTests/splitJoin/functions.yul b/test/libyul/yulOptimizerTests/splitJoin/functions.yul
new file mode 100644
index 00000000..549fc550
--- /dev/null
+++ b/test/libyul/yulOptimizerTests/splitJoin/functions.yul
@@ -0,0 +1,30 @@
+{
+ let x := f(0)
+ function f(y) -> r {
+ r := mload(mul(6, add(y, 0x20)))
+ }
+ for { let a := 2 } lt(a, mload(a)) { a := add(a, mul(a, 2)) } {
+ let b := mul(add(a, f(a)), 4)
+ sstore(b, mul(b, 2))
+ }
+}
+// ----
+// splitJoin
+// {
+// let x := f(0)
+// function f(y) -> r
+// {
+// r := mload(mul(6, add(y, 0x20)))
+// }
+// for {
+// let a := 2
+// }
+// lt(a, mload(a))
+// {
+// a := add(a, mul(a, 2))
+// }
+// {
+// let b := mul(add(a, f(a)), 4)
+// sstore(b, mul(b, 2))
+// }
+// }