aboutsummaryrefslogtreecommitdiffstats
path: root/test/libyul/yulOptimizerTests/expressionSplitter/control_flow.yul
blob: d021129fe8e3659a864827f3d0b54555ad9a7cbd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{
    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))
        }
    }
}
// ----
// 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)
//         }
//     }
// }