2019-04-16 11:14:13 +00:00
|
|
|
{
|
2020-08-03 20:42:39 +00:00
|
|
|
// This is not fully simplified on purpose because we
|
|
|
|
// need another split step in between. The full simplification
|
|
|
|
// is tested in the fullSuite.
|
2019-04-16 11:14:13 +00:00
|
|
|
let x := calldataload(0)
|
|
|
|
let a := shl(12, shr(4, x))
|
|
|
|
let b := shl(4, shr(12, x))
|
|
|
|
let c := shr(12, shl(4, x))
|
|
|
|
let d := shr(4, shl(12, x))
|
|
|
|
let e := shl(150, shr(2, shl(150, x)))
|
2020-08-03 20:42:39 +00:00
|
|
|
sstore(15, x)
|
|
|
|
sstore(16, a)
|
|
|
|
sstore(17, b)
|
|
|
|
sstore(18, c)
|
|
|
|
sstore(19, d)
|
|
|
|
sstore(20, e)
|
2019-04-16 11:14:13 +00:00
|
|
|
}
|
|
|
|
// ====
|
|
|
|
// EVMVersion: >byzantium
|
|
|
|
// ----
|
2020-03-17 22:31:56 +00:00
|
|
|
// step: expressionSimplifier
|
|
|
|
//
|
2019-04-16 11:14:13 +00:00
|
|
|
// {
|
|
|
|
// let x := calldataload(0)
|
|
|
|
// let a := and(shl(8, x), 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000)
|
|
|
|
// let b := and(shr(8, x), 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0)
|
|
|
|
// let c := and(shr(8, x), 0x0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)
|
|
|
|
// let d := and(shl(8, x), 0x0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00)
|
2020-08-03 20:42:39 +00:00
|
|
|
// let _14 := 150
|
|
|
|
// let e := shl(_14, and(shl(148, x), 0x3ffffffffffffffffffffffffff0000000000000000000000000000000000000))
|
|
|
|
// sstore(15, x)
|
|
|
|
// sstore(16, a)
|
|
|
|
// sstore(17, b)
|
|
|
|
// sstore(18, c)
|
|
|
|
// sstore(19, d)
|
|
|
|
// sstore(20, e)
|
2019-04-16 11:14:13 +00:00
|
|
|
// }
|