summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2016-02-27 08:53:55 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2016-02-27 08:53:55 +0000
commit9d82ee7526db4bcc79ef74e767a54155301a972f (patch)
tree30d88c749384b923538fea09713eb7092e65e525 /llvm/lib
parent274d34e72544cd252b53bd3ea77bb59e7b5acb88 (diff)
downloadbcm5719-llvm-9d82ee7526db4bcc79ef74e767a54155301a972f.tar.gz
bcm5719-llvm-9d82ee7526db4bcc79ef74e767a54155301a972f.zip
AMDGPU: Split vi-insts subtarget feature
This will be more useful for marking builtins acceptable for which subtargets. llvm-svn: 262121
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPU.td16
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp3
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h11
3 files changed, 24 insertions, 6 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPU.td b/llvm/lib/Target/AMDGPU/AMDGPU.td
index 145fadcee74..0975f97998a 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPU.td
+++ b/llvm/lib/Target/AMDGPU/AMDGPU.td
@@ -149,10 +149,16 @@ def FeatureCIInsts : SubtargetFeature<"ci-insts",
"Additional intstructions for CI+"
>;
-def FeatureVIInsts : SubtargetFeature<"vi-insts",
- "VIInsts",
+def FeatureSMemRealTime : SubtargetFeature<"s-memrealtime",
+ "HasSMemRealTime",
"true",
- "Additional intstructions for VI+"
+ "Has s_memrealtime instruction"
+>;
+
+def Feature16BitInsts : SubtargetFeature<"16-bit-insts",
+ "Has16BitInsts",
+ "true",
+ "Has i16/f16 instructions"
>;
//===------------------------------------------------------------===//
@@ -314,7 +320,9 @@ def FeatureSeaIslands : SubtargetFeatureGeneration<"SEA_ISLANDS",
def FeatureVolcanicIslands : SubtargetFeatureGeneration<"VOLCANIC_ISLANDS",
[FeatureFP64, FeatureLocalMemorySize65536,
FeatureWavefrontSize64, FeatureFlatAddressSpace, FeatureGCN,
- FeatureGCN3Encoding, FeatureCIInsts, FeatureVIInsts]
+ FeatureGCN3Encoding, FeatureCIInsts, Feature16BitInsts,
+ FeatureSMemRealTime
+ ]
>;
//===----------------------------------------------------------------------===//
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
index 91d1aec5c07..fed46fe3715 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
@@ -81,7 +81,8 @@ AMDGPUSubtarget::AMDGPUSubtarget(const Triple &TT, StringRef GPU, StringRef FS,
WavefrontSize(0), CFALUBug(false),
LocalMemorySize(0), MaxPrivateElementSize(0),
EnableVGPRSpilling(false), SGPRInitBug(false), IsGCN(false),
- GCN1Encoding(false), GCN3Encoding(false), CIInsts(false), VIInsts(false),
+ GCN1Encoding(false), GCN3Encoding(false), CIInsts(false),
+ HasSMemRealTime(false), Has16BitInsts(false),
LDSBankCount(0),
IsaVersion(ISAVersion0_0_0), EnableHugeScratchBuffer(false),
EnableSIScheduler(false), FrameLowering(nullptr),
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
index 787c04aef2d..b9874f8a186 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
+++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
@@ -88,7 +88,8 @@ private:
bool GCN1Encoding;
bool GCN3Encoding;
bool CIInsts;
- bool VIInsts;
+ bool HasSMemRealTime;
+ bool Has16BitInsts;
bool FeatureDisable;
int LDSBankCount;
unsigned IsaVersion;
@@ -169,6 +170,14 @@ public:
return FlatAddressSpace;
}
+ bool hasSMemRealTime() const {
+ return HasSMemRealTime;
+ }
+
+ bool has16BitInsts() const {
+ return Has16BitInsts;
+ }
+
bool useFlatForGlobal() const {
return FlatForGlobal;
}
OpenPOWER on IntegriCloud