<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/143030>143030</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Missed optimization: fold add(umax(x, 1), x) < x ? C : y to y
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Cancelll
</td>
</tr>
</table>
<pre>
```
define i64 @src(i64 %0) {
%2 = call i64 @llvm.umax.i64(i64 %0, i64 1)
%3 = add nsw i64 %2, %0
%4 = icmp ult i64 %3, %0
%5 = call i64 @llvm.umin.i64(i64 %3, i64 329406144173384850)
%6 = select i1 %4, i64 329406144173384850, i64 %5
ret i64 %5
}
define i64 @tgt(i64 %0) {
%2 = call i64 @llvm.umax.i64(i64 %0, i64 1)
%3 = add nsw i64 %2, %0
%4 = call i64 @llvm.umin.i64(i64 %3, i64 329406144173384850)
ret i64 %4
}
```
Alive2: https://alive2.llvm.org/ce/z/ajmtVW
godbolt: https://godbolt.org/z/oMxExWGcd
Found this pattern in opencv/samples/cpp/tutorial_code/features2D/AKAZE_match.cpp
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMUz1v4zgQ_TWjhohBDSlZKlQodnTFIe0FuCagqbHNgBIFkXKc_PoDCfnysdittliAkEDyvZk3b4bKe3MaiRoo7qHYZ2oJZzc3OzVqstZmB9e_NVDydfG2p6MZiZlSMpDczxqwShssOGDNYHsPvGVxjwzEnmll7Q1u7WXYLIO6bkwpvxB3CZID1je2SGzV92z0r2xFYkQmxoqSCWX0MLHFhhtMfIcVP5Nixq9SxE2KwFryMpcy3wpRySpVdwtXpnCeLOnATJ6E_Iq4uwkrUoSZwucD2O7jN62v9oZT-BPs_T2-fapaflT9abRaay6EIFp2DmHyIFrADrBT6XyTMrv5BNhpAuze49XLEP55At6eXH9wNvxIXi9WYuS4x-vD9ekv3QNvO7eMPQtn49mkQqB5ZGZkbqJRXwA7r4bJko8ZpwmwC0tws1H2Wbs-SjiSCstMHveAXft3--_D86CCPm_0NGV9I_pa1CqjJt_KOi8KgTw7N6XQtKWcFKmcDihxezxyUrrWVBe87jPTIMeCl7xAjpXkm5wfsRLVQZTVsRY1geQ0KGP_tyQz3i_U5FJwwTOrDmR9etGII72ydAuI8YHPTSTdHZaTj900PviPMMEES82j8Z565qZgBvOugnFj9PXobB8HBrCKMwZYXWPT01Dhjl3TeIoduzIQHduxyHljwbG3bJlt860tJpyXw0a7AbCL-dff3TS7F9IBsEuqo_drWZcG_wsAAP__p6ZJZQ">