Skip to content

Commit 0027fc3

Browse files
committed
Update another xor->or transform
1 parent ff8e0c3 commit 0027fc3

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4462,8 +4462,11 @@ Instruction *InstCombinerImpl::visitXor(BinaryOperator &I) {
44624462
Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
44634463
Value *M;
44644464
if (match(&I, m_c_Xor(m_c_And(m_Not(m_Value(M)), m_Value()),
4465-
m_c_And(m_Deferred(M), m_Value()))))
4466-
return BinaryOperator::CreateOr(Op0, Op1);
4465+
m_c_And(m_Deferred(M), m_Value())))) {
4466+
auto *Or = BinaryOperator::CreateOr(Op0, Op1);
4467+
cast<PossiblyDisjointInst>(Or)->setIsDisjoint(true);
4468+
return Or;
4469+
}
44674470

44684471
if (Instruction *Xor = visitMaskedMerge(I, Builder))
44694472
return Xor;

0 commit comments

Comments
 (0)