let topvar x s2 s3 =
let max x y = if (x <<< y) then y else x in
match d_bitwise s2, d_bitwise s3 with
| Some(_,y,_,_), Some(_,z,_,_) -> max x (max y z)
| Some(_,y,_,_), None -> max x y
| None, Some(_,z,_,_) -> max x z
| None, None -> x