This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][GlobalISel] Add AArch64::G_DUPLANE[X] opcodes for lane duplicates.
ClosedPublic

Authored by aemerson on Nov 4 2020, 9:26 PM.

Details

Summary

These were previously handled by pattern matching shuffles in the selector, but adding a new opcode and making it equivalent to the AArch64duplane SDAG node allows us to select more patterns, like lane indexed FMLAs (patch adding a test for that will be committed later).

The pattern matching code has been simply moved to postlegalize lowering.

Diff Detail

Event Timeline

aemerson created this revision.Nov 4 2020, 9:26 PM
aemerson requested review of this revision.Nov 4 2020, 9:26 PM
paquette accepted this revision.Nov 5 2020, 9:22 AM

LGTM

This revision is now accepted and ready to land.Nov 5 2020, 9:22 AM
This revision was landed with ongoing or failed builds.Nov 5 2020, 11:18 AM
This revision was automatically updated to reflect the committed changes.
llvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-lowering-shuffle-duplane.mir