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

    <tr>
        <th>Summary</th>
        <td>
            [HLSL] Root Signature semantic analysis - Register Validations
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            HLSL
      </td>
    </tr>

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

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

<pre>
    This issue handles the additional semantic analysis of the parsed `HLSLRootSignature` attribute. This includes generating applicable diagnostics.

The relevant validations that this issue must implement are:
- [ ] Validate that resource ranges don't overlap
- [ ] Ensure that registers are only bound once
- [ ] Ensure that the correct register type matches the desriptor range type

AC:
- [ ] Update `ParseHLSLRootSignature` defined in #119011 to implement semantic validation of `HLSLRootSignature`
- [ ] Update `handleHLSLRootSignature` to implement semantic validation of `HLSLRootSignature` in `SemaHLSL.cpp`
- [ ] Add thorough testing of correct diagnostics into `clang/unittests/Sema/ParseHLSLRootSignatureTest.cpp`
- [ ] Add tests for some samples to ensure diagnostics are displayed correctly from HLSL input in `AST/HLSL/RootSignatures-AST.hlsl`
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJykVM2OozgQfhpzKSUyhtDLgUNme9Ee5rCaZOdu7Ap4ZWzkKiLl7VcmmU7PqPs0pyjGX30_5SpN5MaA2InDF6GUCwN6Z4RS4vBa6JWnmLrHYTFEe-vOkyNwRCvCpIP1SMATgrbWsYtBeyCcdWBnQAftb-QI4mW7s-hEaEE08u-vp6_fYuSTG4PmNaFoJGjm5IaVcQ93kmD8apFgxIBJswsj6GXxzujBI1inxxCJnaG9kEchj-cJIaHHqw4MV-2d1VlSFqgZ-Cl8XonBzYvHGQODTiiqXGAH4vAFxOEVvt_ReIcmpLgmg5B0GJHAxiDUC0O8YvJ6-Qn5V6A1veFGR4yJMgXE4G8wxDVYiMHgp6gclYkpoXlWAL4tCLNmMz0Ct0jJLRzTXdR24R7D8c9f3fy7bF5EI__JLfgwfYsXF9CCCyBUVZatLEvg-C6mt74-o82d_aSdnwi4v5kPFfwG2aa6kSecdf68N8vyq4SjtZBfc1zHCRhpe07x8pb0u-cELnDM9YzXYRSqX4PjDCGh-swhVP9xkGck_pQ8F4BLTEBxRiCdvVJ2jffmv1egt_-0eH1D-0Ojv8ElxRkyLbiwrPzwfTydherzsVD9T4Jodzyd95MnLxpZ2K6ybdXqArvypS5VKdu2LqautM3Lpb4MVjYvVWmHAYfSNI1UqmpbiXXhOiXVQVbyoMq6Kut9VVdmsPaPEpVGe2lFLXHWzu-9v877mMZim7SuVG1bq8LrAT09dsxd57ZgUpfv74Z1JFFL74jpWYEd-20vbYDDK2Rn8Gbtgz2zg28_5uX7c_yLNfluYl4oz4XqhepHx9M67E2cheoz4eNnt6T4HxoWqt_054Y_LFw79X8AAAD__7lfvFM">