summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2019-06-18 19:04:27 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2019-06-18 19:04:27 +0000
commit7ae267dc0f34a3dec1e08a8dac42ad780ebbc059 (patch)
tree826a4218d029be66bd47588063d253fe03fefdc1 /clang/test
parent10e6128c62ed4ef9e777a8dcb082f9f0a77d52eb (diff)
downloadbcm5719-llvm-7ae267dc0f34a3dec1e08a8dac42ad780ebbc059.tar.gz
bcm5719-llvm-7ae267dc0f34a3dec1e08a8dac42ad780ebbc059.zip
[OPENMP][NVPTX]Correct codegen for 128 bit long double.
If the host uses 128 bit long doubles, the compiler should generate correct code for NVPTX devices. If the return type has 128 bit long doubles, in LLVM IR this type must be coerced to int array instead. llvm-svn: 363720
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/OpenMP/nvptx_unsupported_type_codegen.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/test/OpenMP/nvptx_unsupported_type_codegen.cpp b/clang/test/OpenMP/nvptx_unsupported_type_codegen.cpp
index 167496cb84f..2573daaa418 100644
--- a/clang/test/OpenMP/nvptx_unsupported_type_codegen.cpp
+++ b/clang/test/OpenMP/nvptx_unsupported_type_codegen.cpp
@@ -1,6 +1,8 @@
// Test target codegen - host bc file has to be created first.
// RUN: %clang_cc1 -verify -fopenmp -x c++ -triple x86_64-unknown-linux -fopenmp-targets=nvptx64-nvidia-cuda -emit-llvm-bc %s -o %t-host.bc
-// RUN: %clang_cc1 -verify -fopenmp -x c++ -triple nvptx64-unknown-unknown -fopenmp-targets=nvptx64-nvidia-cuda -aux-triple x86_64-unknown-linux -emit-llvm %s -fopenmp-is-device -fopenmp-host-ir-file-path %t-host.bc -o - | FileCheck %s
+// RUN: %clang_cc1 -verify -fopenmp -x c++ -triple nvptx64-unknown-unknown -aux-triple x86_64-unknown-linux -fopenmp-targets=nvptx64-nvidia-cuda -aux-triple x86_64-unknown-linux -emit-llvm %s -fopenmp-is-device -fopenmp-host-ir-file-path %t-host.bc -o - | FileCheck %s
+// RUN: %clang_cc1 -verify -fopenmp -x c++ -triple powerpc64le-unknown-linux-gnu -fopenmp-targets=nvptx64-nvidia-cuda -emit-llvm-bc %s -o %t-host.bc
+// RUN: %clang_cc1 -verify -fopenmp -x c++ -triple nvptx64-unknown-unknown -aux-triple powerpc64le-unknown-linux-gnu -fopenmp-targets=nvptx64-nvidia-cuda -aux-triple x86_64-unknown-linux -emit-llvm %s -fopenmp-is-device -fopenmp-host-ir-file-path %t-host.bc -o - | FileCheck %s
// expected-no-diagnostics
// CHECK-DAG: [[T:%.+]] = type {{.+}}, fp128,
@@ -8,7 +10,11 @@
struct T {
char a;
+#ifndef _ARCH_PPC
__float128 f;
+#else
+ long double f;
+#endif
char c;
T() : a(12), f(15) {}
T &operator+(T &b) { f += b.a; return *this;}
OpenPOWER on IntegriCloud