summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorJan Vesely <jan.vesely@rutgers.edu>2015-05-01 17:38:13 +0000
committerJan Vesely <jan.vesely@rutgers.edu>2015-05-01 17:38:13 +0000
commita3abd6da8be1659b5c4b697a1fa87f0ec36d56a7 (patch)
treece3ac7156e2291c98a056e05d3492de2e5dfcfb7 /clang/lib
parent35e04e84fa8c08705ec0fd88abfe2e8646f79835 (diff)
downloadbcm5719-llvm-a3abd6da8be1659b5c4b697a1fa87f0ec36d56a7.tar.gz
bcm5719-llvm-a3abd6da8be1659b5c4b697a1fa87f0ec36d56a7.zip
R600: Report fp64 on all capable asics
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> Reviewed-by: Tom Stellard <thomas.stellard@amd.com> llvm-svn: 236325
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Basic/Targets.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 436f2473f88..39bc3e3a6ed 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -1695,6 +1695,8 @@ class R600TargetInfo : public TargetInfo {
GK_SEA_ISLANDS
} GPU;
+ bool hasFP64;
+
public:
R600TargetInfo(const llvm::Triple &Triple)
: TargetInfo(Triple) {
@@ -1702,9 +1704,11 @@ public:
if (Triple.getArch() == llvm::Triple::amdgcn) {
DescriptionString = DescriptionStringSI;
GPU = GK_SOUTHERN_ISLANDS;
+ hasFP64 = true;
} else {
DescriptionString = DescriptionStringR600;
GPU = GK_R600;
+ hasFP64 = false;
}
AddrSpaceMap = &R600AddrSpaceMap;
UseAddrSpaceMapMangling = true;
@@ -1751,8 +1755,9 @@ public:
void getTargetDefines(const LangOptions &Opts,
MacroBuilder &Builder) const override {
Builder.defineMacro("__R600__");
- if (GPU >= GK_SOUTHERN_ISLANDS && Opts.OpenCL)
+ if (hasFP64 && Opts.OpenCL) {
Builder.defineMacro("cl_khr_fp64");
+ }
}
BuiltinVaListKind getBuiltinVaListKind() const override {
@@ -1810,16 +1815,19 @@ public:
case GK_EVERGREEN:
case GK_NORTHERN_ISLANDS:
DescriptionString = DescriptionStringR600;
+ hasFP64 = false;
break;
case GK_R600_DOUBLE_OPS:
case GK_R700_DOUBLE_OPS:
case GK_EVERGREEN_DOUBLE_OPS:
case GK_CAYMAN:
DescriptionString = DescriptionStringR600DoubleOps;
+ hasFP64 = true;
break;
case GK_SOUTHERN_ISLANDS:
case GK_SEA_ISLANDS:
DescriptionString = DescriptionStringSI;
+ hasFP64 = true;
break;
}
OpenPOWER on IntegriCloud