summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
diff options
context:
space:
mode:
authorFrits van Bommel <fvbommel@gmail.com>2011-01-29 17:50:27 +0000
committerFrits van Bommel <fvbommel@gmail.com>2011-01-29 17:50:27 +0000
commit2a55951d08d130845d111c87bc0fc87c6ad18b8f (patch)
treeb89b8d2eba7e80a5c327e71c4a2521ddf76ced30 /llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
parentc2549661af0b4f5b4e9564f9e90e5ddcf7c68d2d (diff)
downloadbcm5719-llvm-2a55951d08d130845d111c87bc0fc87c6ad18b8f.tar.gz
bcm5719-llvm-2a55951d08d130845d111c87bc0fc87c6ad18b8f.zip
Call SimplifyFDivInst() in InstCombiner::visitFDiv().
llvm-svn: 124535
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp')
-rw-r--r--llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp b/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
index 32b2a0ac0ee..035ee721bfd 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
@@ -473,6 +473,15 @@ Instruction *InstCombiner::visitSDiv(BinaryOperator &I) {
return 0;
}
+Instruction *InstCombiner::visitFDiv(BinaryOperator &I) {
+ Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
+
+ if (Value *V = SimplifyFDivInst(Op0, Op1, TD))
+ return ReplaceInstUsesWith(I, V);
+
+ return 0;
+}
+
/// This function implements the transforms on rem instructions that work
/// regardless of the kind of rem instruction it is (urem, srem, or frem). It
/// is used by the visitors to those instructions.
OpenPOWER on IntegriCloud