xref: /llvm-project/clang/test/Misc/r600.languageOptsOpenCL.cl (revision 237c6924bd46ec0e33da71f9616caf9bf9965b23)
1211ba785SJan Vesely// REQUIRES: amdgpu-registered-target
2211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -target-cpu cayman
3211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -target-cpu cayman
4211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -target-cpu cayman
5211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cayman
6211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cayman
7211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cayman
8211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -target-cpu cypress
9211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -target-cpu cypress
10211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -target-cpu cypress
11211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cypress
12211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cypress
13211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cypress
14211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -target-cpu turks
15211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -target-cpu turks
16211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -target-cpu turks
17211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu turks
18211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu turks
19211ba785SJan Vesely// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu turks
20211ba785SJan Vesely
21211ba785SJan Vesely// Extensions in all versions
22211ba785SJan Vesely#ifndef cl_clang_storage_class_specifiers
23211ba785SJan Vesely#error "Missing cl_clang_storage_class_specifiers define"
24211ba785SJan Vesely#endif
25211ba785SJan Vesely#pragma OPENCL EXTENSION cl_clang_storage_class_specifiers : enable
264fde2b6aSAnastasia Stulova
274fde2b6aSAnastasia Stulova#ifndef __cl_clang_function_pointers
284fde2b6aSAnastasia Stulova#error "Missing __cl_clang_function_pointers define"
294fde2b6aSAnastasia Stulova#endif
304fde2b6aSAnastasia Stulova#pragma OPENCL EXTENSION __cl_clang_function_pointers : enable
31211ba785SJan Vesely
320e874fc0SAnastasia Stulova#ifndef __cl_clang_variadic_functions
330e874fc0SAnastasia Stulova#error "Missing __cl_clang_variadic_functions define"
340e874fc0SAnastasia Stulova#endif
350e874fc0SAnastasia Stulova#pragma OPENCL EXTENSION __cl_clang_variadic_functions : enable
360e874fc0SAnastasia Stulova
37e994e74bSAnastasia Stulova#ifndef __cl_clang_non_portable_kernel_param_types
38e994e74bSAnastasia Stulova#error "Missing __cl_clang_non_portable_kernel_param_types define"
39e994e74bSAnastasia Stulova#endif
40e994e74bSAnastasia Stulova#pragma OPENCL EXTENSION __cl_clang_non_portable_kernel_param_types : enable
41e994e74bSAnastasia Stulova
42*237c6924SAnastasia Stulova#ifndef __cl_clang_bitfields
43*237c6924SAnastasia Stulova#error "Missing __cl_clang_bitfields define"
44*237c6924SAnastasia Stulova#endif
45*237c6924SAnastasia Stulova#pragma OPENCL EXTENSION __cl_clang_bitfields : enable
46*237c6924SAnastasia Stulova
47211ba785SJan Vesely#ifdef cl_khr_fp16
48211ba785SJan Vesely#error "Incorrect cl_khr_fp16 define"
49211ba785SJan Vesely#endif
50211ba785SJan Vesely#pragma OPENCL EXTENSION cl_khr_fp16: enable
51211ba785SJan Vesely// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_fp16' - ignoring}}
52211ba785SJan Vesely
53211ba785SJan Vesely#ifdef cl_khr_int64_base_atomics
54211ba785SJan Vesely#error "Incorrect cl_khr_int64_base_atomics define"
55211ba785SJan Vesely#endif
56211ba785SJan Vesely#pragma OPENCL EXTENSION cl_khr_int64_base_atomics: enable
57211ba785SJan Vesely// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_int64_base_atomics' - ignoring}}
58211ba785SJan Vesely
59211ba785SJan Vesely#ifdef cl_khr_int64_extended_atomics
60211ba785SJan Vesely#error "Incorrect cl_khr_int64_extended_atomics define"
61211ba785SJan Vesely#endif
62211ba785SJan Vesely#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics: enable
63211ba785SJan Vesely// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_int64_extended_atomics' - ignoring}}
64211ba785SJan Vesely
65211ba785SJan Vesely// Core features in CL 1.1
66211ba785SJan Vesely
67211ba785SJan Vesely#ifndef cl_khr_byte_addressable_store
68211ba785SJan Vesely#error "Missing cl_khr_byte_addressable_store define"
69211ba785SJan Vesely#endif
70211ba785SJan Vesely#pragma OPENCL EXTENSION cl_khr_byte_addressable_store: enable
71211ba785SJan Vesely#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES
72211ba785SJan Vesely// expected-warning@-2{{OpenCL extension 'cl_khr_byte_addressable_store' is core feature or supported optional core feature - ignoring}}
73211ba785SJan Vesely#endif
74211ba785SJan Vesely
75211ba785SJan Vesely#ifndef cl_khr_global_int32_base_atomics
76211ba785SJan Vesely#error "Missing cl_khr_global_int32_base_atomics define"
77211ba785SJan Vesely#endif
78211ba785SJan Vesely#pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics: enable
79211ba785SJan Vesely#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES
80211ba785SJan Vesely// expected-warning@-2{{OpenCL extension 'cl_khr_global_int32_base_atomics' is core feature or supported optional core feature - ignoring}}
81211ba785SJan Vesely#endif
82211ba785SJan Vesely
83211ba785SJan Vesely#ifndef cl_khr_global_int32_extended_atomics
84211ba785SJan Vesely#error "Missing cl_khr_global_int32_extended_atomics define"
85211ba785SJan Vesely#endif
86211ba785SJan Vesely#pragma OPENCL EXTENSION cl_khr_global_int32_extended_atomics: enable
87211ba785SJan Vesely#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES
88211ba785SJan Vesely// expected-warning@-2{{OpenCL extension 'cl_khr_global_int32_extended_atomics' is core feature or supported optional core feature - ignoring}}
89211ba785SJan Vesely#endif
90211ba785SJan Vesely
91211ba785SJan Vesely#ifndef cl_khr_local_int32_base_atomics
92211ba785SJan Vesely#error "Missing cl_khr_local_int32_base_atomics define"
93211ba785SJan Vesely#endif
94211ba785SJan Vesely#pragma OPENCL EXTENSION cl_khr_local_int32_base_atomics: enable
95211ba785SJan Vesely#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES
96211ba785SJan Vesely// expected-warning@-2{{OpenCL extension 'cl_khr_local_int32_base_atomics' is core feature or supported optional core feature - ignoring}}
97211ba785SJan Vesely#endif
98211ba785SJan Vesely
99211ba785SJan Vesely#ifndef cl_khr_local_int32_extended_atomics
100211ba785SJan Vesely#error "Missing cl_khr_local_int32_extended_atomics define"
101211ba785SJan Vesely#endif
102211ba785SJan Vesely#pragma OPENCL EXTENSION cl_khr_local_int32_extended_atomics: enable
103211ba785SJan Vesely#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES
104211ba785SJan Vesely// expected-warning@-2{{OpenCL extension 'cl_khr_local_int32_extended_atomics' is core feature or supported optional core feature - ignoring}}
105211ba785SJan Vesely#endif
106211ba785SJan Vesely
107211ba785SJan Vesely// Core feature in CL 1.2
108211ba785SJan Vesely#ifdef __HAS_FP64__
109211ba785SJan Vesely#ifndef cl_khr_fp64
110211ba785SJan Vesely#error "Missing cl_khr_fp64 define"
111211ba785SJan Vesely#endif
112211ba785SJan Vesely#pragma OPENCL EXTENSION cl_khr_fp64: enable
113211ba785SJan Vesely#if (__OPENCL_C_VERSION__ >= 120) && defined TEST_CORE_FEATURES
114211ba785SJan Vesely// expected-warning@-2{{OpenCL extension 'cl_khr_fp64' is core feature or supported optional core feature - ignoring}}
115211ba785SJan Vesely#endif
116211ba785SJan Vesely#else
117211ba785SJan Vesely#ifdef cl_khr_fp64
118211ba785SJan Vesely#error "Incorrect cl_khr_fp64 define"
119211ba785SJan Vesely#endif
120211ba785SJan Vesely#pragma OPENCL EXTENSION cl_khr_fp64: enable
121211ba785SJan Vesely// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_fp64' - ignoring}}
122211ba785SJan Vesely#endif // __HAS_FP64__
123211ba785SJan Vesely
124211ba785SJan Vesely//Core feature in CL 2.0
125211ba785SJan Vesely#ifdef cl_khr_3d_image_writes
126211ba785SJan Vesely#error "Incorrect cl_khr_3d_image_writes define"
127211ba785SJan Vesely#endif
128211ba785SJan Vesely#pragma OPENCL EXTENSION cl_khr_3d_image_writes: enable
129211ba785SJan Vesely// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_3d_image_writes' - ignoring}}
130211ba785SJan Vesely
131211ba785SJan Vesely#ifdef cl_khr_gl_msaa_sharing
132211ba785SJan Vesely#error "Incorrect cl_khr_gl_msaa_sharing define"
133211ba785SJan Vesely#endif
134211ba785SJan Vesely#pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing: enable
135211ba785SJan Vesely// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_gl_msaa_sharing' - ignoring}}
136211ba785SJan Vesely
137211ba785SJan Vesely#ifdef cl_khr_srgb_image_writes
138211ba785SJan Vesely#error "Incorrect cl_khr_srgb_image_writes define"
139211ba785SJan Vesely#endif
140211ba785SJan Vesely#pragma OPENCL EXTENSION cl_khr_srgb_image_writes: enable
141211ba785SJan Vesely// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_srgb_image_writes' - ignoring}}
142211ba785SJan Vesely
143211ba785SJan Vesely#ifdef cl_khr_subgroups
144211ba785SJan Vesely#error "Incorrect cl_khr_subgroups define"
145211ba785SJan Vesely#endif
146211ba785SJan Vesely#pragma OPENCL EXTENSION cl_khr_subgroups: enable
147211ba785SJan Vesely// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_subgroups' - ignoring}}
148211ba785SJan Vesely
149