{ // This is not fully simplified on purpose because we // need another split step in between. The full simplification // is tested in the fullSuite. let x := calldataload(0) let a := and(0xff, shr(248, shl(248, shr(248, and(x, 0xf))))) let b := shl(12, shr(4, and(x, 0xf0f0))) let c := shl(12, shr(4, and(0xf0f0, x))) let d := shl(12, shr(255, and(0xf0f0, x))) let e := shl(255, shr(4, and(0xf0f0, x))) let f := shl(12, shr(256, and(0xf0f0, x))) let g := shl(256, shr(4, and(0xf0f0, x))) sstore(10, a) sstore(11, b) sstore(12, c) sstore(13, d) sstore(14, e) sstore(15, f) sstore(16, g) } // ==== // EVMVersion: >byzantium // ---- // step: expressionSimplifier // // { // let x := calldataload(0) // let _2 := 0xf // let _5 := and(shr(248, x), 0) // let _10 := 0xff // let a := and(_5, 255) // let _14 := and(shr(4, x), 3855) // let _15 := 12 // let b := shl(_15, _14) // let _19 := and(shr(4, x), 3855) // let c := shl(_15, _19) // let d := shl(_15, and(shr(255, x), 0)) // let e := shl(_10, _19) // let f := 0 // let g := 0 // sstore(10, a) // sstore(11, b) // sstore(_15, c) // sstore(13, d) // sstore(14, e) // sstore(_2, f) // sstore(16, g) // }