summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2016-07-19 23:16:53 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2016-07-19 23:16:53 +0000
commita1fe17c9adb2b6093f1ce848a48fb8954c27c595 (patch)
tree2fcb8b6fcd3f50a1c72634d2808ad3fdc7206d90 /llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h
parent1986030b62601d8cd6d74cfc083e4638be3d8b46 (diff)
downloadbcm5719-llvm-a1fe17c9adb2b6093f1ce848a48fb8954c27c595.tar.gz
bcm5719-llvm-a1fe17c9adb2b6093f1ce848a48fb8954c27c595.zip
AMDGPU: Change fdiv lowering based on !fpmath metadata
If 2.5 ulp is acceptable, denormals are not required, and isn't a reciprocal which will already be handled, replace with a faster fdiv. Simplify the lowering tests by using per function subtarget features. llvm-svn: 276051
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h b/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h
index f4173929259..6cb8b964464 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h
+++ b/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h
@@ -34,13 +34,23 @@ enum ID {
class AMDGPUIntrinsicInfo final : public TargetIntrinsicInfo {
public:
AMDGPUIntrinsicInfo();
+
+ StringRef getName(unsigned IntrId, ArrayRef<Type *> Tys = None) const;
+
std::string getName(unsigned IntrId, Type **Tys = nullptr,
- unsigned numTys = 0) const override;
+ unsigned NumTys = 0) const override;
+
unsigned lookupName(const char *Name, unsigned Len) const override;
bool isOverloaded(unsigned IID) const override;
Function *getDeclaration(Module *M, unsigned ID,
Type **Tys = nullptr,
- unsigned numTys = 0) const override;
+ unsigned NumTys = 0) const override;
+
+ Function *getDeclaration(Module *M, unsigned ID,
+ ArrayRef<Type *> = None) const;
+
+ FunctionType *getType(LLVMContext &Context, unsigned ID,
+ ArrayRef<Type*> Tys = None) const;
};
} // end namespace llvm
OpenPOWER on IntegriCloud