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 := and(0xff, shr(248, shl(248, shr(248, x))))
|
|
|
|
let b := shr(12, shl(8, and(x, 0xf0f0)))
|
2020-08-03 20:42:39 +00:00
|
|
|
sstore(a, b)
|
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)
|
2020-08-03 20:42:39 +00:00
|
|
|
// let a := and(0xff, and(shr(248, x), 255))
|
|
|
|
// sstore(a, shr(12, and(shl(8, x), 15790080)))
|
2019-04-16 11:14:13 +00:00
|
|
|
// }
|