<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">