Page MenuHomePhabricator

[ARM] Combines for VMOVN

Authored by dmgreen on Apr 8 2020, 4:45 AM.



This adds two combines for VMOVN, one to fold VMOVN[tb](c, VQMOVNb(a, b)) => VQMOVN[tb](c, b), the other to perform demand bits analysis on the lanes of a VMOVN. We know that only the bottom lanes of the second operand and the top or bottom lanes of the Qd operand are needed in the result, depending on if the VMOVN is bottom or top.

Diff Detail

Event Timeline

dmgreen created this revision.Apr 8 2020, 4:45 AM
samparker added inline comments.Apr 14 2020, 3:02 AM

Would it be possible to use APInt::getSplat() instead? This is looking a bit cryptic.

ctetreau added inline comments.Apr 14 2020, 1:37 PM

getVectorNumElements is going away soon. Please do the cast.

See: D77278

efriedma added inline comments.

This is EVT::getVectorNumElements(); that's not going away, and there is no such cast.

ctetreau marked an inline comment as done.Apr 14 2020, 3:26 PM
ctetreau added inline comments.

Ahh, EVT... My old nemesis...

Please disregard.

dmgreen updated this revision to Diff 260864.Apr 29 2020, 1:57 AM

Updated to use Splat's

Herald added a project: Restricted Project. · View Herald TranscriptApr 29 2020, 1:57 AM
This revision is now accepted and ready to land.Thu, May 14, 6:25 AM
This revision was automatically updated to reflect the committed changes.