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

    <tr>
        <th>Summary</th>
        <td>
            MachineVerifier does not diagnose REG_SEQUENCE with overlapping input operands
        </td>
    </tr>

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

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

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

<pre>
    The verifier does not reject cases where a reg_sequence specifies multiple values for a subregister index

```
# RUN: not --crash llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -run-pass=none -o /dev/null %s 2>&1 | FileCheck %s

# Inputs to a reg sequence should be unique and not set overlapping
# inputs

---
name: overlapping_reg_sequence_inputs
tracksRegLiveness: true
body: |
  bb.0:
    %0:vgpr_32 = IMPLICIT_DEF
    %1:vgpr_32 = IMPLICIT_DEF

 %2:vreg_64 = REG_SEQUENCE %0, %subreg.sub0, %1, %subreg.sub0

 %3:vreg_64 = IMPLICIT_DEF
    %4:vreg_128 = REG_SEQUENCE %0, %subreg.sub0_sub1, %1, %subreg.sub0

...
```

This should error on both of these reg_sequences. In %2, the same subregister index is repeated twice so the input to use for sub0 is ambiguous.

%4 should also be an error, %subreg.sub0 overlaps with %subreg.sub0 
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyMVN9v2zYQ_mvol4MEirLk-kEPmn8MAdpiy9K9GhR1lrhSpMojne6_HyjHSZoU2wAaFu8-3n1395GSSA8WsWHVL6zar2QMo_ON9IR2WnWu_7t5GBEu6PVZo4feIYF1ATz-hSqAkoQEjyN6BAkehxPht4hWIdCMKh0imKIJejYIF2kiEpydBwkUO4-DpoAetO3xO-NtWjV_WrxlooT7L59Z2S45s0x5SSMYoyCbgk8xWbmXUz8om8mpT7-RJGSTmiMr98P5-5ZzyHy02SyJWLm3ziJkDpg49nhh4mijMcBERSBYeWCiLoBtdnDUBncjqq-L74maKOHOzjEQBHctF17KHV00PXQI0epvEUHafmFNGMBd0Bs5z9oOT3H0EucaN8syxlsrJ0yVvsKeXjf09HwkeKm-0j0OH_UFLaa6Wgg-IuNtGlnass2O8Rag63LOynb5hlRL2l2G2Z9KAazcw92n3z7e7e4eTvvD8QVV_DsqAZmoREIljvV6Qd0ffj39cfj9y-Hz7nDNJXZL_5ZR5xS7m6X4iec5bPkm7M8prm-oQnz4v9lPFLvivyjkef5Wh7x9GDXdZozeOw_OQufCCO4MYUTCH9RPOdzZa4vELvmB5ITvNQ-awOOMMmAP4VEnIbkFv0w76SwSLjcmEUxwOXV6iC5SflNltb4xk4ZckqC0V5LvS7zJi-BRh_Gtc9U3Zb8tt3KFTbFZF6Larj_Uq7E5o-wF3ypZY7kpNv26UzWqTcd5sS3PCle6EVxUvOR1URSFqPN6W1S9qM79pq5VhyVbc5ykNrkxlyl3flhpoohNUXK-qVZGdmhoeYaESBBWtsr1OKBlIjXxxexxkMY49WyXSuEcKNP2Io3uk73ar3yT8FkXB2JrbjQFeskddDDYfJJq1Bb_fPe69VoO1hH-qKmlY6-u59OM3Ixe2p5W0ZtmDGFO95GJIxPHQYcxdrlyExPHhf71L5u9S-8nE8elC8TE8akRl0b8EwAA__-rjsEg">