<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/139013>139013</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[DirectX] Pointer type bitcast must be have same size.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:DirectX
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
farzonl
</td>
</tr>
</table>
<pre>
DXILPrepare.cpp adds NoOp bitcasts that are causing problems in the validator
https://github.com/llvm/llvm-project/blob/c7f350f1428df14e3114977b830ab4dcd3008983/llvm/lib/Target/DirectX/DXILPrepare.cpp#L216-L245
It is changing
```llvm
store float 2.000000e+00, ptr addrspace(3) getelementptr (float, ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 1), align 4
```
to:
```llvm
%2 = bitcast ptr addrspace(3) getelementptr (float, ptr addrspace(3) @arrayofVecData.scalarized.1dim, i32 1) to ptr addrspace(3)
store float 2.000000e+00, ptr addrspace(3) %2, align 4
```
commenting out these no ops resolves all 848 ptr bitcast errors.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8U01r3DAU_DXyRcTIz98HHzZdFgKhzaGUXJ-kt7Za2TKSvJD8-iKnm6a0ObSHGoOF7RnNjN5gCGZciAZW37L6mOEWJ-eHM_pnt9hMOv00HB_v7h88regpV-vKUevAP7pPK5cmKgwx8Dhh5OiJK9yCWUa-eictzYGbhceJ-AWt0RidZ-LAxGGKcQ2sPDA4MTiNJk6bzJWbGZysvVwfN6t3X0lFBidpnWRwUu25rMW5qKDT56Kisiiqvm1lVwqUlVa6FKLru_INj0m4z-hHSjxH40nFx7T61RWD8h6K5uYeqvpF413kJnA14TKaZUzvGvFy79TiEKLzxM_WYeSQi_0iBrdCMPjA1-hTUj6sqIhB0tTzkSJZmmmJ6TODbke_-zurBHqPT-78hdQRI-ZBoUVvnknnhTZzQpoSeMGgT2u0Zlx49VYsE4foUtS_G2BQA2fl8XqO_18zj-6PLP-WbvLzfgpMHJSbk480oG6LaTAD8cVxtwbuKTh7ocDRWt5V3b7FNRjy3vmQZ3oodV_2mNFQtFXTtE3b9Nk0tFCRbAQUPTRKC9FC21e66rUuahRSZGYAAbWoRSfKuoc-bwllDYVuO9n2BShWCZrR2DydTe78mJkQNhqKshdFmVmUZMPeUgCJ6hstmpWH13GGVF4_7K2R2xhYJawJMfykiybaveZXTH3kD84skTyPTyu9ep23ELkkPuGFeMCZeDDPlGebt8Nf93Y3ERicfvi4DPA9AAD__16BYyg">