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

    <tr>
        <th>Summary</th>
        <td>
            [SimplifyCFG] Missed optimization: Fail to merge part of phi into one select
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            llvm:optimizations,
            missed-optimization
      </td>
    </tr>

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

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

<pre>
    Alive2 proof: https://alive2.llvm.org/ce/z/gs8NJq
Missed example: https://godbolt.org/z/PsEvnzvM9

### Description:

In `src` function, with `%add` in `b1` and `%sub` in `b2`, we failed to merge them into a single select instruction, and further failed to merge two BasicBlock into the common destination.

### Real-world motivation

This snippet of IR is derived from numpy/core/src/npymath/extr_halffloat.c (after O3 pipeline).
The example above is a reduced version. If you're interested in the original suboptimal IR and optimal IR, see also:

**Let me know if you can confirm that it's an optimization opportunity, thanks.**
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsVE2P4zYM_TXyhZjAoRN7cvAhk9TFFN222PbQWyFbdMyOLLkSnWzm1xdyZnbS3QKCvx71KD7yWcfIJ0dUq-2T2h4zPcvgQ_3nYbhmrTfXem_5TAhT8L5XxR4GkSmqYq-wUdjoBV1Zex5XPpwUNh0pbF4VNqf4-MtP_6j8qPL9J46RDNAXPU6Wvqc5edN6K28Uafdv8Yezez1_2t0I3q5Y3BYcKXaBJ2HvEsldzLMDVeYxdKrMoZ9dt8TgAS4sQ4IUbrUxCeUltF2nZ-3MGxjn9g7E5eMBLgS9ZksGxMNI4UQgA43ATjxoiOxOliCSpU6AXZQwf82cuPs5yEDhe5KLhycduXuyvnu50clA0Plx9A4MRWGnE9Pq_5X4TNo-XHywBkYvfF5i70P_GDhCdDxNJOB7eP4MHMFQ4DMZ6IMfwc3jdE298yF1L4mHjZuuo5ZBYUNfJPw1aNv31mtZdaDwUfdCAX4tYOKJLDtSuFu9J6T3ToNu_ZlSPg2BzNyRgTOFmMqB5x6uflZYBUp1U6AoZJLwSQAf-MROW4hz6yfhUdt09KTlx2tSNxKBttF_MwcK0_qZBEaCF-cvwEs-6LSDzruewwgyaAEWhVUE7W7E_LpICH6afJDZsVxTGhm0e4mrG21m6sLsip3OqF5Xeb7LcbfFbKg3RVGVVVvQY1mVuTaGdJkjVRrLokJTZlxjjsV6jdu0qcDVZr3ZbPOq7U3Zd1gYtclp1Gy_eirjGGeqq6J4zDOrW7JxMStiilDF_v7UUSEqPCjEcbHcwz2YsO0xC3Xa-NDOp6g2ueUo8SOZsNjlZ_A7j5Pl_npoflTbI7w5-D90xR4azfZjmCcdlhGbBr5NsnfvnsjmYOtvTM8yzO2q86PCZqnldnuYgv-bOlHYLKVHhc1S_b8BAAD__24Ogi8">