[llvm] [SimplifyLibCalls] fdim constant fold (PR #109235)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 25 03:49:33 PDT 2024


================
@@ -3109,6 +3109,32 @@ Value *LibCallSimplifier::optimizeRemquo(CallInst *CI, IRBuilderBase &B) {
   return ConstantFP::get(CI->getType(), Rem);
 }
 
+/// Constant folds fdim
+Value *LibCallSimplifier::optimizeFdim(CallInst *CI, IRBuilderBase &B) {
+  const APFloat *X, *Y;
+  // Check if both values are constants
+  if (!match(CI->getArgOperand(0), m_APFloat(X)) ||
+      !match(CI->getArgOperand(1), m_APFloat(Y)))
+    return nullptr;
----------------
arsenm wrote:

You don't do anything with the constant values, besides check if they are nan (which isn't strong enough to do this transform) 

https://github.com/llvm/llvm-project/pull/109235


More information about the llvm-commits mailing list