diff options
author | Jan Vesely <jan.vesely@rutgers.edu> | 2015-05-01 17:38:13 +0000 |
---|---|---|
committer | Jan Vesely <jan.vesely@rutgers.edu> | 2015-05-01 17:38:13 +0000 |
commit | a3abd6da8be1659b5c4b697a1fa87f0ec36d56a7 (patch) | |
tree | ce3ac7156e2291c98a056e05d3492de2e5dfcfb7 /clang/lib/Basic/Targets.cpp | |
parent | 35e04e84fa8c08705ec0fd88abfe2e8646f79835 (diff) | |
download | bcm5719-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/Basic/Targets.cpp')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 10 |
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; } |