<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/124776>124776</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
AMDGPU should make v2i32 and/or/xor legal
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:AMDGPU,
missed-optimization
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
arsenm
</td>
</tr>
</table>
<pre>
We currently failed to make use of s_or_b64/s_and_b64/s_xor_b64 in the uniform cases, and scalarize into pairs of the 32-bit binary operators. Making them legal is simple (starter patch attached), but avoiding all the regressions is more difficult.
[0001-AMDGPU-Make-v2i32-and-or-xor-legal.patch](https://github.com/user-attachments/files/18576211/0001-AMDGPU-Make-v2i32-and-or-xor-legal.patch)
We need additional combiner work to avoid the regressions
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUkk-LpEgQxT9NegksNNRSDx6qu3BPDXtZ-tiEZljGVppZZKa13f3pF3XZOQwMDAgm-ef34kU8CkFulrlT1YuqrgmtcXa-Ix_YLsng9Ff3zjCu3rON5gsmEsMaooOF7gxrYHAThA_nP4ZzqbAPH2T1_-vPYx_EQpwZViuT8wuMFDgofAWyGsJIhrx8M4iNDh4kPmzQ7UGB6SARBrHkv8A92FN0Ppzgje5ib9udBQzfyIAECLI8DIPCJkTykT08KI4zUIw0zqwVtpvosEagpxO9EciYXcnzzXMI4mzYUIvzDFqmScbVxJPKLttXvWRZlqeXt-sff_6VvtGd0ydKgSlZnTqffjqf7tWcdmFVXRU2c4yPoIqLwl5hf5M4r8NpdIvCfg3s06O6hW0MCvtJzNaaPm-q-ox5rrD_PU1sj2LfGSyzBtJaojhLBka3DGLZwz_O37cZ7l34yX6iu0K3RUsJd3ldNFmTlVWZzB3mWLdl09Q4tGNNWDQNFmdshrpsCKc2kQ4zrLIcm_yc1UV5moYaR2yqPCtbrPJGlRkvJOZkzHM5OX9LJISVuxzLuj4nhgY2Yc8i4kDjna1WxeXwrhAVvirERUJgnbpHlEW-aTO3nVXXxHcbNx3WW1BlZiTE8EMpSjTcHSwIs1uNPkK8t3OLosLeeYX9p_NHqJLVm-4X89vY__3Sh3d_8xgV9rulfYaHq2eH_wYAAP__xZkbzw">