<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/130100>130100</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Failure to recognise trunc nsw from assumptions
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          RKSimon
      </td>
    </tr>
</table>

<pre>
    Pulled out of #130088
```ll
----------------------------------------
define i8 @src(i16 noundef %x) {
#0:
  %add = add i16 noundef %x, 128
  %or.cond.i = icmp ult i16 %add, 256
  assume i1 %or.cond.i
  %conv1 = trunc i16 noundef %x to i8
  ret i8 %conv1
}
=>
define i8 @tgt(i16 noundef %x) {
#0:
  %conv1 = trunc nsw i16 noundef %x to i8
  ret i8 %conv1
}
Transformation seems to be correct!
```
https://alive2.llvm.org/ce/z/2qhZy4
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycUjuT0zAQ_jXrRnMZaRW_Chc5ghsaBqjoFHmdiJGloEeO49czcnJwjwbweKxC-z29KkZzdEQD1PdQ7yuV08mH4dOHz2bxrjr46XH4mK2lifmcmJ8ZoBSS864DvoOGX19rge_u_vIBvptoNo6Y6RhseQwasDOiYc5nN1HRqH8A9gza-6KCkoPcAd-xcqOmiYHcs3K-Bb1jArunUR822rtpY1aA0cuZZZtW1JWozGPdrPMqxrwQM-IF8olKe3cRK00K2ek3yix5Zq7CgdKa7AYqCdp9-co9yPev06dj-pf0r324-PA_Xr4E5eLsw6KS8Y5FoiUW2IGY9iGQToDi-R8GvjuldI7FCo6Ao7LmQrix9rJsfDgCjpoAx5-AI34_fX3cVtMgp172qqJBtFuBTdMJrE5D3_etmKlvxDR3QvCpl1rKum6bdtvPUlVmQI41l7wRUkjsNnIm5LptuaqVRiFgy2lRxv5Wr0yMmQYhueC8supANq4rjejoga23gFg2PAwFdHfIxwhbbk1M8Q9NMsnSMCpjc6DSRyDtj85Eelb3HPxy3ZZzKS9WOdjhZTlHk075sNF-ARwL--24Owf_bS13XD1FwPFm-jLgrwAAAP__TMwH2w">