diff options
author | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2014-06-19 10:29:41 +0000 |
---|---|---|
committer | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2014-06-19 10:29:41 +0000 |
commit | cfdf8052865b01e8b8d321640c3f51ff938cc3c4 (patch) | |
tree | 65d2737c67d5032deb9efb9b6380d916fae819a7 /lib/Transforms/InstCombine/InstCombineAddSub.cpp | |
parent | 83175090522ebd6513e45033c342200cd645f89c (diff) | |
download | llvm-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