llvm/test
Andrea Di Biagio 9b6992ddc2 [X86] Add target combine rules for horizontal add/sub.
This patch adds new target specific combine rules to identify horizontal
add/sub idioms from BUILD_VECTOR dag nodes.

This patch also teaches the DAGCombiner how to canonicalize sequences of
insert_vector_elt dag nodes according to the following rule:

  (insert_vector_elt (insert_vector_elt A, I0), I1) ->
    (insert_vecto_elt (insert_vector_elt A, I1), I0)

This new canonicalization rule only triggers if the inner insert_vector
dag node has exactly one use; also, both indices must be known constants,
and I1 < I0.
This last rule made it possible to write a simpler algorithm to identify
horizontal add/sub patterns because now we don't have to worry about the
ordering of insert_vector_elt dag nodes.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210477 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-09 16:54:41 +00:00
..
Analysis ScalarEvolution: Derive element size from the type of the loaded element 2014-06-08 19:21:20 +00:00
Assembler
Bindings
Bitcode
BugPoint
CodeGen [X86] Add target combine rules for horizontal add/sub. 2014-06-09 16:54:41 +00:00
DebugInfo Fix line numbers for code inlined from __nodebug__ functions. 2014-06-09 09:09:19 +00:00
ExecutionEngine
Feature
FileCheck
Instrumentation Fix test in r210472. 2014-06-09 14:48:53 +00:00
Integer
JitListener
Linker
LTO
MC [mips] Fix a bug for NaCl target - Don't report the error when non-dangerous 2014-06-09 14:09:28 +00:00
Object [yaml2obj][obj2yaml] Support ELF symbol's visibility flags (default/hidden/protected). 2014-06-06 07:41:57 +00:00
Other
TableGen
tools
Transforms [SeparateConstOffsetFromGEP] inbounds zext => sext for better splitting 2014-06-08 23:49:34 +00:00
Unit
Verifier
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg
lit.site.cfg.in
Makefile lld test for configure & make 2014-06-06 09:06:25 +00:00
Makefile.tests
TestRunner.sh