]> granicus.if.org Git - clang/commitdiff
[OpenCL] AMDGPU: add support of cl_khr_subgroups
authorYaxun Liu <Yaxun.Liu@amd.com>
Wed, 17 Aug 2016 20:39:49 +0000 (20:39 +0000)
committerYaxun Liu <Yaxun.Liu@amd.com>
Wed, 17 Aug 2016 20:39:49 +0000 (20:39 +0000)
Patch by Aaron En Ye Shi.

Differential Revision: https://reviews.llvm.org/D23573

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@278972 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Basic/Targets.cpp
test/Misc/amdgcn.languageOptsOpenCL.cl
test/SemaOpenCL/extension-version.cl

index 7dfa0a361dcc05b9931ef2457c17199decebae86..cbda245218c59484e3c64d399552110c89dc8204 100644 (file)
@@ -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;
index 3befefdeecdb9a52d20be09062b31fcb2e9e6016..6a07fc98069caf5a682347c29d5c8b55614fcb77 100644 (file)
 #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"
index 6a3cfde9f13ab89d6cf684cc3f11785ec5223ded..6100346f7072909240b15eda935f70eec840a621 100644 (file)
 #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