This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][GlobalISel] Mark v16s8 <- v8s8, v8s8 G_CONCAT_VECTOR as legal
ClosedPublic

Authored by paquette on Aug 4 2021, 4:37 PM.

Details

Summary

G_CONCAT_VECTORS shows up from time to time when legalizing other instructions.

We actually import patterns for the v16s8 <- v8s8, v8s8 case so marking it as legal gives us selection for free.

Diff Detail

Event Timeline

paquette created this revision.Aug 4 2021, 4:37 PM
paquette requested review of this revision.Aug 4 2021, 4:37 PM
Herald added a project: Restricted Project. · View Herald TranscriptAug 4 2021, 4:37 PM
aemerson accepted this revision.Aug 4 2021, 10:39 PM
aemerson added inline comments.
llvm/test/CodeGen/AArch64/GlobalISel/select-concat-vectors.mir
86–87

Can we have real inputs instead of undef? In case we ever optimize this to undef.

This revision is now accepted and ready to land.Aug 4 2021, 10:39 PM
paquette updated this revision to Diff 364513.Aug 5 2021, 9:39 AM

Add a selection testcase with real inputs.

Looks like there's a specific pattern for undef and a specific pattern for real inputs, so let's just test both.

aemerson accepted this revision.Aug 5 2021, 9:41 AM
This revision was landed with ongoing or failed builds.Aug 5 2021, 9:41 AM
This revision was automatically updated to reflect the committed changes.