This is an archive of the discontinued LLVM Phabricator instance.

[X86] Make memcmp vector lowering handle arbitrary expansions
ClosedPublic

Authored by davezarzycki on Oct 28 2019, 5:47 AM.

Details

Summary

Teach combineVectorSizedSetCCEquality() to handle arbitrary memcmp expansions but do not change any default policy for now.

This also fixes a bug in the memcmp expansion itself when large displacements are needed.

Diff Detail

Event Timeline

davezarzycki created this revision.Oct 28 2019, 5:47 AM
davezarzycki edited the summary of this revision. (Show Details)

Updated the tests after running "check-all` with all targets enabled.

Ping. This patch is essentially just bug fixes and a prerequisite change so that we might have a more focused conversation in D69044. Thanks!

This revision is now accepted and ready to land.Oct 29 2019, 11:52 PM
davezarzycki closed this revision.Oct 30 2019, 12:16 AM

Thanks @craig.topper for suggesting the GEP fix to the memcmp expansion code.

f68925d45083407e6bf322a7ee18d85c83c001ce

lib/Target/X86/X86ISelLowering.cpp