diff options
| author | Volkan Keles <vkeles@apple.com> | 2018-03-05 22:31:55 +0000 |
|---|---|---|
| committer | Volkan Keles <vkeles@apple.com> | 2018-03-05 22:31:55 +0000 |
| commit | 2bc42e90ed147c45a1f0c74b61bb9f6176dbb9ef (patch) | |
| tree | 11cda8054bf6a22e9ef55ff4aa0f428aa1cc2b5d /llvm/lib | |
| parent | 82daad31fea78a9c75fcbbe79ce7070e642640d0 (diff) | |
| download | bcm5719-llvm-2bc42e90ed147c45a1f0c74b61bb9f6176dbb9ef.tar.gz bcm5719-llvm-2bc42e90ed147c45a1f0c74b61bb9f6176dbb9ef.zip | |
GlobalISel: IRTranslate llvm.fabs.* intrinsic
Summary:
Fabs is a common floating-point operation, especially for some expansions. This patch adds
a new generic opcode for llvm.fabs.* intrinsic in order to avoid building/matching this intrinsic.
Reviewers: qcolombet, aditya_nandakumar, dsanders, rovka
Reviewed By: aditya_nandakumar
Subscribers: kristof.beyls, javed.absar, llvm-commits
Differential Revision: https://reviews.llvm.org/D43864
llvm-svn: 326749
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp index 4f6b41db389..7fb821538f1 100644 --- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp +++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp @@ -746,6 +746,11 @@ bool IRTranslator::translateKnownIntrinsic(const CallInst &CI, Intrinsic::ID ID, .addDef(getOrCreateVReg(CI)) .addUse(getOrCreateVReg(*CI.getArgOperand(0))); return true; + case Intrinsic::fabs: + MIRBuilder.buildInstr(TargetOpcode::G_FABS) + .addDef(getOrCreateVReg(CI)) + .addUse(getOrCreateVReg(*CI.getArgOperand(0))); + return true; case Intrinsic::fma: MIRBuilder.buildInstr(TargetOpcode::G_FMA) .addDef(getOrCreateVReg(CI)) |

