[ExpandMemCmp] Allow overlaping loads in the zero-relational case.
authorClement Courbet <courbet@google.com>
Tue, 10 Mar 2020 08:37:24 +0000 (09:37 +0100)
committerClement Courbet <courbet@google.com>
Thu, 2 Apr 2020 09:20:47 +0000 (11:20 +0200)
commitfb4aa30f272be7d8af83251a8178851b6e63ecfe
treed901055abf7d349e93fa7fc6fce8a54ce3515fab
parenta63b5c9e53199b866b804164285a2c40531b31a1
[ExpandMemCmp] Allow overlaping loads in the zero-relational case.

Summary:
This allows doing `memcmp(p, q, 7)` with 2 loads instead of a call to
memcmp.
This fixes part of PR45147.

Reviewers: spatel

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D76133
llvm/lib/Target/X86/X86TargetTransformInfo.cpp
llvm/test/CodeGen/X86/memcmp-more-load-pairs.ll
llvm/test/CodeGen/X86/memcmp.ll
llvm/test/Transforms/ExpandMemCmp/X86/memcmp.ll