Some options: - Like LLVM, allow load instructions to specify a range of possible values that it could return. - Have a LoadUnsigned. - Have a variant of ZExt/SExt that guarantees that the sign bit is zero.