summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2017-01-23 23:55:08 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2017-01-23 23:55:08 +0000
commit954a624fb987f97e74bdf7b01685d4ec2a4dc861 (patch)
treee03549055cc52b4f71844c21083df43e13609977 /llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
parent461aa57ad34d6155be8d401283619723bf623603 (diff)
downloadbcm5719-llvm-954a624fb987f97e74bdf7b01685d4ec2a4dc861.tar.gz
bcm5719-llvm-954a624fb987f97e74bdf7b01685d4ec2a4dc861.zip
SimplifyLibCalls: Replace more unary libcalls with intrinsics
llvm-svn: 292855
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp')
-rw-r--r--llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
index 5ba6fd6fe32..178920678d8 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
@@ -1393,7 +1393,14 @@ Instruction *InstCombiner::visitFPTrunc(FPTruncInst &CI) {
if (II) {
switch (II->getIntrinsicID()) {
default: break;
- case Intrinsic::fabs: {
+ case Intrinsic::fabs:
+ case Intrinsic::ceil:
+ case Intrinsic::floor:
+ case Intrinsic::rint:
+ case Intrinsic::round:
+ case Intrinsic::nearbyint:
+ case Intrinsic::trunc: {
+ // Do unary FP operation on smaller type.
// (fptrunc (fabs x)) -> (fabs (fptrunc x))
Value *InnerTrunc = Builder->CreateFPTrunc(II->getArgOperand(0),
CI.getType());
OpenPOWER on IntegriCloud