diff options
author | Craig Topper <craig.topper@intel.com> | 2017-06-15 21:38:48 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2017-06-15 21:38:48 +0000 |
commit | 2ba991ff2c0d7c785a9eae088e18f7e3ce1e4149 (patch) | |
tree | 5bc903ee71b87ecfb856099d9434156bc33a65d8 /llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp | |
parent | ca73ba019bc2d7d6810c6b8a64301bdb6443f032 (diff) | |
download | bcm5719-llvm-2ba991ff2c0d7c785a9eae088e18f7e3ce1e4149.tar.gz bcm5719-llvm-2ba991ff2c0d7c785a9eae088e18f7e3ce1e4149.zip |
[InstCombine] Add two FIXMEs for bad single use checks. NFC
llvm-svn: 305510
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp')
-rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp index e4b7903a6e9..8c9acc1147e 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp @@ -2111,12 +2111,16 @@ Instruction *InstCombiner::visitOr(BinaryOperator &I) { } // (A ^ B) | ((B ^ C) ^ A) -> (A ^ B) | C + // FIXME: The two hasOneUse calls here are the same call, maybe we were + // supposed to check Op1->operand(0)? if (match(Op0, m_Xor(m_Value(A), m_Value(B)))) if (match(Op1, m_Xor(m_Xor(m_Specific(B), m_Value(C)), m_Specific(A)))) if (Op1->hasOneUse() || cast<BinaryOperator>(Op1)->hasOneUse()) return BinaryOperator::CreateOr(Op0, C); // ((A ^ C) ^ B) | (B ^ A) -> (B ^ A) | C + // FIXME: The two hasOneUse calls here are the same call, maybe we were + // supposed to check Op0->operand(0)? if (match(Op0, m_Xor(m_Xor(m_Value(A), m_Value(C)), m_Value(B)))) if (match(Op1, m_Xor(m_Specific(B), m_Specific(A)))) if (Op0->hasOneUse() || cast<BinaryOperator>(Op0)->hasOneUse()) |