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

    <tr>
        <th>Summary</th>
        <td>
            [DXIL][TableGen] Define DXIL operator types instead of relying on LLVM Types
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    Should we define an enum of our own set of types rather than using `CodeGen/ValueTypes.td`? Types like `dx.handle` and `dx.ResRet.f32` and the like are going to be annoying to represent using MVTs, and there's actually a pretty limited set of legal types in DXIL operations.

_Originally posted by @bogner in https://github.com/llvm/llvm-project/pull/99055#pullrequestreview-2180755751_

## Acceptance Criteria
Replace all uses of `llvm_*_ty` in `DXIL.td` with types specifically defined to represent DXIL operator types.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUk0Fv8zYMhn-NfCE-w6asODn4kDbwMKDFgK4odgtki7HVKZInyc387wfZCdYBu3yXBKREis_rlzIEPViihoknJk6ZnOPofNON0kt1k59L1jm1NL-PbjYKbgSKLtoSSAtk5yu4C7jZg7tZCBRTGJeJAngZR_IQR2lhDtoOwHbFs1P0C1mG7Yc0M72nm3lUbFcw3sIagtF_Urqr_s5HaZUhtitAWnXPvVF4o5hfOD7ycaStSHqCwaWnooMujWjdcg89TZ4C2Xgf5vXjPTB8fjTwxLAOIPs4S2MWkDB5inEBo686knqwGRqkuRNqC6c_fn0BN5GXUTsbclacWHHcfs-_eT1ou7abXEhNugVYVXRusORT-RjjFBg_MmwZtoOO49zlvbsybI35evz9mLz7pD4ybKfZGIbt4VAIwZCn0NNfM4Xo6UvT7QeW-6IWohbl-fssDDlDDse-pylK2xM8ex3Ja7mdv9FkZE8gjYE5UEiobFek188Mj-e4JLG1TcnEvH0zuOk43sUIE_X6ovsVd7OI-q_u37RyfqvKM9VwdeAHmVFT1sjFDgXHbGwq0ZGoyrqWdcmx7A-7_a6kupR8XxZVvc90gwVWxb7kpUAsMe_7GtWeV1VXc8HLA6sKukpt8gSROz9kOoSZmrLgeNhnRnZkwmp6REs3WE8ZYtoB36y6d_MQWFUYHWL4t03U0azbkoCYODHx9C47s_panOC0rcf_0IK2IZJUSVxPZnWms_Dy8vG6WT-bvWl-2hPr4IFheyf7avCfAAAA__8ywUA_">