This is an archive of the discontinued LLVM Phabricator instance.

[X86][AVX] Add shuffle masking support for EltsFromConsecutiveLoads
ClosedPublic

Authored by RKSimon on Feb 16 2016, 10:20 AM.

Details

Summary

Add support for the case where we have a consecutive load (which must include the first + last elements) with a mixture of undef/zero elements. We load the vector and then apply a shuffle to clear the zero'd elements.

Diff Detail

Repository
rL LLVM

Event Timeline

RKSimon updated this revision to Diff 48080.Feb 16 2016, 10:20 AM
RKSimon retitled this revision from to [X86][AVX] Add shuffle masking support for EltsFromConsecutiveLoads.
RKSimon updated this object.
RKSimon added reviewers: mkuper, spatel, andreadb.
RKSimon set the repository for this revision to rL LLVM.
RKSimon added a subscriber: llvm-commits.
RKSimon updated this revision to Diff 48194.Feb 17 2016, 8:21 AM

rebased to latest

spatel accepted this revision.Feb 21 2016, 10:29 AM
spatel edited edge metadata.

LGTM. See inline for a couple of code comment additions.

lib/Target/X86/X86ISelLowering.cpp
5589 ↗(On Diff #48194)

Update comment to say something like: "If we have zero elts, we'll shuffle those with the vector load." ?

5647 ↗(On Diff #48194)

Could use a comment here to explain what's going on. Something like: "Generate a mask for a shufflevector of the vector load and a zero vector."

This revision is now accepted and ready to land.Feb 21 2016, 10:29 AM
This revision was automatically updated to reflect the committed changes.

Thanks Sanjay - we're getting closer to the masked load cases now!