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

    <tr>
        <th>Summary</th>
        <td>
            [HLSL] Clang needs to support single subscript operators on matrix type
        </td>
    </tr>

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

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

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

<pre>
    Today clang will error with `error: single subscript expressions are not allowed for matrix values`.
But DXC does a vector load
https://hlsl.godbolt.org/z/PM46xW89v
```hlsl
RWStructuredBuffer<int> In;
RWStructuredBuffer<int> Out;
cbuffer Constants {
    uint row;
 uint col;
};
[numthreads(1, 1, 1)]
void CSMain(uint GI : SV_GroupIndex) {
    int2x3 M = int2x3(0, 1, 2, 
                      3, 4, 5);
 Out[0] = M[row].x;
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyEU11vmzAU_TWXl6tGxg6GPPCQhKWr1GjTMq17mww2iSfHRv5I0v76CZKunfowhC4cfDiXczkWIei9VaqGYgVFk4kUD87XvfAvzpqsdfK5_u6keMbOCLvHszYGlffO41nHAwInEwK2xKDt3igMqQ2d10NEdRm8CkE7G1B4hdZFFMa4s5LYO49HEb2-4EmYpAJwMgOyXKWIzc81SqcCCjypLjqPxgkJZHmIcQjAlkA3QDcHE8xs72TrTJw5vwe6eQG6-bqd88tTtTgBWQIn13PkAll-e9pFn7qYvJKr1PfKA1trG4F9wgcLbPUfzpcUr6SunVZw7WyIwsaAUI7PERGTthG9O1-ZV9g5c4VQNrebYmXTMR68EjIArXKga3wtCygaIMuT0xLXu63QFmg1Cd0_4Djr3Y9f996l4cFKdQG6eNde20gvDLcIrLkBoBX5K0_HcuN-PNi4Oh9LMX7G1cJou1gRKJpJdAvFavRXNLPLm6t3085kzeSCLUSm6rzkNF_MecWyQ92VJOeiymVPSdt1tOMto4ue05yUjMs-0zUltMhzwvKK5ZTN5mVJSs6pqoqeF52AOVFHoc3MmNNx_OuZDiGpOuecEp4Z0SoTpjRT-vlx9wiUjrn29ci_a9M-wJwYHWJ4U4g6mmkHTC8UDa6nrFulZMDoMKRhcD5-DLgblBfR-YDOvqY5Pg8qS97U_4Z1r-MhtbPOHYFuxs63y93g3W_VRaCbyUgAurl5OdX0TwAAAP__idwZRA">