<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/131734>131734</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
AMDGPU should handle SimplifyDemandedVectorElts for more trivial intrinsics
</td>
</tr>
<tr>
<th>Labels</th>
<td>
good first issue,
backend:AMDGPU,
missed-optimization
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
arsenm
</td>
</tr>
</table>
<pre>
As a follow up to https://github.com/llvm/llvm-project/pull/128647, more intrinsics should be handled in SimplifyDemandedVectorElts.
This includes: Intrinsic::amdgcn_readlane, Intrinsic::amdgcn_update_dpp, Intrinsic::amdgcn_permlane16, Intrinsic::amdgcn_permlanex16, Intrinsic::amdgcn_permlane64 and Intrinsic::amdgcn_mov_dpp8
This is mostly a matter of adding the intrinsics to the switch, some boilerplate to keep the other immediate operands as they are, and adding tests similar to the ones added in #128647
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUk0mP2zAMhX-NfCEmsGUndg4-pJOm6KFAgS7XgSzRMTtaDFHONP31hRKknQKdLicDfh_IJ_JRMdPRI_Zi_Uqs94Va0hRiryKjd8UQzLnfMSgYg7XhCZYZUoAppZlFvRPyIOThSGlahpUOTsiDtafb526O4QvqJORhXqwV8lDJbtO0Qt6DCxGBfIrkmTQDT2GxBgaESXlj0QB5-EButjSe9-iUN2g-o04hvraJVyDKnSh3HydiIK_tYjAbgre3ktldvVPOHLV_iKiMVR5z598Ty2xUwgczzy8zM0aXq1SbvzNf_wXaNKC8eQFy4ZTtdM8fyuACJ3sGBU6lhBHCCMoY8kdI0y8DTeHyh58o6Slb4eAQhkAW42xVwkw8Is4XLKQJI5BzaChrYcaovGFQnPUzqHgZXrZ764ecGJgcWRVv7YJHzsB1f0LW141DYfrabOutKrCv2kbKtq2qtph6qWvTadRd1bVVo9sROyxVpQYccNzKpqBelnJd1lVXrtfVul2V5TBuOl1tdbkZxk0jmhKdIrvKkVuFeCyIecG-qqu2bgqrBrR8SbeUxxAMjBQ5wQUSUgp5L6QclH5Eb0S9273bv3n_6YfgiBnNXZgTOfqmEgWftfW-iP0l48NyZNGUljjxTwuJksX-WuuW7Wuw_xBqGEO8HkaKdCJln-2zWKLt__vsLo_kfHjXYZx6-T0AAP__mdNT9A">