llvm-project/llvm/test/Transforms/CodeGenPrepare/X86
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
..
catchpad-phi-cast.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
computedgoto.ll Turn on -addr-sink-using-gep by default. 2017-04-06 22:42:18 +00:00
cttz-ctlz.ll
extend-sink-hoist.ll
fcmp-sinking.ll [CodeGenPrepare] Avoid sinking soft-FP comparisons 2016-04-03 16:36:17 +00:00
lit.local.cfg
memcmp.ll [CGP] use subtract or subtract-of-cmps for result of memcmp expansion 2017-07-31 18:08:24 +00:00
memset_chk-simplify-nobuiltin.ll
pr27536.ll [CodeGenPrepare] Don't sink a cast past its user 2016-04-27 19:36:38 +00:00
select.ll [CodeGenPrepare] don't convert an unpredictable select into control flow 2016-04-26 00:47:39 +00:00
sink-addrmode.ll [CGP] Allow cycles during Phi traversal in OptimizaMemoryInst 2017-07-19 04:49:17 +00:00
sink-addrspacecast.ll Turn on -addr-sink-using-gep by default. 2017-04-06 22:42:18 +00:00
widen_switch.ll [CodeGenPrep] Skip merging empty case blocks 2016-12-16 20:38:39 +00:00
x86-shuffle-sink.ll