<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/78016>78016</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang is suboptimal for `(a lt/gt b) || (a * a lt/gt c)` when b and c are specific constants
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
k-arrows
</td>
</tr>
</table>
<pre>
Test case
https://godbolt.org/z/Es5jPMda9
```cpp
int foo(int a)
{
return (a < 4) || (a * a > 7);
}
int bar(int a)
{
return (a < 4) || (a * a < 7);
}
int baz(int a)
{
return (a > -4) || (a * a > 7);
}
int qux(int a)
{
return (a > -4) || (a * a < 7);
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysU8mO1DAQ_ZrKpdQtp7IffJheckPiwA94S7cHdxxsh4H5euReQEKABoFkyaWq53p-5WcRoz3NxnBodtAcCrGmsw_840aE4F9iIb3-yj-YmFCJaIAdgD2dU1oiVE9AI9B48lp6l7Y-nIDGV6DxGJvn9--0GG5waNltqWW5ZeyccPIeqM-RAHogu90twGDSGmYE6gVCtccaaEDo9tDt70l6wlw6YpePV7tHh8M9-E4kRfgDEb6dav8Gqte_oDri5h9kfVq__Ceu3-p6vFuheaWHahCF4WXHmrJsqp6KM291x-q2N5Uc6rLpmBID06T7ibVNqcRQWE6MalaWFavYUNPWqMmosiSpJmp1ZaBm5iKs2zr3-ZItVNgYV8O7npVt4YQ0Ll6tSaScmE9AlF0aeMZv5HqKUDNnY4o_OiSbnOFXONqIcZV-SfYiHE4-YJaU1buUvZtQ_nosj7LKo2kZvpzNjBLFrFGhCAbjYpSdrELl55jEnGKxBsd_-hs2nVe5Vf4CNOYL3rfNEvyzUZnjqjcCjVfJ3wIAAP__Uqv2xQ">