{
    let a := 10
    let x := 20
    {
        let b := calldataload(0)
        let d := calldataload(1)
        x := d
    }
    // We had a bug where "calldataload(0)" was incorrectly replaced by "b"
    mstore(0, calldataload(0))
    mstore(0, x)
}
// ----
// step: commonSubexpressionEliminator
//
// {
//     let a := 10
//     let x := 20
//     {
//         let b := calldataload(0)
//         let d := calldataload(1)
//         x := d
//     }
//     mstore(0, calldataload(0))
//     mstore(0, x)
// }