<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/135425>135425</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[SPIRV][DirectX][HLSL] Move `cross` implementation to hlsl_intrinsics.h
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:DirectX,
HLSL
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
farzonl
</td>
</tr>
</table>
<pre>
1. Remove `Intrinsic::dx_cross`
2. Remove `BI__builtin_hlsl_cross`
3. Remove `BI__builtin_hlsl_cross` Sema checks from `clang/lib/Sema/SemaHLSL.cpp`
4. Remove `getCrossIntrinsic` from `clang/lib/CodeGen/CGHLSLRuntime.h`
5. Remove emitting intrinsic from `clang/lib/CodeGen/CGBuiltin.cpp`
6. Remove `expandCrossIntrinsic` in `llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp`
7. Implement cross algorithmicly in `hlsl_intrinsics.h`
8. add a pattern match for cross as an InstCombine in `llvm/lib/Target/SPIRV/SPIRVPreLegalizerCombiner.cpp` to be able to still emit the cross GL extension.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyMk09vnDAQxT-NuVhFYAxkDxz2TzddaStFSVXltrJhFtwYG9lDlOTTV2bZP1LUKieMGH7z3jyP8F61BqAi-Yrkm0iM2FlXHYX7sEZH0jbvVRrTR-jtK1BSJDuDThmvapItSbZs3g61s96TIiHJkt1WrnaHgxyVRmUOnfb6tjD7UiF9gl7QuoP6xdOjs32orrUwLWFbrSRh21AxP37sn_ZxPQynDvy2Qwu4Dsyr-CL5B3BtG7gHE073gfg4GlQ9xN0Jm1-w0CtEZVqqztAvEFcnm1eZxa1MeBuEaT4rVSZ81fq1v0B_CdcCErbdKAc1PofT825_-e17QHllb1qVMaW7ftDQg0E6zZgK3VqnsOtVrd_nPlMEF1P-7PwuplQ0DRV0EIjgDO0F1h09WneGeSoM3RmPa9tLZeC_wp8edo-_z88HB3tohVYf4Oaf3aycoqUSqJAawtGj0noaPsUO5s73ewpvCCfDUVNlzSJbiAiqtOScJ0m6KKKuWiQ5K0rGj1JmZQKZLEspBb_jaSHL8phHqmIJyxOepukiK7IiloIznpe1EHDHRcMIT6AXSsfBUmxdGynvR6jSLOcsj7SQoP20SoxJUb-AaUi2vETECFsTxsK1Ci_5JnJVIH2TY-sJT7Ty6K9sVKinxTyNKt-QfHVmTS8TKN_Qn_P9ueyNOscsUFkTxvYp1Gh0uuoQBx8WmW0J27YKu1HGtZ3SmkML8gZn_0AdQpvsesK2s-PXiv0NAAD__3JAYjI">