diff options
author | Sanjay Patel <spatel@rotateright.com> | 2017-04-27 21:55:03 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2017-04-27 21:55:03 +0000 |
commit | 73d8c43da8bef37c1432c539afff57e510743ab6 (patch) | |
tree | 0caaa7b40bf3b00f17bbc1a77d9629a43aec9125 /llvm/lib/Transforms | |
parent | e77a3aff6f92d39aba5404827817a52dc6a2c1d7 (diff) | |
download | bcm5719-llvm-73d8c43da8bef37c1432c539afff57e510743ab6.tar.gz bcm5719-llvm-73d8c43da8bef37c1432c539afff57e510743ab6.zip |
[InstCombine] fix matcher to bind to specific operand (PR32830)
Matching any random value would be very wrong:
https://bugs.llvm.org/show_bug.cgi?id=32830
llvm-svn: 301594
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp index adf36d24a8d..e37ceb58f15 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp @@ -1213,7 +1213,7 @@ static Instruction *foldAndToXor(BinaryOperator &I, // (~B | A) & (~A | B) --> ~(A ^ B) // (~B | A) & (B | ~A) --> ~(A ^ B) if (match(Op0, m_c_Or(m_Value(A), m_Not(m_Value(B)))) && - match(Op1, m_c_Or(m_Not(m_Specific(A)), m_Value(B)))) + match(Op1, m_c_Or(m_Not(m_Specific(A)), m_Specific(B)))) return BinaryOperator::CreateNot(Builder.CreateXor(A, B)); return nullptr; |