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