aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/InstructionSimplify.cpp
diff options
context:
space:
mode:
authorCameron McInally <cameron.mcinally@nyu.edu>2019-05-20 13:13:35 +0000
committerCameron McInally <cameron.mcinally@nyu.edu>2019-05-20 13:13:35 +0000
commit2d2a46db8e47f8708a817ffd4cda7faace29b445 (patch)
treecd66be1b7dc942b15397b06d4ac89ac0ba0209a7 /llvm/lib/Analysis/InstructionSimplify.cpp
parenta2fbe2bcda3d820d1a249902406f6f21cf9e9039 (diff)
downloadllvm-2d2a46db8e47f8708a817ffd4cda7faace29b445.zip
llvm-2d2a46db8e47f8708a817ffd4cda7faace29b445.tar.gz
llvm-2d2a46db8e47f8708a817ffd4cda7faace29b445.tar.bz2
[InstSimplify] Teach fsub -0.0, (fneg X) ==> X about unary fneg
Differential Revision: https://reviews.llvm.org/D62077 llvm-svn: 361151
Diffstat (limited to 'llvm/lib/Analysis/InstructionSimplify.cpp')
-rw-r--r--llvm/lib/Analysis/InstructionSimplify.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/InstructionSimplify.cpp b/llvm/lib/Analysis/InstructionSimplify.cpp
index f97daec..e7f96b1 100644
--- a/llvm/lib/Analysis/InstructionSimplify.cpp
+++ b/llvm/lib/Analysis/InstructionSimplify.cpp
@@ -4404,9 +4404,10 @@ static Value *SimplifyFSubInst(Value *Op0, Value *Op1, FastMathFlags FMF,
return Op0;
// fsub -0.0, (fsub -0.0, X) ==> X
+ // fsub -0.0, (fneg X) ==> X
Value *X;
if (match(Op0, m_NegZeroFP()) &&
- match(Op1, m_FSub(m_NegZeroFP(), m_Value(X))))
+ match(Op1, m_FNeg(m_Value(X))))
return X;
// fsub 0.0, (fsub 0.0, X) ==> X if signed zeros are ignored.