forked from OSchip/llvm-project
ARM & AArch64: use table for EmitCommonNeonBuiltinExpr
This extends the intrinsic lookup table format slightly, and adds entries for use the shared ARM/AArch64 definitions. The benefit is currently smaller than for the SISD intrinsics (there's more custom code implementing this set), but a few lines are saved and there's scope for future expansion. llvm-svn: 201848
This commit is contained in:
parent
2d83796860
commit
8fe03d6111
File diff suppressed because it is too large
Load Diff
|
@ -2179,11 +2179,18 @@ public:
|
||||||
llvm::Value *EmitAArch64CompareBuiltinExpr(llvm::Value *Op, llvm::Type *Ty);
|
llvm::Value *EmitAArch64CompareBuiltinExpr(llvm::Value *Op, llvm::Type *Ty);
|
||||||
llvm::Value *EmitAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E);
|
llvm::Value *EmitAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E);
|
||||||
llvm::Value *EmitARMBuiltinExpr(unsigned BuiltinID, const CallExpr *E);
|
llvm::Value *EmitARMBuiltinExpr(unsigned BuiltinID, const CallExpr *E);
|
||||||
llvm::Value *EmitCommonNeonBuiltinExpr(unsigned BuiltinID, const CallExpr *E,
|
|
||||||
|
llvm::Value *EmitCommonNeonBuiltinExpr(unsigned BuiltinID,
|
||||||
|
unsigned LLVMIntrinsic,
|
||||||
|
unsigned AltLLVMIntrinsic,
|
||||||
|
const char *NameHint,
|
||||||
|
unsigned Modifier,
|
||||||
|
const CallExpr *E,
|
||||||
SmallVectorImpl<llvm::Value *> &Ops,
|
SmallVectorImpl<llvm::Value *> &Ops,
|
||||||
llvm::Value *Align = 0);
|
llvm::Value *Align = 0);
|
||||||
llvm::Function *LookupNeonIntrinsic(unsigned IntrinsicID, unsigned Modifier,
|
llvm::Function *LookupNeonLLVMIntrinsic(unsigned IntrinsicID,
|
||||||
llvm::Type *ArgTy, const CallExpr *E);
|
unsigned Modifier, llvm::Type *ArgTy,
|
||||||
|
const CallExpr *E);
|
||||||
llvm::Value *EmitNeonCall(llvm::Function *F,
|
llvm::Value *EmitNeonCall(llvm::Function *F,
|
||||||
SmallVectorImpl<llvm::Value*> &O,
|
SmallVectorImpl<llvm::Value*> &O,
|
||||||
const char *name,
|
const char *name,
|
||||||
|
|
Loading…
Reference in New Issue