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

    <tr>
        <th>Summary</th>
        <td>
            missing optimisations: combining conditions
        </td>
    </tr>

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

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

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

<pre>
    Two functions:

```
bool tst1(int a0, int a1, int b0, int b1) {
  return (a0 > a1) || (a0 == a1 && b0 < b1);
}

bool tst2(int a0, int a1, int b0, int b1) {
  return (a0 > a1) | (a0 == a1 && b0 < b1);
}
```

Produce different assembly https://godbolt.org/z/jfEW5Y4nx

I think it should be the same assembly.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyskslu3DAMhp-GvhAZaPE2Bx-acQz01kOBIkfJosdKZGlgyUmnT1_YszTtsQggUNRP8ccHgipGe_REDRSPULSZWtIY5qYlb-OzmkMc6S2-2nOmgzk3398DDovvkw0-gvwCrAV2iyW7nu2pQ3CYYuIgausTKgbigFvGb5m-a5qD2CNUj5dmxJnSMnsEUSuGIJ-2rvXHAarDXW5Btqg4gihBlKhX7XAxA3n1gqr9iHnjEp_N9Z9Qf0_tEr_NwSw9obHDQDOtbDHSpN0Zx5RO2-RFB6I7BqODS7swH0F0v0B0L8PTj-I59z8_-n3FNFr_ijZhHMPiDGrCNBJGNdHde5eZRpq93KuMGl7uecGkECwbG15VuhrKSlMtK6pUxYu6Nn3ek5G655TZRjAhWc1qnjPGi12uTSW15sNQ5FJSCTmjSVm3c-5tWnEzG-NCTZkXkmdOaXJxW0EhPL3jVgQh1o2cm7XnQS_HCDlzNqb4xyXZ5KiZbIzWHzGckp1sVLf1xD5M2vq11Adv7KZny-yaf8Zo07joXR8mEN3qfb0eTnN4oT6B6DaiCKLbiH8HAAD___Sy7sc">