This is an archive of the discontinued LLVM Phabricator instance.

[DAG] Allow merging of stores of vector loads
ClosedPublic

Authored by niravd on Aug 1 2017, 9:17 AM.

Details

Summary

Remove restriction disallowing merging of stores vector loads into larger store of larger vector load.

Diff Detail

Repository
rL LLVM

Event Timeline

niravd created this revision.Aug 1 2017, 9:17 AM

This is factored from D34569

niravd retitled this revision from [DAG} Allow merging of stores of vector loads to [DAG] Allow merging of stores of vector loads.Aug 1 2017, 9:19 AM
RKSimon added inline comments.Aug 1 2017, 10:28 AM
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
13008 ↗(On Diff #109137)

Pull out

unsigned NumSrcMemElts = MemVT.isVector() ? MemVT.getVectorNumElements() : 1;
unsigned Elts = (i + 1) * NumSrcMemElts;

as you have a second MemVT.getVectorNumElements() call later on.

13080 ↗(On Diff #109137)

unsigned Elts = NumElem * NumSrcMemElts;

niravd updated this revision to Diff 109163.Aug 1 2017, 11:22 AM
niravd edited the summary of this revision. (Show Details)

Fold away type modification into landed NFC patch

RKSimon accepted this revision.Aug 3 2017, 8:25 AM

LGTM - thanks

This revision is now accepted and ready to land.Aug 3 2017, 8:25 AM
This revision was automatically updated to reflect the committed changes.