diff options
| author | Tim Northover <tnorthover@apple.com> | 2017-02-08 23:23:32 +0000 |
|---|---|---|
| committer | Tim Northover <tnorthover@apple.com> | 2017-02-08 23:23:32 +0000 |
| commit | b38b4e2464c9c88b332ca11914be73c50736ee86 (patch) | |
| tree | 9f62d882cbc94a7708bc3beb09bd65fbd8f02120 /llvm/lib | |
| parent | 4705ae936d8bee98501227f81fbe48bbd5ff03bf (diff) | |
| download | bcm5719-llvm-b38b4e2464c9c88b332ca11914be73c50736ee86.tar.gz bcm5719-llvm-b38b4e2464c9c88b332ca11914be73c50736ee86.zip | |
GlobalISel: translate @llvm.pow intrinsic to G_FPOW.
It'll usually be immediately legalized back to a libcall, but occasionally
something can be done with it so we'd just as well enable that flexibility from
the start.
llvm-svn: 294530
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp index 8b06f4dc234..361efe6c1d6 100644 --- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp +++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp @@ -636,6 +636,12 @@ bool IRTranslator::translateKnownIntrinsic(const CallInst &CI, Intrinsic::ID ID, return translateOverflowIntrinsic(CI, TargetOpcode::G_UMULO, MIRBuilder); case Intrinsic::smul_with_overflow: return translateOverflowIntrinsic(CI, TargetOpcode::G_SMULO, MIRBuilder); + case Intrinsic::pow: + MIRBuilder.buildInstr(TargetOpcode::G_FPOW) + .addDef(getOrCreateVReg(CI)) + .addUse(getOrCreateVReg(*CI.getArgOperand(0))) + .addUse(getOrCreateVReg(*CI.getArgOperand(1))); + return true; case Intrinsic::memcpy: case Intrinsic::memmove: case Intrinsic::memset: |

