diff options
author | Tim Northover <tnorthover@apple.com> | 2014-03-29 15:09:45 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2014-03-29 15:09:45 +0000 |
commit | a2ee433c8d99632419d4a13a66cc4d06eada4014 (patch) | |
tree | e6ab2db8facbc4c5ed2fb11df260db8138572ace /clang/lib/CodeGen/CodeGenFunction.h | |
parent | af3698066a1ea2e5ab4cc08ae9a59620cf18adb7 (diff) | |
download | bcm5719-llvm-a2ee433c8d99632419d4a13a66cc4d06eada4014.tar.gz bcm5719-llvm-a2ee433c8d99632419d4a13a66cc4d06eada4014.zip |
ARM64: initial clang support commit.
This adds Clang support for the ARM64 backend. There are definitely
still some rough edges, so please bring up any issues you see with
this patch.
As with the LLVM commit though, we think it'll be more useful for
merging with AArch64 from within the tree.
llvm-svn: 205100
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h index c583a30548b..5b0653adc69 100644 --- a/clang/lib/CodeGen/CodeGenFunction.h +++ b/clang/lib/CodeGen/CodeGenFunction.h @@ -2200,6 +2200,20 @@ public: bool negateForRightShift); llvm::Value *EmitNeonRShiftImm(llvm::Value *Vec, llvm::Value *Amt, llvm::Type *Ty, bool usgn, const char *name); + llvm::Value *EmitConcatVectors(llvm::Value *Lo, llvm::Value *Hi, + llvm::Type *ArgTy); + llvm::Value *EmitExtractHigh(llvm::Value *In, llvm::Type *ResTy); + // Helper functions for EmitARM64BuiltinExpr. + llvm::Value *vectorWrapScalar8(llvm::Value *Op); + llvm::Value *vectorWrapScalar16(llvm::Value *Op); + llvm::Value *emitVectorWrappedScalar8Intrinsic( + unsigned Int, SmallVectorImpl<llvm::Value *> &Ops, const char *Name); + llvm::Value *emitVectorWrappedScalar16Intrinsic( + unsigned Int, SmallVectorImpl<llvm::Value *> &Ops, const char *Name); + llvm::Value *EmitARM64BuiltinExpr(unsigned BuiltinID, const CallExpr *E); + llvm::Value *EmitNeon64Call(llvm::Function *F, + llvm::SmallVectorImpl<llvm::Value *> &O, + const char *name); llvm::Value *BuildVector(ArrayRef<llvm::Value*> Ops); llvm::Value *EmitX86BuiltinExpr(unsigned BuiltinID, const CallExpr *E); |