[PATCH] D57527: Do not copy long double and 128-bit fp format from aux target for AMDGPU
Yaxun Liu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 31 13:57:43 PST 2019
This revision was not accepted when it landed; it landed in state "Needs Review".
This revision was automatically updated to reflect the committed changes.
Closed by commit rC352801: Do not copy long double and 128-bit fp format from aux target for AMDGPU (authored by yaxunl, committed by ).
Changed prior to commit:
https://reviews.llvm.org/D57527?vs=184569&id=184604#toc
Repository:
rC Clang
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D57527/new/
https://reviews.llvm.org/D57527
Files:
lib/Basic/Targets/AMDGPU.cpp
test/CodeGenCUDA/types.cu
Index: test/CodeGenCUDA/types.cu
===================================================================
--- test/CodeGenCUDA/types.cu
+++ test/CodeGenCUDA/types.cu
@@ -0,0 +1,10 @@
+// RUN: %clang_cc1 -triple amdgcn -aux-triple x86_64 -fcuda-is-device -emit-llvm %s -o - | FileCheck -check-prefix=DEV %s
+// RUN: %clang_cc1 -triple x86_64 -aux-triple amdgcn -emit-llvm %s -o - | FileCheck -check-prefix=HOST %s
+
+#include "Inputs/cuda.h"
+
+// HOST: @ld_host = global x86_fp80 0xK00000000000000000000
+long double ld_host;
+
+// DEV: @ld_device = addrspace(1) externally_initialized global double 0.000000e+00
+__device__ long double ld_device;
Index: lib/Basic/Targets/AMDGPU.cpp
===================================================================
--- lib/Basic/Targets/AMDGPU.cpp
+++ lib/Basic/Targets/AMDGPU.cpp
@@ -307,5 +307,16 @@
}
void AMDGPUTargetInfo::setAuxTarget(const TargetInfo *Aux) {
+ assert(HalfFormat == Aux->HalfFormat);
+ assert(FloatFormat == Aux->FloatFormat);
+ assert(DoubleFormat == Aux->DoubleFormat);
+
+ // On x86_64 long double is 80-bit extended precision format, which is
+ // not supported by AMDGPU. 128-bit floating point format is also not
+ // supported by AMDGPU. Therefore keep its own format for these two types.
+ auto SaveLongDoubleFormat = LongDoubleFormat;
+ auto SaveFloat128Format = Float128Format;
copyAuxTarget(Aux);
+ LongDoubleFormat = SaveLongDoubleFormat;
+ Float128Format = SaveFloat128Format;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D57527.184604.patch
Type: text/x-patch
Size: 1464 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190131/fbe65a1a/attachment.bin>
More information about the cfe-commits
mailing list