1 | // REQUIRES: amdgpu-registered-target |
2 | // RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple amdgcn-unknown-unknown |
3 | // RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple amdgcn-unknown-unknown |
4 | // RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple amdgcn-unknown-unknown |
5 | // RUN: %clang_cc1 -x cl -cl-std=CL2.0 %s -verify -triple amdgcn-unknown-unknown |
6 | // RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple amdgcn-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES |
7 | // RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple amdgcn-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES |
8 | // RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple amdgcn-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES |
9 | // RUN: %clang_cc1 -x cl -cl-std=CL2.0 %s -verify -triple amdgcn-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES |
10 | |
11 | // Extensions in all versions |
12 | #ifndef cl_clang_storage_class_specifiers |
13 | #error "Missing cl_clang_storage_class_specifiers define" |
14 | #endif |
15 | #pragma OPENCL EXTENSION cl_clang_storage_class_specifiers: enable |
16 | |
17 | #ifndef cl_khr_fp16 |
18 | #error "Missing cl_khr_fp16 define" |
19 | #endif |
20 | #pragma OPENCL EXTENSION cl_khr_fp16: enable |
21 | |
22 | #ifndef cl_khr_int64_base_atomics |
23 | #error "Missing cl_khr_int64_base_atomics define" |
24 | #endif |
25 | #pragma OPENCL EXTENSION cl_khr_int64_base_atomics: enable |
26 | |
27 | #ifndef cl_khr_int64_extended_atomics |
28 | #error "Missing cl_khr_int64_extended_atomics define" |
29 | #endif |
30 | #pragma OPENCL EXTENSION cl_khr_int64_extended_atomics: enable |
31 | |
32 | #ifdef cl_khr_gl_sharing |
33 | #error "Incorrect cl_khr_gl_sharing define" |
34 | #endif |
35 | #pragma OPENCL EXTENSION cl_khr_gl_sharing: enable |
36 | // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_gl_sharing' - ignoring}} |
37 | |
38 | #ifndef cl_khr_icd |
39 | #error "Missing cl_khr_icd define" |
40 | #endif |
41 | #pragma OPENCL EXTENSION cl_khr_icd: enable |
42 | |
43 | // Core features in CL 1.1 |
44 | |
45 | #ifndef cl_khr_byte_addressable_store |
46 | #error "Missing cl_khr_byte_addressable_store define" |
47 | #endif |
48 | #pragma OPENCL EXTENSION cl_khr_byte_addressable_store: enable |
49 | #if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES |
50 | // expected-warning@-2{{OpenCL extension 'cl_khr_byte_addressable_store' is core feature or supported optional core feature - ignoring}} |
51 | #endif |
52 | |
53 | #ifndef cl_khr_global_int32_base_atomics |
54 | #error "Missing cl_khr_global_int32_base_atomics define" |
55 | #endif |
56 | #pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics: enable |
57 | #if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES |
58 | // expected-warning@-2{{OpenCL extension 'cl_khr_global_int32_base_atomics' is core feature or supported optional core feature - ignoring}} |
59 | #endif |
60 | |
61 | #ifndef cl_khr_global_int32_extended_atomics |
62 | #error "Missing cl_khr_global_int32_extended_atomics define" |
63 | #endif |
64 | #pragma OPENCL EXTENSION cl_khr_global_int32_extended_atomics: enable |
65 | #if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES |
66 | // expected-warning@-2{{OpenCL extension 'cl_khr_global_int32_extended_atomics' is core feature or supported optional core feature - ignoring}} |
67 | #endif |
68 | |
69 | #ifndef cl_khr_local_int32_base_atomics |
70 | #error "Missing cl_khr_local_int32_base_atomics define" |
71 | #endif |
72 | #pragma OPENCL EXTENSION cl_khr_local_int32_base_atomics: enable |
73 | #if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES |
74 | // expected-warning@-2{{OpenCL extension 'cl_khr_local_int32_base_atomics' is core feature or supported optional core feature - ignoring}} |
75 | #endif |
76 | |
77 | #ifndef cl_khr_local_int32_extended_atomics |
78 | #error "Missing cl_khr_local_int32_extended_atomics define" |
79 | #endif |
80 | #pragma OPENCL EXTENSION cl_khr_local_int32_extended_atomics: enable |
81 | #if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES |
82 | // expected-warning@-2{{OpenCL extension 'cl_khr_local_int32_extended_atomics' is core feature or supported optional core feature - ignoring}} |
83 | #endif |
84 | |
85 | #ifdef cl_khr_select_fprounding_mode |
86 | #error "Incorrect cl_khr_select_fprounding_mode define" |
87 | #endif |
88 | #pragma OPENCL EXTENSION cl_khr_select_fprounding_mode: enable |
89 | // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_select_fprounding_mode' - ignoring}} |
90 | |
91 | |
92 | // Core feature in CL 1.2 |
93 | #ifndef cl_khr_fp64 |
94 | #error "Missing cl_khr_fp64 define" |
95 | #endif |
96 | #pragma OPENCL EXTENSION cl_khr_fp64: enable |
97 | #if (__OPENCL_C_VERSION__ >= 120) && defined TEST_CORE_FEATURES |
98 | // expected-warning@-2{{OpenCL extension 'cl_khr_fp64' is core feature or supported optional core feature - ignoring}} |
99 | #endif |
100 | |
101 | //Core feature in CL 2.0 |
102 | #ifndef cl_khr_3d_image_writes |
103 | #error "Missing cl_khr_3d_image_writes define" |
104 | #endif |
105 | #pragma OPENCL EXTENSION cl_khr_3d_image_writes: enable |
106 | #if (__OPENCL_C_VERSION__ >= 200) && defined TEST_CORE_FEATURES |
107 | // expected-warning@-2{{OpenCL extension 'cl_khr_3d_image_writes' is core feature or supported optional core feature - ignoring}} |
108 | #endif |
109 | |
110 | |
111 | |
112 | #ifdef cl_khr_gl_event |
113 | #error "Incorrect cl_khr_gl_event define" |
114 | #endif |
115 | #pragma OPENCL EXTENSION cl_khr_gl_event: enable |
116 | // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_gl_event' - ignoring}} |
117 | |
118 | #ifdef cl_khr_d3d10_sharing |
119 | #error "Incorrect cl_khr_d3d10_sharing define" |
120 | #endif |
121 | #pragma OPENCL EXTENSION cl_khr_d3d10_sharing: enable |
122 | // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_d3d10_sharing' - ignoring}} |
123 | |
124 | #ifdef cl_khr_context_abort |
125 | #error "Incorrect cl_context_abort define" |
126 | #endif |
127 | #pragma OPENCL EXTENSION cl_khr_context_abort: enable |
128 | // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_context_abort' - ignoring}} |
129 | |
130 | #ifdef cl_khr_d3d11_sharing |
131 | #error "Incorrect cl_khr_d3d11_sharing define" |
132 | #endif |
133 | #pragma OPENCL EXTENSION cl_khr_d3d11_sharing: enable |
134 | // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_d3d11_sharing' - ignoring}} |
135 | |
136 | #ifdef cl_khr_dx9_media_sharing |
137 | #error "Incorrect cl_khr_dx9_media_sharing define" |
138 | #endif |
139 | #pragma OPENCL EXTENSION cl_khr_dx9_media_sharing: enable |
140 | // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_dx9_media_sharing' - ignoring}} |
141 | |
142 | #ifdef cl_khr_image2d_from_buffer |
143 | #error "Incorrect cl_khr_image2d_from_buffer define" |
144 | #endif |
145 | #pragma OPENCL EXTENSION cl_khr_image2d_from_buffer: enable |
146 | // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_image2d_from_buffer' - ignoring}} |
147 | |
148 | #ifdef cl_khr_initialize_memory |
149 | #error "Incorrect cl_khr_initialize_memory define" |
150 | #endif |
151 | #pragma OPENCL EXTENSION cl_khr_initialize_memory: enable |
152 | // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_initialize_memory' - ignoring}} |
153 | |
154 | #ifdef cl_khr_gl_depth_images |
155 | #error "Incorrect cl_khr_gl_depth_images define" |
156 | #endif |
157 | #pragma OPENCL EXTENSION cl_khr_gl_depth_images: enable |
158 | // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_gl_depth_images' - ignoring}} |
159 | |
160 | #ifdef cl_khr_gl_msaa_sharing |
161 | #error "Incorrect cl_khr_gl_msaa_sharing define" |
162 | #endif |
163 | #pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing: enable |
164 | // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_gl_msaa_sharing' - ignoring}} |
165 | |
166 | #ifdef cl_khr_spir |
167 | #error "Incorrect cl_khr_spir define" |
168 | #endif |
169 | #pragma OPENCL EXTENSION cl_khr_spir: enable |
170 | // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_spir' - ignoring}} |
171 | |
172 | #ifdef cl_khr_egl_event |
173 | #error "Incorrect cl_khr_egl_event define" |
174 | #endif |
175 | #pragma OPENCL EXTENSION cl_khr_egl_event: enable |
176 | // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_egl_event' - ignoring}} |
177 | |
178 | #ifdef cl_khr_egl_image |
179 | #error "Incorrect cl_khr_egl_image define" |
180 | #endif |
181 | #pragma OPENCL EXTENSION cl_khr_egl_image: enable |
182 | // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_egl_image' - ignoring}} |
183 | |
184 | #if (__OPENCL_C_VERSION__ >= 200) |
185 | #ifndef cl_khr_mipmap_image |
186 | #error "Missing cl_khr_mipmap_image define" |
187 | #endif |
188 | #else |
189 | #ifdef cl_khr_mipmap_image |
190 | #error "Incorrect cl_khr_mipmap_image define" |
191 | #endif |
192 | // expected-warning@+2{{unsupported OpenCL extension 'cl_khr_mipmap_image' - ignoring}} |
193 | #endif |
194 | #pragma OPENCL EXTENSION cl_khr_mipmap_image: enable |
195 | |
196 | #ifdef cl_khr_srgb_image_writes |
197 | #error "Incorrect cl_khr_srgb_image_writes define" |
198 | #endif |
199 | #pragma OPENCL EXTENSION cl_khr_srgb_image_writes: enable |
200 | // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_srgb_image_writes' - ignoring}} |
201 | |
202 | #if (__OPENCL_C_VERSION__ >= 200) |
203 | #ifndef cl_khr_subgroups |
204 | #error "Missing cl_khr_subgroups define" |
205 | #endif |
206 | #else |
207 | #ifdef cl_khr_subgroups |
208 | #error "Incorrect cl_khr_subgroups define" |
209 | #endif |
210 | // expected-warning@+2{{unsupported OpenCL extension 'cl_khr_subgroups' - ignoring}} |
211 | #endif |
212 | #pragma OPENCL EXTENSION cl_khr_subgroups: enable |
213 | |
214 | #ifdef cl_khr_terminate_context |
215 | #error "Incorrect cl_khr_terminate_context define" |
216 | #endif |
217 | #pragma OPENCL EXTENSION cl_khr_terminate_context: enable |
218 | // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_terminate_context' - ignoring}} |
219 | |
220 | #ifndef cl_amd_media_ops |
221 | #error "Missing cl_amd_media_ops define" |
222 | #endif |
223 | #pragma OPENCL EXTENSION cl_amd_media_ops: enable |
224 | |
225 | #ifndef cl_amd_media_ops2 |
226 | #error "Missing cl_amd_media_ops2 define" |
227 | #endif |
228 | #pragma OPENCL EXTENSION cl_amd_media_ops2: enable |
229 | |
230 | |