Hi there,
I have been trying to obtain a Constant from an APInt using
auto maskConstant = llvm::ConstantInt::get(intTy, maskPiece);
where intTy
is a IntergerType pointer (64-bit) and maskPiece
is an APInt object. However, if maskPiece
has the a big value say
18374686479671623680, which is 1111111100000000000000000000000000000000000000000000000000000000. The constant will return a negative value -72057594037927936, which looks it is always converted to a signed integer. How can i keep it as unsigned?
I have also tried maskConstant = llvm::ConstantInt::get(intTy, maskPiece.getZExtValue(), false);
or maskConstant = llvm::ConstantInt::get(intTy, maskPiece.getZExtValue(), false);
, both returned the same negative value. Any help will be appreciated.
Best regards,
Leo Z