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

    <tr>
        <th>Summary</th>
        <td>
            Use not jointly dominated by defs during scheduling with overlapping register tuple defs
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            llvm:codegen,
            llvm:regalloc
      </td>
    </tr>

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

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

<pre>
    The scheduler hits an error in this testcase:

```
Use of $vgpr4_vgpr5 does not have a corresponding definition on every path:
64r INLINEASM &"; def $0, $1, $2, $3" [attdialect], $0:[regdef], implicit-def $vgpr4, $1:[regdef], implicit-def $vgpr5, $2:[regdef], implicit-def $vgpr6, $3:[regdef], implicit-def $vgpr7, implicit-def $vgpr4_vgpr5_vgpr6_vgpr7, implicit $vgpr4_vgpr5, implicit $vgpr4_vgpr5_vgpr6, implicit $vgpr5_vgpr6_vgpr7
LLVM ERROR: Use not jointly dominated by defs.
```


```
# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx940 -run-pass=machine-scheduler -o - %s

---
name: scheduler_use_not_jointly_dominated_by_defs_tuple
tracksRegLiveness: true
machineFunctionInfo:
  maxKernArgAlign: 1
  frameOffsetReg: '$sgpr33'
  stackPtrOffsetReg: '$sgpr32'
  occupancy:       8
 sgprForEXECCopy: '$sgpr100_sgpr101'
body:             |
  bb.0:
 liveins: $sgpr0, $sgpr1

    undef %0.sub1:sgpr_64 = COPY $sgpr1
 %0.sub0:sgpr_64 = COPY $sgpr0
    %1:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
    INLINEASM &"; def $0, $1, $2, $3", 0 /* attdialect */, 10 /* regdef */, implicit-def $vgpr4, 10 /* regdef */, implicit-def $vgpr5, 10 /* regdef */, implicit-def $vgpr6, 10 /* regdef */, implicit-def $vgpr7, implicit-def $vgpr4_vgpr5_vgpr6_vgpr7, implicit $vgpr4_vgpr5, implicit $vgpr4_vgpr5_vgpr6, implicit $vgpr5_vgpr6_vgpr7
    %2:vreg_128_align2 = COPY killed $vgpr4_vgpr5_vgpr6_vgpr7
    undef %3.sub0:vreg_128_align2 = COPY %2.sub3
    %3.sub1:vreg_128_align2 = COPY %2.sub2
 %3.sub2:vreg_128_align2 = COPY %2.sub1
    %3.sub3:vreg_128_align2 = COPY %2.sub0
    GLOBAL_STORE_DWORDX4_SADDR %1, %3, %0, 0, 0, implicit $exec :: (store (s128), align 8, addrspace 1)
    SI_RETURN

...
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMVs2SmzgQfhr50oVLSOCfAwdmbG9NrTNOeZJs9kTJ0AYlIFGS8MZvvyVg7MSpSWbntBRGcvfXP0JftxDWylIhJiS-I_FqIjpXaZMIY1E1k4MuzsmHCsHmFRZdjQYq6SwIBWiMNiAVuEpacGhdLiwSnhLa3zM63jT9aBH0EQiLTmVrosw_Yyg0WlDaQSVOCAJybQzaVqtCqhIKPEolndQKtAI8oTlDK1w1BJhFBh4etw-P6_TpHRA2I4wRfuetfBhK2L0fw3Fk48gJY0DiO-FcIUWNuSPxatRR7zm-M1gWeBzFsmlrmUsXjH779C--X4ePLzm8Dj-75Po6_PzFRIf33D9n2U_QG9gvVNklrVvAj85put1-egfr_X63JzwFv-1-f79oqVx9hkI3UgmHBRzOfqfs9IYnPzOHMA77j4_eW13nEDTOyLZGwleiKcpcBaIp_K-yAoImbzvCV-Xx2zKiEJhOBa2wlvBVI_JKKgyuLA40BEBYbIeYQRAQmirReAJfyZ51FjOlXTYuIbssITucM7-EzHU-H5o6I_Kvdo_lVp5QoQ-bgjOd143hN53KPaEf1FEPNAZoxLc_0ajUlGktS-WNwl5xNKLB3fFo0e2x9HLC5oRFtmwN537uUdaJ_Ot7Z14CsmegzvOuFSo_e8BwLbzCozbarD-v7-91e_7RPKQ0G8Zw8OPbwdXBcJH5fR_hcJjScVW1PKFUdnDWe3ouyN7b8Mq9bacGvsZ0aruDrygPyGYREL6C-937v783ugDpL4B0dE1Y7P15Zmac9bBP2bvdp-yOsww5A3pLaPyG-Wj8xtbipxQI2xCWwrXHAGFpL7yH8KIe6vo71Yu95j_axG-wmb3B5v_Ud8YN9y32ZLDMQrbIhK8nduXHV1nXWPwqyRtO8meqvejSh_Qgfk2BPxP5t0ZsZDQf_rzCIrwJw19j9FwPf2x3d-k2e_qw26-z1V-7_epzlD2lq9V-KJWexTEfx57l18dtmYAv9L66F9Zpg_0kZAvClh7e5wKLfloUxrYiRwi9csjl6SHbrz983D8OnWA6_eEgmBQJL5Z8KSaYhHM-DyljbDGpEpbTo8A4PiyL-SJih3CGc85wuTwu-WyOi4lMGGUxDcM5XTAeLaaciagIo9kcQ-QFn5OIYiNkPa3rUzPVppxIaztMQsY5DSe1OGBt-y8hxjyE8DTXBZaohuq-ig2Woq517uXxamISLw8OXWlJRGtpnb3GcNLVmPz2NISiM_7LZzx9_PQf6SrQJzS1aFsvMFhK69BAf-z0ZpPO1EnlXOv7bV-vm1K6qjtMc90QtukTHoagNfqL_-hhm37dlrDNuPRTwv4NAAD__5J5_4E">