[llvm] r339588 - [SimplifyLibCalls] reduce code for optimizeCos; NFCI

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 13 10:40:49 PDT 2018


Author: spatel
Date: Mon Aug 13 10:40:49 2018
New Revision: 339588

URL: http://llvm.org/viewvc/llvm-project?rev=339588&view=rev
Log:
[SimplifyLibCalls] reduce code for optimizeCos; NFCI

Modified:
    llvm/trunk/lib/Transforms/Utils/SimplifyLibCalls.cpp

Modified: llvm/trunk/lib/Transforms/Utils/SimplifyLibCalls.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/SimplifyLibCalls.cpp?rev=339588&r1=339587&r2=339588&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Utils/SimplifyLibCalls.cpp (original)
+++ llvm/trunk/lib/Transforms/Utils/SimplifyLibCalls.cpp Mon Aug 13 10:40:49 2018
@@ -1124,18 +1124,17 @@ Value *LibCallSimplifier::optimizeCAbs(C
 
 Value *LibCallSimplifier::optimizeCos(CallInst *CI, IRBuilder<> &B) {
   Function *Callee = CI->getCalledFunction();
-  Value *Ret = nullptr;
   StringRef Name = Callee->getName();
   if (UnsafeFPShrink && Name == "cos" && hasFloatVersion(Name))
-    Ret = optimizeUnaryDoubleFP(CI, B, true);
+    if (Value *V = optimizeUnaryDoubleFP(CI, B, true))
+      return V;
 
-  // cos(-x) -> cos(x)
-  Value *Op1 = CI->getArgOperand(0);
-  if (BinaryOperator::isFNeg(Op1)) {
-    BinaryOperator *BinExpr = cast<BinaryOperator>(Op1);
-    return B.CreateCall(Callee, BinExpr->getOperand(1), "cos");
-  }
-  return Ret;
+  // cos(-X) -> cos(X)
+  Value *X;
+  if (match(CI->getArgOperand(0), m_FNeg(m_Value(X))))
+    return B.CreateCall(Callee, X, "cos");
+
+  return nullptr;
 }
 
 static Value *getPow(Value *InnerChain[33], unsigned Exp, IRBuilder<> &B) {




More information about the llvm-commits mailing list