[llvm] [InstCombine] Create `or` as `disjoint` where applicable (PR #193725)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 23 06:59:19 PDT 2026
================
@@ -1921,8 +1921,9 @@ Instruction *InstCombinerImpl::visitAdd(BinaryOperator &I) {
match(RHS, m_OneUse(m_Intrinsic<Intrinsic::ctpop>(m_Value(B)))) &&
haveNoCommonBitsSet(A, B, SQ.getWithInstruction(&I)))
return replaceInstUsesWith(
- I, Builder.CreateIntrinsic(Intrinsic::ctpop, {I.getType()},
- {Builder.CreateOr(A, B)}));
+ I, Builder.CreateIntrinsic(
+ Intrinsic::ctpop, {I.getType()},
+ {Builder.CreateOr(A, B, "", /*IsDisjoint=*/true)}));
----------------
nikic wrote:
I think it would make sense to add a CreateDisjointOr API.
https://github.com/llvm/llvm-project/pull/193725
More information about the llvm-commits
mailing list