diff options
author | Kit Barton <kbarton@ca.ibm.com> | 2016-03-09 19:28:31 +0000 |
---|---|---|
committer | Kit Barton <kbarton@ca.ibm.com> | 2016-03-09 19:28:31 +0000 |
commit | fbab158767932208ee6e360c455b2dd9249c31a8 (patch) | |
tree | d592cbe8949ef27a4ec59b6391a9dd19602f552a /clang/lib/CodeGen | |
parent | 206ba844135e0462661371bb8bcf6652f4e360e9 (diff) | |
download | bcm5719-llvm-fbab158767932208ee6e360c455b2dd9249c31a8.tar.gz bcm5719-llvm-fbab158767932208ee6e360c455b2dd9249c31a8.zip |
[PPC] FE support for generating VSX [negated] absolute value instructions
Includes new built-in, conversion of built-in to target-independent intrinsic
and update in the header file. Tests are also updated. There is a second part in
the backend for which I will post a separate code-review. BACKEND PART SHOULD BE
COMMITTED FIRST.
Phabricator: http://reviews.llvm.org/D17816
llvm-svn: 263051
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r-- | clang/lib/CodeGen/CGBuiltin.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index fbba561f7cc..fc3d1266146 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -6992,6 +6992,16 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID, llvm::Function *F = CGM.getIntrinsic(ID, ResultType); return Builder.CreateCall(F, X); } + + // Absolute value + case PPC::BI__builtin_vsx_xvabsdp: + case PPC::BI__builtin_vsx_xvabssp: { + llvm::Type *ResultType = ConvertType(E->getType()); + Value *X = EmitScalarExpr(E->getArg(0)); + llvm::Function *F = CGM.getIntrinsic(Intrinsic::fabs, ResultType); + return Builder.CreateCall(F, X); + } + // FMA variations case PPC::BI__builtin_vsx_xvmaddadp: case PPC::BI__builtin_vsx_xvmaddasp: |