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