<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63125>63125</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Bounds check is not eliminated `i != count` vs `i < count`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Kojoley
</td>
</tr>
</table>
<pre>
```cpp
#define _GLIBCXX_ASSERTIONS
#include <vector>
void foo(std::vector<double> &vec)
{
auto count = size(vec);
for (decltype(count) i = 0; i != count; ++i)
vec[i] += 1;
}
```
`-mllvm -enable-constraint-elimination` does not help.
With `i < count` bounds check is eliminated.
https://godbolt.org/z/s6Gbsqvor
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxkktFvmz4Qx_-a4-WUyDkHJzzwEJJSVb-fNmmdtL5VgI_gzsEZNpnav34yoenUIQRn3fd7d_7Ylffm2DPnkBaQHpJqDJ0b8v_ci7P8mtROv-agxPVtzmcQBxA7IKm5NT3j8_3_D8X-6el59_h49-37w9cvjzeJ6Rs7akaQ-ws3wQ0g7-bk9L04o7F1Dmjrgwa5A7l7F-61G2vLIO8QSF24Acpm76a4BohYjcFh48Y-IMgDevPGQNtZLT90rRsQaKu5seH1HDWTCShDMzkFyCKGtIqra1IWCFQAFebWG-MTy6eFgfQw5eUBV7desDnMwTuz23JxsvZywgX3VW150bjeh6EyfViwNSfTV8G4HpRA7dhj7wJ2bM_Lq_-HCR2CEnHa_TyfEli7sdcem46bn2g8vldiPfu6EM4-kqUSqDw6XTsblm44ApVvQKVX97X_dXFDonOpM5lVCecrtU2zTK7UNunytaipaZnX1YY2mkS7SVNRpy1VQq7XG5WYnARJoUS6ykiJdFlLtRUVZytqm5RSgrXgU2XsMu4_9k6M9yPnSq4oTWxVs_XT9SPq-TdOSSCKt3HIo2dRj0cPa2GND_6jSjDBcl58QhDBfWCYmf19rErgxf_LMhkHm3_CZUI31svGnYDK2Hb-Lc6De-EmAJXTsB6onDbzJwAA__-74fnA">