diff options
author | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2014-06-09 16:54:41 +0000 |
---|---|---|
committer | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2014-06-09 16:54:41 +0000 |
commit | f99dd64f0afd42c5fc51a11dea94a21e7d63cf8e (patch) | |
tree | ffb57c392924f4587038cafcc1c92f64092ea9bc /llvm/lib/CodeGen/RegAllocPBQP.cpp | |
parent | 689f325099bf84da75275aecc1bd01580b78f925 (diff) | |
download | bcm5719-llvm-f99dd64f0afd42c5fc51a11dea94a21e7d63cf8e.tar.gz bcm5719-llvm-f99dd64f0afd42c5fc51a11dea94a21e7d63cf8e.zip |
[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.
llvm-svn: 210477
Diffstat (limited to 'llvm/lib/CodeGen/RegAllocPBQP.cpp')
0 files changed, 0 insertions, 0 deletions