summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
diff options
context:
space:
mode:
authorJessica Paquette <jpaquette@apple.com>2018-12-19 19:01:36 +0000
committerJessica Paquette <jpaquette@apple.com>2018-12-19 19:01:36 +0000
commit3560e93dc19622b1def6cbc13f11776e8d6fac3c (patch)
tree74f97d4933992d8b5dd526ffb9021e0eba86a54d /llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
parent350ee4bb1315bb5d83c3b35f671046adb54ee6db (diff)
downloadbcm5719-llvm-3560e93dc19622b1def6cbc13f11776e8d6fac3c.tar.gz
bcm5719-llvm-3560e93dc19622b1def6cbc13f11776e8d6fac3c.zip
[GlobalISel][AArch64] Add support for @llvm.ceil
This adds a G_FCEIL generic instruction and uses it in AArch64. This adds selection for floating point ceil where it has a supported, dedicated instruction. Other cases aren't handled here. It updates the relevant gisel tests and adds a select-ceil test. It also adds a check to arm64-vcvt.ll which ensures that we don't fall back when we run into one of the relevant cases. llvm-svn: 349664
Diffstat (limited to 'llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp')
-rw-r--r--llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
index 33313756a38..4feb624673d 100644
--- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
@@ -1040,6 +1040,11 @@ bool IRTranslator::translateKnownIntrinsic(const CallInst &CI, Intrinsic::ID ID,
}
case Intrinsic::invariant_end:
return true;
+ case Intrinsic::ceil:
+ MIRBuilder.buildInstr(TargetOpcode::G_FCEIL)
+ .addDef(getOrCreateVReg(CI))
+ .addUse(getOrCreateVReg(*CI.getArgOperand(0)));
+ return true;
}
return false;
}
OpenPOWER on IntegriCloud