<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/97986>97986</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[DebugInfo][SimplifyIndVar] Missing debug location updates for overflow/saturation instructions
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
svs-quic
</td>
</tr>
</table>
<pre>
There are a couple of instances where the debug information has not been propagated to the new overflow/saturation instructions:
```
BinaryOperator *NewResult = BinaryOperator::Create(
WO->getBinaryOp(), WO->getLHS(), WO->getRHS(), "", WO->getIterator());
.....
for (auto *U : WO->users()) {
if (auto *EVI = dyn_cast<ExtractValueInst>(U)) {
if (EVI->getIndices()[0] == 1)
EVI->replaceAllUsesWith(ConstantInt::getFalse(WO->getContext()));
else {
assert(EVI->getIndices()[0] == 0 && "Only two possibilities!");
EVI->replaceAllUsesWith(NewResult);
}
```
```
BinaryOperator *BO = BinaryOperator::Create(
SI->getBinaryOp(), SI->getLHS(), SI->getRHS(), SI->getName(), SI->getIterator());
if (SI->isSigned())
BO->setHasNoSignedWrap();
else
BO->setHasNoUnsignedWrap();
SI->replaceAllUsesWith(BO);
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVFtvqzgQ_jXmxWpFDAR44KG56UTabaRm2z6uHBiIV47Neobm5N-vTCBJz0n3HIvcZuabi-fLJxFVYwAKlsxYsghkR3vrCvzAh387VQY7W52Kv_bggEv_4qXtWg3c1pwrgyRNCciPfQDtgVew6xquTG3dQZKyhu8lcmOJ7wAMb51tZSMJKk62Bxg4cvsBrtb2yMQKJXXuDPTpXVf678iiJxYuWDi-T8Ph6X_ymTLSnTYtOEnWcSaenuH4Athp4ixa_OD3yaKnuQNJwEQ25HjfPLBo2QCNwd4lcibmV9cf37Z3rC-3ViZE_9z41zTUHYJyFs1up3n059bAed1PkcmOrJ_mlbNo7LBDcHhJxVk65OKqvoUs39b96NXJ_F1KJBbNl9_JyZLepO5gbbxpyUT2-lOi_pyzLd_W4xCmUiWMhZNZyJKFL-BrTLzpjB0ADlotS3jS-hUB3xXtmcjmticMrQ2dV9AAraRGv4TLZc2tIfhO17u6uS4OGuHHRjmXiODot7sNORNTJqZ-VRujT5yOlrcWUe2UVqQ8bNLv8KbycP5vvAvlPgFZurjL2bvGn3k82_w2gbfrLwl8cX0i8MX6ctf6LA9wx_w1m0fSnEMVbr2yVNe44b_abxqBvkl8tueYdyfHbq_J_LLvYl4NfoUasduv1zTbfAKMCwiqIqryKJcBFJNUhPEknk6jYF8kdZZU9WSXZnEp8yjK8iSSIsxCWdWTaQiBKkQo4jANszBO0jh6TLOwlHWeTqZZHE2ylMUhHKTSj1p_HB6tawKF2EGRp3k2DbTcgcZRf13hgx52XYMsDrVCwiuMFOleqRdeZdemtixZsGS2VYdWq_q0NtWbdJ7qfypEZZpBjrUtz5LatZUkwF5efi26Qed0sSdqe_kVKyZWjaJ9t3ss7YGJle9r-Hhonf0HSmJi1c-GTKzO430U4r8AAAD___ar2_c">