<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/153159>153159</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[AArch64] AArch64TargetLowering::computeKnownBitsForTargetNode - add support for AArch64ISD::MOV/MVN constants
</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>
Followup to #148596
AArch64TargetLowering::computeKnownBitsForTargetNode is still missing for the following constant nodes:
```
case AArch64ISD::MOVIedit:
case AArch64ISD::MOVImsl:
case AArch64ISD::MVNIshift:
case AArch64ISD::MVNImsl:
```
As its tricky to get codegen folds to consistently use these, it might be easiest to add test coverage to AArch64SelectionDAGTest.cpp (there are already some computeKnownBits tests in there) - adding unit test coverage for the existing AArch64ISD::MOVI and AArch64ISD::MOVIshift handling would be useful there as well.
CC @aabhinavg1
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycU9GOozgQ_Brz0poIDGSGBx7YRJxGe5uTblZ5N7gB3xobuZvk8vcnk8ztaTXak1YCgezuruoqlSIyo0OsRflJlMdErTz5UP_5-c3M3iWd17e69db667oAexAyz4qXstqLtBFp0zShn_bFVxVG5N_9FYNxo8gbkTe9n5eV8bPzV_fJMLU-3MtOXiMYAmJjLcyGyLgRBh-AJ4RhA4snvXfEyjE4r5Hi0A1S7NPHkzYAvSKEB4vXt-Md-ssf51fUhu89Pymayf685nx6pckM_zPpfPo-6b_0okAEhgk4mP7bLQo4IkPvNY7o4q6a4mFc1RCjY3uDlTAqQSjkAQzDbMaJoUNARQaJY4PSGjj-9_6CQY0YDx-83tBiz8a7Y_PbVyTe9csCQr7whAFBxdcGVPoG5GeEH33a5hIYB1uDkBU8RbxoyeoM_4D77hv-bYhjzUc6g3L6w4tNXJiU0zb2Xv1qdVx1JRxWCw_KBFe0dndX9HAAUaRKdZNx6jJmia5zXeWVSrDOnsuiquTzPk2mutJ5NXSZ3D_r9KXTepBVX0glUUrcd0WXmFqmskxfMplWZSXTXTmUqKpn1OW-H7JhEEWKszJ2Z-1l3vkwJoZoxTor86ysEqs6tLQlR8rRew2DCcSwFQkphTwIKTvVf0OnRf4elnhTHpNQx6lP3TqSKFJriOk7Dhu2Wybfe8oj_HLWNvuA1mXxgTfDPrBCyPbL-fRv6ChZg60n5mVLnmyFbEfD09rtej8L2Uaqj8_TEvxf2LOQ7bY6Cdk-JLrU8p8AAAD__y7VapQ">