diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2023-03-03 15:54:56 -0400 |
---|---|---|
committer | Matt Arsenault <arsenm2@gmail.com> | 2023-03-17 07:39:40 -0400 |
commit | d2404ea6ced5fce9442260bde08a02d607fdd50d (patch) | |
tree | 10112a66aa998d638daca32869ca21e2c1187343 /llvm/lib/Analysis/AssumptionCache.cpp | |
parent | a157898ecad6fb4694fed7c1fac40d45f9990bcf (diff) | |
download | llvm-d2404ea6ced5fce9442260bde08a02d607fdd50d.zip llvm-d2404ea6ced5fce9442260bde08a02d607fdd50d.tar.gz llvm-d2404ea6ced5fce9442260bde08a02d607fdd50d.tar.bz2 |
Attributor: Assume handling for nofpclass
Diffstat (limited to 'llvm/lib/Analysis/AssumptionCache.cpp')
-rw-r--r-- | llvm/lib/Analysis/AssumptionCache.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/AssumptionCache.cpp b/llvm/lib/Analysis/AssumptionCache.cpp index 11796ef..b439dc1 100644 --- a/llvm/lib/Analysis/AssumptionCache.cpp +++ b/llvm/lib/Analysis/AssumptionCache.cpp @@ -87,7 +87,7 @@ findAffectedValues(CallBase *CI, TargetTransformInfo *TTI, AddAffected(Cond); CmpInst::Predicate Pred; - if (match(Cond, m_ICmp(Pred, m_Value(A), m_Value(B)))) { + if (match(Cond, m_Cmp(Pred, m_Value(A), m_Value(B)))) { AddAffected(A); AddAffected(B); @@ -128,7 +128,18 @@ findAffectedValues(CallBase *CI, TargetTransformInfo *TTI, if (match(A, m_Add(m_Value(X), m_ConstantInt())) && match(B, m_ConstantInt())) AddAffected(X); + } else if (CmpInst::isFPPredicate(Pred)) { + // fcmp fneg(x), y + // fcmp fabs(x), y + // fcmp fneg(fabs(x)), y + if (match(A, m_FNeg(m_Value(A)))) + AddAffected(A); + if (match(A, m_FAbs(m_Value(A)))) + AddAffected(A); } + } else if (match(Cond, m_Intrinsic<Intrinsic::is_fpclass>(m_Value(A), + m_Value(B)))) { + AddAffected(A); } if (TTI) { |