<div dir="ltr"><div><div><div><div><div><div><div><div><div><div>Hi,<br><br></div>Attaching patch for checking if Signed Addition overflows.<br></div>This patch implements two things :<br><br></div>1. If we know one number is positive and another is negative, we return true as signed addition of two opposite signed numbers will never overflow.<br>
<br></div>2. Implemented TODO : If one of the operands only has one non-zero bit, and if the other operand has a known-zero bit in a more significant place than it (not including the sign bit) the ripple may go up to and fill the zero, but won't change the sign.<br>
</div>e.x -  (x & ~4) + 1<br></div><div>We make sure that we are ignoring 0 at MSB.<br></div><div><br></div>3 Test case included :<br><br></div>1. To check if 0 in one number is at more significant place than 1 in second number. We emit 'add nsw' as we are sure there will be no overflow as the ripple will die at that zero.<br>
</div>2. If 0 is at less significant place than one, then emit normal 'add' as we are not sure if the ripple will die before reaching Sign bit.<br></div>3. IF the two numbers are of opposite sign, we emit 'add nsw' as we are sure that it will never overflow.<br>
<br></div>Please help in reviewing the patch.<br><br><div><div><div><div><div><div><div><div><div><div><div><div><div>-- <br>With regards,<br>Suyog Sarda<br>
</div></div></div></div></div></div></div></div></div></div></div></div></div></div>