solidity/test/libyul/yulOptimizerTests/expressionSplitter/control_flow.yul

41 lines
865 B
Plaintext

{
let x := calldataload(0)
if mul(add(x, 2), 3) {
for { let a := 2 } lt(a, mload(a)) { a := add(a, mul(a, 2)) } {
let b := mul(add(a, 2), 4)
sstore(b, mul(b, 2))
}
}
}
// ====
// step: expressionSplitter
// ----
// {
// let _1 := 0
// let x := calldataload(_1)
// let _2 := 3
// let _3 := 2
// let _4 := add(x, _3)
// let _5 := mul(_4, _2)
// if _5
// {
// for {
// let a := 2
// }
// lt(a, mload(a))
// {
// let _6 := 2
// let _7 := mul(a, _6)
// a := add(a, _7)
// }
// {
// let _8 := 4
// let _9 := 2
// let _10 := add(a, _9)
// let b := mul(_10, _8)
// let _11 := 2
// let _12 := mul(b, _11)
// sstore(b, _12)
// }
// }
// }