solidity/test/libyul/yulOptimizerTests/ssaAndBack/multi_assign_multi_var_switch.yul

40 lines
717 B
Plaintext

{
let a := mload(0)
let b := mload(1)
switch mload(2)
case 0 {
a := mload(b)
b := mload(a)
a := mload(b)
b := mload(a)
}
default {
b := mload(a)
a := mload(b)
b := mload(a)
a := mload(b)
}
mstore(a, b)
}
// ----
// step: ssaAndBack
//
// {
// let a := mload(0)
// let b := mload(1)
// switch mload(2)
// case 0 {
// let a_3 := mload(b)
// let b_4 := mload(a_3)
// a := mload(b_4)
// b := mload(a)
// }
// default {
// let b_7 := mload(a)
// let a_8 := mload(b_7)
// b := mload(a_8)
// a := mload(b)
// }
// mstore(a, b)
// }