From 0574896be8ad70c2dfd57b877cd6b15ab4805c9a Mon Sep 17 00:00:00 2001 From: badumbatish 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(Op0) || isa(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(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(Op0)) - return PoisonValue::get(ReturnType); - uint64_t Mask = cast(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: