summaryrefslogtreecommitdiff
path: root/lib/Transforms/InstCombine/InstCombineAddSub.cpp
diff options
context:
space:
mode:
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>2014-06-19 10:29:41 +0000
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>2014-06-19 10:29:41 +0000
commitcfdf8052865b01e8b8d321640c3f51ff938cc3c4 (patch)
tree65d2737c67d5032deb9efb9b6380d916fae819a7 /lib/Transforms/InstCombine/InstCombineAddSub.cpp
parent83175090522ebd6513e45033c342200cd645f89c (diff)
downloadllvm-cfdf8052865b01e8b8d321640c3f51ff938cc3c4.tar.gz
llvm-cfdf8052865b01e8b8d321640c3f51ff938cc3c4.tar.bz2
llvm-cfdf8052865b01e8b8d321640c3f51ff938cc3c4.tar.xz
[X86] Teach how to combine horizontal binop even in the presence of undefs.
Before this change, the backend was unable to fold a build_vector dag node with UNDEF operands into a single horizontal add/sub. This patch teaches how to combine a build_vector with UNDEF operands into a horizontal add/sub when possible. The algorithm conservatively avoids to combine a build_vector with only a single non-UNDEF operand. Added test haddsub-undef.ll to verify that we correctly fold horizontal binop even in the presence of UNDEFs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211265 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/InstCombine/InstCombineAddSub.cpp')
0 files changed, 0 insertions, 0 deletions