1 // REQUIRES
: nvptx-registered-target
2 // RUN
: %clang_cc1 -x cl -cl-std
=CL %s -verify -triple nvptx-unknown-unknown
3 // RUN
: %clang_cc1 -x cl -cl-std
=CL1.1 %s -verify -triple nvptx-unknown-unknown
4 // RUN
: %clang_cc1 -x cl -cl-std
=CL1.2 %s -verify -triple nvptx-unknown-unknown
5 // RUN
: %clang_cc1 -x cl -cl-std
=CL2.0 %s -verify -triple nvptx-unknown-unknown
6 // RUN
: %clang_cc1 -x cl -cl-std
=CL %s -verify -triple nvptx-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES
7 // RUN
: %clang_cc1 -x cl -cl-std
=CL1.1 %s -verify -triple nvptx-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES
8 // RUN
: %clang_cc1 -x cl -cl-std
=CL1.2 %s -verify -triple nvptx-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES
9 // RUN
: %clang_cc1 -x cl -cl-std
=CL2.0 %s -verify -triple nvptx-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES
10 // RUN
: %clang_cc1 -x cl -cl-std
=CL %s -verify -triple nvptx64-unknown-unknown
11 // RUN
: %clang_cc1 -x cl -cl-std
=CL1.1 %s -verify -triple nvptx64-unknown-unknown
12 // RUN
: %clang_cc1 -x cl -cl-std
=CL1.2 %s -verify -triple nvptx64-unknown-unknown
13 // RUN
: %clang_cc1 -x cl -cl-std
=CL2.0 %s -verify -triple nvptx64-unknown-unknown
14 // RUN
: %clang_cc1 -x cl -cl-std
=CL %s -verify -triple nvptx64-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES
15 // RUN
: %clang_cc1 -x cl -cl-std
=CL1.1 %s -verify -triple nvptx64-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES
16 // RUN
: %clang_cc1 -x cl -cl-std
=CL1.2 %s -verify -triple nvptx64-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES
17 // RUN
: %clang_cc1 -x cl -cl-std
=CL2.0 %s -verify -triple nvptx64-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES
19 // Extensions in all versions
20 #ifndef cl_clang_storage_class_specifiers
21 #error
"Missing cl_clang_storage_class_specifiers define"
23 #pragma OPENCL EXTENSION cl_clang_storage_class_specifiers
: enable
26 #error
"Incorrect cl_khr_fp16 define"
28 #pragma OPENCL EXTENSION cl_khr_fp16
: enable
29 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_fp16
' - ignoring
}}
31 #ifdef cl_khr_int64_base_atomics
32 #error
"Incorrect cl_khr_int64_base_atomics define"
34 #pragma OPENCL EXTENSION cl_khr_int64_base_atomics
: enable
35 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_int64_base_atomics
' - ignoring
}}
37 #ifdef cl_khr_int64_extended_atomics
38 #error
"Incorrect cl_khr_int64_extended_atomics define"
40 #pragma OPENCL EXTENSION cl_khr_int64_extended_atomics
: enable
41 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_int64_extended_atomics
' - ignoring
}}
43 #ifndef cl_khr_gl_sharing
44 #error
"Missing cl_khr_gl_sharing define"
46 #pragma OPENCL EXTENSION cl_khr_gl_sharing
: enable
49 #error
"Missing cl_khr_icd define"
51 #pragma OPENCL EXTENSION cl_khr_icd
: enable
53 // Core features in CL
1.1
55 #ifndef cl_khr_byte_addressable_store
56 #error
"Missing cl_khr_byte_addressable_store define"
58 #pragma OPENCL EXTENSION cl_khr_byte_addressable_store
: enable
59 #if
(__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES
60 // expected-warning
@-
2{{OpenCL extension
'cl_khr_byte_addressable_store
' is core feature or supported optional core feature - ignoring
}}
63 #ifndef cl_khr_global_int32_base_atomics
64 #error
"Missing cl_khr_global_int32_base_atomics define"
66 #pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics
: enable
67 #if
(__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES
68 // expected-warning
@-
2{{OpenCL extension
'cl_khr_global_int32_base_atomics
' is core feature or supported optional core feature - ignoring
}}
71 #ifndef cl_khr_global_int32_extended_atomics
72 #error
"Missing cl_khr_global_int32_extended_atomics define"
74 #pragma OPENCL EXTENSION cl_khr_global_int32_extended_atomics
: enable
75 #if
(__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES
76 // expected-warning
@-
2{{OpenCL extension
'cl_khr_global_int32_extended_atomics
' is core feature or supported optional core feature - ignoring
}}
79 #ifndef cl_khr_local_int32_base_atomics
80 #error
"Missing cl_khr_local_int32_base_atomics define"
82 #pragma OPENCL EXTENSION cl_khr_local_int32_base_atomics
: enable
83 #if
(__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES
84 // expected-warning
@-
2{{OpenCL extension
'cl_khr_local_int32_base_atomics
' is core feature or supported optional core feature - ignoring
}}
87 #ifndef cl_khr_local_int32_extended_atomics
88 #error
"Missing cl_khr_local_int32_extended_atomics define"
90 #pragma OPENCL EXTENSION cl_khr_local_int32_extended_atomics
: enable
91 #if
(__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES
92 // expected-warning
@-
2{{OpenCL extension
'cl_khr_local_int32_extended_atomics
' is core feature or supported optional core feature - ignoring
}}
95 #if
(__OPENCL_C_VERSION__ < 110)
96 // Deprecated above
1.0
97 #ifdef cl_khr_select_fprounding_mode
98 #error
"Incorrect cl_khr_select_fprounding_mode define"
100 #pragma OPENCL EXTENSION cl_khr_select_fprounding_mode
: enable
101 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_select_fprounding_mode
' - ignoring
}}
105 // Core feature in CL
1.2
107 #error
"Missing cl_khr_fp64 define"
109 #pragma OPENCL EXTENSION cl_khr_fp64
: enable
110 #if
(__OPENCL_C_VERSION__ >= 120) && defined TEST_CORE_FEATURES
111 // expected-warning
@-
2{{OpenCL extension
'cl_khr_fp64
' is core feature or supported optional core feature - ignoring
}}
114 // Core feature in CL
2.0, but not supported on nvptx
115 #ifdef cl_khr_3d_image_writes
116 #error
"Incorrect cl_khr_3d_image_writes define"
118 #pragma OPENCL EXTENSION cl_khr_3d_image_writes
: enable
119 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_3d_image_writes
' - ignoring
}}
123 #ifdef cl_khr_gl_event
124 #error
"Incorrect cl_khr_gl_event define"
126 #pragma OPENCL EXTENSION cl_khr_gl_event
: enable
127 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_gl_event
' - ignoring
}}
129 #ifdef cl_khr_d3d10_sharing
130 #error
"Incorrect cl_khr_d3d10_sharing define"
132 #pragma OPENCL EXTENSION cl_khr_d3d10_sharing
: enable
133 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_d3d10_sharing
' - ignoring
}}
135 #ifdef cl_khr_context_abort
136 #error
"Incorrect cl_context_abort define"
138 #pragma OPENCL EXTENSION cl_khr_context_abort
: enable
139 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_context_abort
' - ignoring
}}
141 #ifdef cl_khr_d3d11_sharing
142 #error
"Incorrect cl_khr_d3d11_sharing define"
144 #pragma OPENCL EXTENSION cl_khr_d3d11_sharing
: enable
145 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_d3d11_sharing
' - ignoring
}}
147 #ifdef cl_khr_dx9_media_sharing
148 #error
"Incorrect cl_khr_dx9_media_sharing define"
150 #pragma OPENCL EXTENSION cl_khr_dx9_media_sharing
: enable
151 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_dx9_media_sharing
' - ignoring
}}
153 #ifdef cl_khr_image2d_from_buffer
154 #error
"Incorrect cl_khr_image2d_from_buffer define"
156 #pragma OPENCL EXTENSION cl_khr_image2d_from_buffer
: enable
157 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_image2d_from_buffer
' - ignoring
}}
159 #ifdef cl_khr_initialize_memory
160 #error
"Incorrect cl_khr_initialize_memory define"
162 #pragma OPENCL EXTENSION cl_khr_initialize_memory
: enable
163 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_initialize_memory
' - ignoring
}}
165 #ifdef cl_khr_gl_depth_images
166 #error
"Incorrect cl_khr_gl_depth_images define"
168 #pragma OPENCL EXTENSION cl_khr_gl_depth_images
: enable
169 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_gl_depth_images
' - ignoring
}}
171 #ifdef cl_khr_gl_msaa_sharing
172 #error
"Incorrect cl_khr_gl_msaa_sharing define"
174 #pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing
: enable
175 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_gl_msaa_sharing
' - ignoring
}}
178 #error
"Incorrect cl_khr_spir define"
180 #pragma OPENCL EXTENSION cl_khr_spir
: enable
181 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_spir
' - ignoring
}}
183 #ifdef cl_khr_egl_event
184 #error
"Incorrect cl_khr_egl_event define"
186 #pragma OPENCL EXTENSION cl_khr_egl_event
: enable
187 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_egl_event
' - ignoring
}}
189 #ifdef cl_khr_egl_image
190 #error
"Missing cl_khr_egl_image define"
192 #pragma OPENCL EXTENSION cl_khr_egl_image
: enable
193 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_egl_image
' - ignoring
}}
195 #ifdef cl_khr_srgb_image_writes
196 #error
"Incorrect cl_khr_srgb_image_writes define"
198 #pragma OPENCL EXTENSION cl_khr_srgb_image_writes
: enable
199 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_srgb_image_writes
' - ignoring
}}
201 #ifdef cl_khr_subgroups
202 #error
"Incorrect cl_khr_subgroups define"
204 #pragma OPENCL EXTENSION cl_khr_subgroups
: enable
205 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_subgroups
' - ignoring
}}
207 #ifdef cl_khr_terminate_context
208 #error
"Incorrect cl_khr_terminate_context define"
210 #pragma OPENCL EXTENSION cl_khr_terminate_context
: enable
211 // expected-warning
@-
1{{unsupported OpenCL extension
'cl_khr_terminate_context
' - ignoring
}}