diff --git a/test/libyul/yulOptimizerTests/loadResolver/experimental_smt.yul b/test/libyul/yulOptimizerTests/loadResolver/experimental_smt.yul new file mode 100644 index 000000000..e9330a3af --- /dev/null +++ b/test/libyul/yulOptimizerTests/loadResolver/experimental_smt.yul @@ -0,0 +1,24 @@ +{ + mstore(64, 128) + if callvalue() { revert(0, 0) } + let _1 := 0 + // Does not invalidate location 64 + calldatacopy(128, _1, calldatasize()) + let z := mload(64) + sstore(z, 1) + } +// ---- +// step: loadResolver +// +// { +// let _2 := 128 +// mstore(64, _2) +// if callvalue() +// { +// let _5 := 0 +// revert(_5, _5) +// } +// let _1 := 0 +// calldatacopy(_2, _1, calldatasize()) +// sstore(_2, 1) +// } diff --git a/test/libyul/yulOptimizerTests/loadResolver/memory_with_different_kinds_of_invalidation.yul b/test/libyul/yulOptimizerTests/loadResolver/memory_with_different_kinds_of_invalidation.yul index 77fc5aef0..4f261454d 100644 --- a/test/libyul/yulOptimizerTests/loadResolver/memory_with_different_kinds_of_invalidation.yul +++ b/test/libyul/yulOptimizerTests/loadResolver/memory_with_different_kinds_of_invalidation.yul @@ -25,7 +25,7 @@ // let _5 := 0 // sstore(_5, _4) // pop(call(_5, _5, _5, _5, _5, _5, _5)) -// sstore(_5, mload(_2)) +// sstore(_5, _1) // let _17 := 10 // mstore(_2, _17) // mstore8(calldataload(_5), 4) diff --git a/test/libyul/yulOptimizerTests/loadResolver/staticcall.yul b/test/libyul/yulOptimizerTests/loadResolver/staticcall.yul index b24ab0170..772cc500d 100644 --- a/test/libyul/yulOptimizerTests/loadResolver/staticcall.yul +++ b/test/libyul/yulOptimizerTests/loadResolver/staticcall.yul @@ -19,10 +19,9 @@ // let b := 1 // sstore(a, b) // let _1 := 7 -// let _2 := 900 -// mstore(_2, _1) +// mstore(900, _1) // let _3 := 200 // pop(staticcall(10000, 10, a, _3, a, _3)) -// sstore(1, mload(_2)) +// sstore(1, _1) // mstore(a, b) // }