[llvm-dev] Is there a simple way to check APInt multiplication overflow?

Ben Shi via llvm-dev llvm-dev at lists.llvm.org
Sat Jul 11 04:48:34 PDT 2020


Hello,


I have two APInt variables, which are got by ConstantSDNode::getAPIntValue().


Is there a simple way to know if their multiplication overflows?


For example, if both APInt vars contain a int32_t, 
APInt a, b;
Then I think 


if (a.getMinSignedBits() + b.getMinSignedBits() > 32)
   a*b must exceeds int32_t <=> overflow happens;


Is my way OK?


Ben Shi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200711/f03a8973/attachment.html>


More information about the llvm-dev mailing list