llvm-project/llvm/test/Transforms/CodeGenPrepare
Sanjay Patel fea731a4aa [CGP] use subtract or subtract-of-cmps for result of memcmp expansion
As noted in the code comment, transforming this in the other direction might require 
a separate transform here in CGP given the block-at-a-time DAG constraint.

Besides that theoretical motivation, there are 2 practical motivations for the 
subtract-of-cmps form:

1. The codegen for both x86 and PPC is better for this IR (though PPC could be better still). 
   There is discussion about canonicalizing IR to the select form 
   ( http://lists.llvm.org/pipermail/llvm-dev/2017-July/114885.html ), 
   so we probably need to add DAG transforms for those patterns anyway, but this improves the 
   memcmp output without waiting for that step.

2. If we allow vector-sized chunks for the load and compare, x86 is better prepared to convert
   that to optimal code when using subtract-of-cmps, so another prerequisite patch is avoided
   if we choose to enable that.

Differential Revision: https://reviews.llvm.org/D34904

llvm-svn: 309597
2017-07-31 18:08:24 +00:00
..
AArch64 [CodeGenPrep] Skip merging empty case blocks 2016-12-16 20:38:39 +00:00
AMDGPU AMDGPU: Mark all unspecified CC functions in tests as amdgpu_kernel 2017-03-21 21:39:51 +00:00
ARM
NVPTX [BypassSlowDivision] Do not bypass division of hash-like values 2017-04-02 13:14:30 +00:00
X86 [CGP] use subtract or subtract-of-cmps for result of memcmp expansion 2017-07-31 18:08:24 +00:00
2008-11-24-RAUW-Self.ll
basic.ll Let llvm.objectsize be conservative with null pointers 2017-03-21 20:08:59 +00:00
bitreverse-hang.ll
builtin-condition.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
crash-on-large-allocas.ll Add a test for r307754 2017-07-12 16:30:37 +00:00
dom-tree.ll Keep CodeGenPrepare from preserving the domtree. 2016-03-22 21:25:08 +00:00
invariant.group.ll Fix CodeGenPrepare::stripInvariantGroupMetadata 2016-12-16 18:52:33 +00:00
nonintegral.ll [CodeGenPrepare] Don't create inttoptr for ni ptrs 2017-06-29 20:28:59 +00:00
overflow-intrinsics.ll
section-samplepgo.ll Restrict call metadata based hotness detection to Sample PGO mode 2017-05-11 23:18:05 +00:00
section.ll Restrict call metadata based hotness detection to Sample PGO mode 2017-05-11 23:18:05 +00:00
skip-merging-case-block.ll [CodeGenPrep] Skip merging empty case blocks 2016-12-16 20:38:39 +00:00
split-indirect-loop.ll [CodeGenPrepare] Fix crash due to an invalid CFG 2017-04-17 19:11:04 +00:00
statepoint-relocate.ll