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