summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYaxun Liu <Yaxun.Liu@amd.com>2016-08-17 20:39:49 +0000
committerYaxun Liu <Yaxun.Liu@amd.com>2016-08-17 20:39:49 +0000
commit9385680c241b031a3c2a99c4dcc004f67caab9c0 (patch)
tree8f3557266dd66fb91c207364a25c93ccd11c28eb
parent891a49c4879ce50ad0afe6ea5b946b1dde8bac83 (diff)
downloadbcm5719-llvm-9385680c241b031a3c2a99c4dcc004f67caab9c0.tar.gz
bcm5719-llvm-9385680c241b031a3c2a99c4dcc004f67caab9c0.zip
[OpenCL] AMDGPU: add support of cl_khr_subgroups
Patch by Aaron En Ye Shi. Differential Revision: https://reviews.llvm.org/D23573 llvm-svn: 278972
-rw-r--r--clang/lib/Basic/Targets.cpp1
-rw-r--r--clang/test/Misc/amdgcn.languageOptsOpenCL.cl8
-rw-r--r--clang/test/SemaOpenCL/extension-version.cl3
3 files changed, 11 insertions, 1 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 7dfa0a361dc..cbda245218c 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -2152,6 +2152,7 @@ public:
Opts.cl_khr_int64_base_atomics = 1;
Opts.cl_khr_int64_extended_atomics = 1;
Opts.cl_khr_mipmap_image = 1;
+ Opts.cl_khr_subgroups = 1;
Opts.cl_khr_3d_image_writes = 1;
Opts.cl_amd_media_ops = 1;
Opts.cl_amd_media_ops2 = 1;
diff --git a/clang/test/Misc/amdgcn.languageOptsOpenCL.cl b/clang/test/Misc/amdgcn.languageOptsOpenCL.cl
index 3befefdeecd..6a07fc98069 100644
--- a/clang/test/Misc/amdgcn.languageOptsOpenCL.cl
+++ b/clang/test/Misc/amdgcn.languageOptsOpenCL.cl
@@ -199,11 +199,17 @@
#pragma OPENCL EXTENSION cl_khr_srgb_image_writes: enable
// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_srgb_image_writes' - ignoring}}
+#if (__OPENCL_C_VERSION__ >= 200)
+#ifndef cl_khr_subgroups
+#error "Missing cl_khr_subgroups define"
+#endif
+#else
#ifdef cl_khr_subgroups
#error "Incorrect cl_khr_subgroups define"
#endif
+// expected-warning@+2{{unsupported OpenCL extension 'cl_khr_subgroups' - ignoring}}
+#endif
#pragma OPENCL EXTENSION cl_khr_subgroups: enable
-// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_subgroups' - ignoring}}
#ifdef cl_khr_terminate_context
#error "Incorrect cl_khr_terminate_context define"
diff --git a/clang/test/SemaOpenCL/extension-version.cl b/clang/test/SemaOpenCL/extension-version.cl
index 6a3cfde9f13..6100346f707 100644
--- a/clang/test/SemaOpenCL/extension-version.cl
+++ b/clang/test/SemaOpenCL/extension-version.cl
@@ -247,6 +247,9 @@
#error "Missing cl_khr_subgroups define"
#endif
#else
+#ifdef cl_khr_subgroups
+#error "Incorrect cl_khr_subgroups define"
+#endif
// expected-warning@+2{{unsupported OpenCL extension 'cl_khr_subgroups' - ignoring}}
#endif
#pragma OPENCL EXTENSION cl_khr_subgroups: enable
OpenPOWER on IntegriCloud