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

    <tr>
        <th>Summary</th>
        <td>
            [AMDGPU] Bundling in SIInsertHardClauses can break physical register liveness
        </td>
    </tr>

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

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

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

<pre>
    With this [test case](https://github.com/user-attachments/files/20105970/r.txt) I get:
```
# After SI Insert Hard Clauses
# Machine code for function clause_implicit_def: IsSSA, NoPHIs, TracksLiveness, NoVRegs

bb.0:
 liveins: $vgpr0, $sgpr32
  BUNDLE implicit-def $vgpr2, implicit-def $vgpr2_lo16, implicit-def $vgpr2_hi16, implicit-def $vgpr3, implicit-def $vgpr3_lo16, implicit-def $vgpr3_hi16, implicit $vgpr0, implicit $sgpr32, implicit $exec, implicit $flat_scr, implicit $vgpr2_vgpr3 {
    S_CLAUSE 1
 SCRATCH_STORE_DWORD_SADDR $vgpr0, $sgpr32, 8, 0, implicit $exec, implicit $flat_scr
    $vgpr2 = IMPLICIT_DEF
    $vgpr3 = IMPLICIT_DEF
 SCRATCH_STORE_DWORDX2_SADDR $vgpr2_vgpr3, $sgpr32, 16, 0, implicit $exec, implicit $flat_scr
  }

# End machine code for function clause_implicit_def.

*** Bad machine code: Using an undefined physical register ***
- function:    clause_implicit_def
- basic block: %bb.0 (0x2a2d18a8)
- instruction: BUNDLE implicit-def $vgpr2, implicit-def $vgpr2_lo16, implicit-def $vgpr2_hi16, implicit-def $vgpr3, implicit-def $vgpr3_lo16, implicit-def $vgpr3_hi16, implicit $vgpr0, implicit $sgpr32, implicit $exec, implicit $flat_scr, implicit $vgpr2_vgpr3
- operand 10: implicit $vgpr2_vgpr3

*** Bad machine code: Using an undefined physical register ***
- function:    clause_implicit_def
- basic block: %bb.0 (0x2a2d18a8)
- instruction: SCRATCH_STORE_DWORDX2_SADDR $vgpr2_vgpr3, $sgpr32, 16, 0, implicit $exec, implicit $flat_scr
- operand 0: $vgpr2_vgpr3
LLVM ERROR: Found 2 machine code errors.
```


</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsVl1v6jgQ_TXmZQRy7ISPhzwEAlskeltBe---RY7tJL4NDrId1P77lUPaXlqK1JeVVlopIshzPHNmNCczzFpVailjFM1RlA5Y66rGxL_ZS9EwMcgb8RL_Uq4CVykLKJo7aR1wZiWKUkSmlXMHi2iCyAqRValc1eYj3uwRWbVWmiFzjvFqL7WziKwKVUv_JjjA0WyCEVmZkXt2iMxgDaV03hNO0Bj3D04QoZAUThrYrWGtrTQObpgRsKhZa6XtIbeMV0pL4I2QUDQGilZzpxoNvMNlan-oFVcuE7JANIG13e0SRBbwo7m_WVv_78Ew_mQ36ii1tPZk-7mVZRcDJ3k-wid-UKujVNrnDYiEx_JgsIcjEtryYCjxGJg__kg3S3gNPBSyeEUTj75oyOomGH9trdTXVvql4apT-snpWU5_HvbJfTiVz5J_PCtq5jLLzSW3JOvCAprMuzoB7LLFJnncLSHwB7vFNnlY3GS7h7vtMkt_3W3TbJek6faLWpMFTP3PJ7pXiZ0iv1ICRFNY395v1ov1Q5YuV-d2etF-gejf5Jxqn-snwqeCf58xmqSnZvQ9v9QC9t_p-9Hr3f6BOTv34Bv60SpdAtPQaiELpaWAQ_ViFWc1GFkq67X45gLhZPgW018HuKg4D8uZVRzyuuFPJ-VEXlKAyBQ_E0ZEMGVTRGYdVmnrTPvm9X8tXdVSV7LmIA3TAgL_lbqC_G92wL8utveC4j--8-9l3Gx-3sJyu73bevOqabUAcq5HaUxj7OjjRMPJQMRUzOiMDWQcTMLxhGA8DgdVLIrJeJpH4TSiYz4RNOQhDinmIc5DFuTBQMUEkwhHeBqMcYDpKJgGs4jiggqaC0oJCrHcM1WP6vq4HzWmHChrWxkHdBZgMqhZLmvbTXtCcsafpBaIJslt-tf9IyLE7wAm9neHeVtaFOJaWWffvTnl6m5b6K9EKcxbLWrfMkrDbn2a0X5E9xMaONOQG8meLrRR3U_bQWvq-Moy4eP3r-HBNL8ld4isutT8QtFnd4zJPwEAAP__mFS9tA">