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 #ifdef cl_khr_srgb_image_writes 185 #error "Incorrect cl_khr_srgb_image_writes define" 186 #endif 187 #pragma OPENCL EXTENSION cl_khr_srgb_image_writes: enable 188 // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_srgb_image_writes' - ignoring}} 189 190 #ifdef cl_khr_subgroups 191 #error "Incorrect cl_khr_subgroups define" 192 #endif 193 #pragma OPENCL EXTENSION cl_khr_subgroups: enable 194 // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_subgroups' - ignoring}} 195 196 #ifdef cl_khr_terminate_context 197 #error "Incorrect cl_khr_terminate_context define" 198 #endif 199 #pragma OPENCL EXTENSION cl_khr_terminate_context: enable 200 // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_terminate_context' - ignoring}} 201