[llvm] [NFC] Clean up poison folding in simplifyBinaryIntrinsic (PR #147259)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 7 02:15:51 PDT 2025
https://github.com/badumbatish created https://github.com/llvm/llvm-project/pull/147259
Fixes #147116.
>From 0574896be8ad70c2dfd57b877cd6b15ab4805c9a Mon Sep 17 00:00:00 2001
From: badumbatish <jjasmine at igalia.com>
Date: Mon, 7 Jul 2025 02:08:03 -0700
Subject: [PATCH] [NFC] Clean up poison folding in simplifyBinaryIntrinsic
---
llvm/lib/Analysis/InstructionSimplify.cpp | 10 ----------
llvm/lib/Analysis/ValueTracking.cpp | 2 ++
2 files changed, 2 insertions(+), 10 deletions(-)
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:
More information about the llvm-commits
mailing list