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