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