solidity/test/libyul/yulOptimizerTests/valueConstraintBasedSimplifier/bits.yul
2019-03-25 18:04:01 +01:00

47 lines
1.1 KiB
Plaintext

{
let a := 0xffff
let b := or(shl(20, a), and(calldataload(0), 0xff))
let c := shl(add(300, lt(a, b)), calldataload(0))
let d := shr(add(300, lt(a, b)), calldataload(0))
let e := and(b, 0xff)
let f := not(b)
let g := byte(calldataload(0), 2)
}
// ----
// valueConstraintBasedSimplifier
// a:
// = 65535
// b:
// min: 0x0fFFF00000
// max: 0x0fFFF000ff
// minB: 0x0fFFF00000
// maxB: 0x0fFFF000ff
// c:
// = 0
// d:
// = 0
// e:
// min: 0
// max: 255
// minB: 0
// maxB: 255
// f:
// min: 0xFFFFffffFFFFffffFFFFffffFFFFffffFFFFffffFFFFffffFFFFfff0000Fff00
// max: 0xFFFFffffFFFFffffFFFFffffFFFFffffFFFFffffFFFFffffFFFFfff0000Fffff
// minB: 0xFFFFffffFFFFffffFFFFffffFFFFffffFFFFffffFFFFffffFFFFfff0000Fff00
// maxB: 0xFFFFffffFFFFffffFFFFffffFFFFffffFFFFffffFFFFffffFFFFfff0000Fffff
// g:
// min: 0
// max: 255
// minB: 0
// maxB: 255
// {
// let a := 0xffff
// let b := or(0x0ffff00000, and(calldataload(0), 0xff))
// let c := 0
// let d := 0
// let e := and(b, 0xff)
// let f := not(b)
// let g := byte(calldataload(0), 2)
// }