[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