<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/87497>87497</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[AArch64] Add SimplifyDemandedVectorEltsForTargetNode support for AArch64ISD::DUPLANE nodes
</td>
</tr>
<tr>
<th>Labels</th>
<td>
good first issue,
backend:AArch64
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
RKSimon
</td>
</tr>
</table>
<pre>
Noticed on #86284 - aarch64 is missing SimplifyDemandedVectorElts handling to/from AArch64ISD::DUPLANE nodes
- [ ] Extend performDUPCombine to call SimplifyDemandedVectorElts from AArch64ISD::DUPLANE nodes as we only demand that one lane element.
- [ ] Add AArch64TargetLowering::SimplifyDemandedVectorEltsForTargetNode to handle AArch64ISD::DUPLANE nodes (and AArch64ISD::DUP?) - if we only demand the dup lane index we might be able to remove the node entirely.
- [ ] The hadd-combine.ll tests might be enough, but we could require some additional test coverage.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMU81unDAQfhpzGe2KNbALBw4kBKlqFEVN0ruNZ8Gt7aG2SbJvX8EmitS0SS9w8Dffz_yIEPTgEGtWXLCiTcQcR_L1t6932pJLJKlTfUNR96iAHDCelXte5rABIXw_7nPQAawOQbsB7rSdjD6eWrTCKVTfsY_kr0wMMAqnzIKJxHh39GShaVaCL3ctyxqWNe3D7XVzcwWOFAaWtixtzt8NsOICWNHC1XNEp2BCfyRv24fbS7JSO4RI0AtjPnLwuSaIAE8I5MwJ1EoAcRQRyCEY4RDQoEUXt3_aapR6Zb4XfsB4TU_otRvOIv821ZE_F9yQWkOsbcJPbDJeLt7-AmJZx3gFG9DH90kQ1Dydg2in8HlBWD2MESSCkGY14NHSI67oRQzQRe3RnN5lvh8RRqHUpj-PYGsMRAwxvHGio3kYGb8EOcdFrafZKPD4a9YeIZBFEErpqMmJczX09IheDLhNVJ2pKqtEgvXusOO7gh_KQzLWEkWa7vMd7neizPey2skq51VecikEz2Sia57yPM3TbJcVVV5ss6oqiz0_YsrzfN8XLE_RCm22xjzaLfkh0SHMWJeHvDokRkg0Yb0HzgciBUftQ4QVwzhn_JJxLkX_E51iWfMyhuWlaBNfL6QbOQ-B5anRIYY3maijWS_tteZld_53QcI8TeQjHMl_vCLJ7E09xjiF5ZF3jHeDjuMstz1ZxrvF0ctvM3n6gX1kvFsTBsa7tRG_AwAA__-2-VWp">