diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2017-01-23 23:55:08 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2017-01-23 23:55:08 +0000 |
commit | 954a624fb987f97e74bdf7b01685d4ec2a4dc861 (patch) | |
tree | e03549055cc52b4f71844c21083df43e13609977 /llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp | |
parent | 461aa57ad34d6155be8d401283619723bf623603 (diff) | |
download | bcm5719-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.cpp | 9 |
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()); |