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