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

    <tr>
        <th>Summary</th>
        <td>
            AMDGPU select splitting combines need to ensure condition is not undef
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:AMDGPU
      </td>
    </tr>

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

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

<pre>
    AMDGPU has various transformations that break up 64-bit operations into 32-bit pieces, many of which appear to be unsafe with undef. e.g. select splitting: https://alive2.llvm.org/ce/z/b5gN6V

[This needs to insert a freeze.](https://github.com/llvm/llvm-project/blob/a8280c4be4cec474eea839bf4caf91b0d071d45b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp#L11076)

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUkk1r3TwQhX-NvBli5PH3woubN_glkJZC0u5H8thWY0tGkm9Ifn3xzU2_dgWDkQTnzJzzUAhmssydKG9FeZfQHmfnO_KB7ZooN7x2p093_3_5CjMFOJM3bg8QPdkwOr9SNM4GiDNFUJ7pGfYNquJGmQhuY399NzY6yPFyvRnWHAT-ByvZV3AjvMxGz0DbxuQhOlAMuw00MryYOMNuBx5T4HRKIfDCOkLYFhOjsZPITzDHuAWRnwT2AntazJkxXZbzmjo_Cew1C-zfBPaqnD5X34Q8HV95-zSbAJZ5CIepsYF9BILRM79xKso7gc2f2pOJ865S7VaB_eFw_d1s3n1nHQ-PxaljigYbqQvFhWZd1AUzNXmrxkLT2GZKDrLOhqJUv-mY4_BEfuJD5z10gf3j_f0jLw_uhb2xU6q3TWD-kGWyrgS2Qp6SocuHNm8p4S6rS5RYS6yTuctbGjjnImuzSmnKmXJZVcNQl3VbVzQmpkOJpaxlKzGTWKdjI8sBqSnGghqkRhSSVzLLzzQTE8LOXVbUVV4mCylewoUcREX6me0g8tPH6Hjw5LtLQGqfgijkYkIMv9SiiQt_8PV3taDdqozl946OitiG3TNoZwdzcAVHfy6-A5Lsfun-ua7LPkFgf13p3OGPAAAA__9KkP4g">