[llvm] ValueTracking: Use m_CheckedFp in isKnownIntegral (PR #178019)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 26 10:56:31 PST 2026
https://github.com/arsenm created https://github.com/llvm/llvm-project/pull/178019
None
>From ab310f3101141851c2bbee5e98b834dedcbfd8db Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Mon, 26 Jan 2026 19:28:04 +0100
Subject: [PATCH] ValueTracking: Use m_CheckedFp in isKnownIntegral
---
llvm/lib/Analysis/ValueTracking.cpp | 21 +--------------------
1 file changed, 1 insertion(+), 20 deletions(-)
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index 9c4027dfced17..1d2a9464b7d5a 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -6236,27 +6236,8 @@ bool llvm::isKnownIntegral(const Value *V, const SimplifyQuery &SQ,
if (isa<UndefValue>(V))
return false;
- if (const ConstantFP *CF = dyn_cast<ConstantFP>(V))
- return CF->getValueAPF().isInteger();
-
- auto *VFVTy = dyn_cast<FixedVectorType>(V->getType());
- const Constant *CV = dyn_cast<Constant>(V);
- if (VFVTy && CV) {
- unsigned NumElts = VFVTy->getNumElements();
- for (unsigned i = 0; i != NumElts; ++i) {
- Constant *Elt = CV->getAggregateElement(i);
- if (!Elt)
- return false;
- if (isa<PoisonValue>(Elt))
- continue;
-
- const ConstantFP *CFP = dyn_cast<ConstantFP>(Elt);
- if (!CFP || !CFP->getValue().isInteger())
- return false;
- }
-
+ if (match(V, m_CheckedFp([](const APFloat &Val) { return Val.isInteger(); })))
return true;
- }
const Instruction *I = dyn_cast<Instruction>(V);
if (!I)
More information about the llvm-commits
mailing list