contract C {
    function f() public pure returns (bool correct) {
        uint256[1] memory m;
        assembly {
            mstore(m, 0xdeadbeef15dead)
        }
        int32 x = int32(uint32(m[0]));
        uint r;
        assembly {
            r := x
        }
        correct = (m[0] == 0xdeadbeef15dead) && (r == (((2 ** 224 - 1) << 32) | 0xef15dead));
    }
}
// ====
// compileToEwasm: also
// compileViaYul: true
// ----
// f() -> true
