[llvm] 68309ad - [NFC] Clean up poison folding in simplifyBinaryIntrinsic (#147259)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 7 08:21:12 PDT 2025
Author: jjasmine
Date: 2025-07-07T23:21:09+08:00
New Revision: 68309adef359e1f90e098463f0dcc57d69caec5c
URL: https://github.com/llvm/llvm-project/commit/68309adef359e1f90e098463f0dcc57d69caec5c
DIFF: https://github.com/llvm/llvm-project/commit/68309adef359e1f90e098463f0dcc57d69caec5c.diff
LOG: [NFC] Clean up poison folding in simplifyBinaryIntrinsic (#147259)
Fixes #147116.
Added:
Modified:
llvm/lib/Analysis/InstructionSimplify.cpp
llvm/lib/Analysis/ValueTracking.cpp
Removed:
################################################################################
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 660ea5ecfe5e3..f0b7d7dd75f8c 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -7899,6 +7899,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:
More information about the llvm-commits
mailing list