Page MenuHomePhabricator

GlobalISel: Artifact combine build-vector and unmerges into concat-vector
Needs ReviewPublic

Authored by Petar.Avramovic on Sep 3 2021, 9:22 AM.

Details

Summary

Recognize when sub-vectors have been split to elements which are used to
build large vector.
This happens when instructions have different vector sizes available.
For example a few arithmetic instruction are required to process all
elements of larger vector can be stored using one instruction.

Diff Detail

Event Timeline

Petar.Avramovic created this revision.Sep 3 2021, 9:22 AM
Petar.Avramovic requested review of this revision.Sep 3 2021, 9:22 AM
Herald added a project: Restricted Project. · View Herald TranscriptSep 3 2021, 9:22 AM
Petar.Avramovic retitled this revision from [GlobalISel] Build_vector artifact combine into concat_vector to GlobalISel: Artifact combine build-vector and unmerges into concat-vector.
Petar.Avramovic edited the summary of this revision. (Show Details)
arsenm added inline comments.Tue, Jan 18, 10:11 AM
llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
1163

I'm having trouble applying this, UnmergeSrcTy seems to not exist

Petar.Avramovic edited the summary of this revision. (Show Details)

There should be no reason to look through copies here, switch to getVRegDef.

llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
1163

I added missing precommit for the stack of build vector patches. UnmergeSrcTy is from D109240