This is an archive of the discontinued LLVM Phabricator instance.

[X86] Prevent lowerVectorShuffleByMerging128BitLanes from creating cycles
ClosedPublic

Authored by craig.topper on Aug 20 2018, 11:06 AM.

Details

Summary

Due to some splat handling code in getVectorShuffle, its possible for NewV1/NewV2 to have their mask modified from what is requested. This can lead to cycles being created in the DAG.

This patch examines the returned mask and makes sure its different. Long term we may need to look closer at that splat code in getVectorShuffle, or add more splat awareness to getVectorShuffle.

Fixes PR38639

Diff Detail

Event Timeline

craig.topper created this revision.Aug 20 2018, 11:06 AM
RKSimon accepted this revision.Aug 20 2018, 1:48 PM

LGTM - thanks

This revision is now accepted and ready to land.Aug 20 2018, 1:48 PM
This revision was automatically updated to reflect the committed changes.