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