This is an archive of the discontinued LLVM Phabricator instance.

[x86] Teach the target combine step to aggressively fold pshufd insturcions.
ClosedPublic

Authored by chandlerc on Jun 25 2014, 6:56 AM.

Details

Summary

This allows it to fold pshufd instructions across intervening
half-shuffles and other noise. This pattern actually shows up in the
generic lowering tests, but I've also added direct tests using
intrinsics to make sure that the specific desired functionality is
working even if the lowering stuff changes in the future.

Diff Detail

Repository
rL LLVM

Event Timeline

chandlerc updated this revision to Diff 10835.Jun 25 2014, 6:56 AM
chandlerc retitled this revision from to [x86] Teach the target combine step to aggressively fold pshufd insturcions..
chandlerc updated this object.
chandlerc edited the test plan for this revision. (Show Details)
chandlerc added reviewers: grosbach, filcab.
chandlerc added a subscriber: Unknown Object (MLST).
grosbach accepted this revision.Jun 25 2014, 11:10 AM
grosbach edited edge metadata.

LGTM

test/CodeGen/X86/vector-shuffle-combining.ll
12 ↗(On Diff #10835)

Same -asm-verbose=false comment as on the other patch.

This revision is now accepted and ready to land.Jun 25 2014, 11:10 AM
filcab accepted this revision.Jun 25 2014, 3:45 PM
filcab edited edge metadata.

LGTM

Thanks for the review!

test/CodeGen/X86/vector-shuffle-combining.ll
12 ↗(On Diff #10835)

Same response. =/

chandlerc closed this revision.Jun 27 2014, 4:48 AM
chandlerc updated this revision to Diff 10925.

Closed by commit rL211892 (authored by @chandlerc).