This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][GlobalISel] Implement another combine for shufflevector->AArch64 G_EXT.
ClosedPublic

Authored by aemerson on Sep 29 2022, 9:28 AM.

Details

Summary

This is a port of an existing optimization in AArch64 ISelLowering, handling a case when the same input vector can be used for both ext inputs.

Diff Detail

Event Timeline

aemerson created this revision.Sep 29 2022, 9:28 AM
Herald added a project: Restricted Project. · View Herald TranscriptSep 29 2022, 9:28 AM
aemerson requested review of this revision.Sep 29 2022, 9:28 AM
paquette added inline comments.Sep 29 2022, 9:51 AM
llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
376

also document Imm?

llvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-lowering-ext.mir
271

negative testcases?

aemerson updated this revision to Diff 464035.Sep 29 2022, 2:37 PM

Remove unnecessary Imm parameter and add more tests.

Also fix a uzp test that was written with invalid MIR which triggered a crash with this change.

This revision is now accepted and ready to land.Sep 29 2022, 2:40 PM
This revision was landed with ongoing or failed builds.Sep 29 2022, 2:53 PM
This revision was automatically updated to reflect the committed changes.