[llvm] [NFC] Clean up poison folding in simplifyBinaryIntrinsic (PR #147259)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 7 02:16:18 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-analysis
Author: jjasmine (badumbatish)
<details>
<summary>Changes</summary>
Fixes #<!-- -->147116.
---
Full diff: https://github.com/llvm/llvm-project/pull/147259.diff
2 Files Affected:
- (modified) llvm/lib/Analysis/InstructionSimplify.cpp (-10)
- (modified) llvm/lib/Analysis/ValueTracking.cpp (+2)
``````````diff
diff --git a/llvm/lib/Analysis/InstructionSimplify.cpp b/llvm/lib/Analysis/InstructionSimplify.cpp
index 90baa054eed4c..82530e7d5b6c6 100644
--- a/llvm/lib/Analysis/InstructionSimplify.cpp
+++ b/llvm/lib/Analysis/InstructionSimplify.cpp
@@ -6484,9 +6484,6 @@ Value *llvm::simplifyBinaryIntrinsic(Intrinsic::ID IID, Type *ReturnType,
break;
}
case Intrinsic::ptrmask: {
- if (isa<PoisonValue>(Op0) || isa<PoisonValue>(Op1))
- return PoisonValue::get(Op0->getType());
-
// NOTE: We can't apply this simplifications based on the value of Op1
// because we need to preserve provenance.
if (Q.isUndefValue(Op0) || match(Op0, m_Zero()))
@@ -6533,10 +6530,6 @@ Value *llvm::simplifyBinaryIntrinsic(Intrinsic::ID IID, Type *ReturnType,
if (match(Op0, m_ImmConstant()))
std::swap(Op0, Op1);
- // Propagate poison.
- if (isa<PoisonValue>(Op1))
- return Op1;
-
// Assume undef is the limit value.
if (Q.isUndefValue(Op1))
return ConstantInt::get(
@@ -6696,9 +6689,6 @@ Value *llvm::simplifyBinaryIntrinsic(Intrinsic::ID IID, Type *ReturnType,
return Op1;
break;
case Intrinsic::is_fpclass: {
- if (isa<PoisonValue>(Op0))
- return PoisonValue::get(ReturnType);
-
uint64_t Mask = cast<ConstantInt>(Op1)->getZExtValue();
// If all tests are made, it doesn't matter what the value is.
if ((Mask & fcAllFlags) == fcAllFlags)
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index 09745ed6eac6a..0e2a94b01bdb4 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -7901,6 +7901,8 @@ bool llvm::intrinsicPropagatesPoison(Intrinsic::ID IID) {
case Intrinsic::umax:
case Intrinsic::umin:
case Intrinsic::scmp:
+ case Intrinsic::is_fpclass:
+ case Intrinsic::ptrmask:
case Intrinsic::ucmp:
case Intrinsic::bitreverse:
case Intrinsic::bswap:
``````````
</details>
https://github.com/llvm/llvm-project/pull/147259
More information about the llvm-commits
mailing list