| // REQUIRES: amdgpu-registered-target |
| // RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple amdgcn-unknown-unknown |
| // RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple amdgcn-unknown-unknown |
| // RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple amdgcn-unknown-unknown |
| // RUN: %clang_cc1 -x cl -cl-std=CL2.0 %s -verify -triple amdgcn-unknown-unknown |
| // RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple amdgcn-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES |
| // RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple amdgcn-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES |
| // RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple amdgcn-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES |
| // RUN: %clang_cc1 -x cl -cl-std=CL2.0 %s -verify -triple amdgcn-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES |
| |
| // Extensions in all versions |
| #ifndef cl_clang_storage_class_specifiers |
| #error "Missing cl_clang_storage_class_specifiers define" |
| #endif |
| #pragma OPENCL EXTENSION cl_clang_storage_class_specifiers : enable |
| |
| #ifndef __cl_clang_function_pointers |
| #error "Missing __cl_clang_function_pointers define" |
| #endif |
| #pragma OPENCL EXTENSION __cl_clang_function_pointers : enable |
| |
| #ifndef __cl_clang_variadic_functions |
| #error "Missing __cl_clang_variadic_functions define" |
| #endif |
| #pragma OPENCL EXTENSION __cl_clang_variadic_functions : enable |
| |
| #ifndef __cl_clang_non_portable_kernel_param_types |
| #error "Missing __cl_clang_non_portable_kernel_param_types define" |
| #endif |
| #pragma OPENCL EXTENSION __cl_clang_non_portable_kernel_param_types : enable |
| |
| #ifndef __cl_clang_bitfields |
| #error "Missing __cl_clang_bitfields define" |
| #endif |
| #pragma OPENCL EXTENSION __cl_clang_bitfields : enable |
| |
| #ifndef cl_khr_fp16 |
| #error "Missing cl_khr_fp16 define" |
| #endif |
| #pragma OPENCL EXTENSION cl_khr_fp16: enable |
| |
| #ifndef cl_khr_int64_base_atomics |
| #error "Missing cl_khr_int64_base_atomics define" |
| #endif |
| #pragma OPENCL EXTENSION cl_khr_int64_base_atomics: enable |
| |
| #ifndef cl_khr_int64_extended_atomics |
| #error "Missing cl_khr_int64_extended_atomics define" |
| #endif |
| #pragma OPENCL EXTENSION cl_khr_int64_extended_atomics: enable |
| |
| // Core features in CL 1.1 |
| |
| #ifndef cl_khr_byte_addressable_store |
| #error "Missing cl_khr_byte_addressable_store define" |
| #endif |
| #pragma OPENCL EXTENSION cl_khr_byte_addressable_store: enable |
| #if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES |
| // expected-warning@-2{{OpenCL extension 'cl_khr_byte_addressable_store' is core feature or supported optional core feature - ignoring}} |
| #endif |
| |
| #ifndef cl_khr_global_int32_base_atomics |
| #error "Missing cl_khr_global_int32_base_atomics define" |
| #endif |
| #pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics: enable |
| #if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES |
| // expected-warning@-2{{OpenCL extension 'cl_khr_global_int32_base_atomics' is core feature or supported optional core feature - ignoring}} |
| #endif |
| |
| #ifndef cl_khr_global_int32_extended_atomics |
| #error "Missing cl_khr_global_int32_extended_atomics define" |
| #endif |
| #pragma OPENCL EXTENSION cl_khr_global_int32_extended_atomics: enable |
| #if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES |
| // expected-warning@-2{{OpenCL extension 'cl_khr_global_int32_extended_atomics' is core feature or supported optional core feature - ignoring}} |
| #endif |
| |
| #ifndef cl_khr_local_int32_base_atomics |
| #error "Missing cl_khr_local_int32_base_atomics define" |
| #endif |
| #pragma OPENCL EXTENSION cl_khr_local_int32_base_atomics: enable |
| #if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES |
| // expected-warning@-2{{OpenCL extension 'cl_khr_local_int32_base_atomics' is core feature or supported optional core feature - ignoring}} |
| #endif |
| |
| #ifndef cl_khr_local_int32_extended_atomics |
| #error "Missing cl_khr_local_int32_extended_atomics define" |
| #endif |
| #pragma OPENCL EXTENSION cl_khr_local_int32_extended_atomics: enable |
| #if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES |
| // expected-warning@-2{{OpenCL extension 'cl_khr_local_int32_extended_atomics' is core feature or supported optional core feature - ignoring}} |
| #endif |
| |
| // Core feature in CL 1.2 |
| #ifndef cl_khr_fp64 |
| #error "Missing cl_khr_fp64 define" |
| #endif |
| #pragma OPENCL EXTENSION cl_khr_fp64: enable |
| #if (__OPENCL_C_VERSION__ >= 120) && defined TEST_CORE_FEATURES |
| // expected-warning@-2{{OpenCL extension 'cl_khr_fp64' is core feature or supported optional core feature - ignoring}} |
| #endif |
| |
| //Core feature in CL 2.0 |
| #ifndef cl_khr_3d_image_writes |
| #error "Missing cl_khr_3d_image_writes define" |
| #endif |
| #pragma OPENCL EXTENSION cl_khr_3d_image_writes: enable |
| #if (__OPENCL_C_VERSION__ >= 200) && defined TEST_CORE_FEATURES |
| // expected-warning@-2{{OpenCL extension 'cl_khr_3d_image_writes' is core feature or supported optional core feature - ignoring}} |
| #endif |
| |
| #ifdef cl_khr_gl_msaa_sharing |
| #error "Incorrect cl_khr_gl_msaa_sharing define" |
| #endif |
| #pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing: enable |
| // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_gl_msaa_sharing' - ignoring}} |
| |
| #if (__OPENCL_C_VERSION__ >= 200) |
| #ifndef cl_khr_mipmap_image |
| #error "Missing cl_khr_mipmap_image define" |
| #endif |
| #else |
| #ifdef cl_khr_mipmap_image |
| #error "Incorrect cl_khr_mipmap_image define" |
| #endif |
| // expected-warning@+2{{unsupported OpenCL extension 'cl_khr_mipmap_image' - ignoring}} |
| #endif |
| #pragma OPENCL EXTENSION cl_khr_mipmap_image: enable |
| |
| #ifdef cl_khr_srgb_image_writes |
| #error "Incorrect cl_khr_srgb_image_writes define" |
| #endif |
| #pragma OPENCL EXTENSION cl_khr_srgb_image_writes: enable |
| // expected-warning@-1{{unsupported OpenCL extension 'cl_khr_srgb_image_writes' - ignoring}} |
| |
| #if (__OPENCL_C_VERSION__ >= 200) |
| #ifndef cl_khr_subgroups |
| #error "Missing cl_khr_subgroups define" |
| #endif |
| #else |
| #ifdef cl_khr_subgroups |
| #error "Incorrect cl_khr_subgroups define" |
| #endif |
| // expected-warning@+2{{unsupported OpenCL extension 'cl_khr_subgroups' - ignoring}} |
| #endif |
| #pragma OPENCL EXTENSION cl_khr_subgroups: enable |
| |
| #ifndef cl_amd_media_ops |
| #error "Missing cl_amd_media_ops define" |
| #endif |
| #pragma OPENCL EXTENSION cl_amd_media_ops: enable |
| |
| #ifndef cl_amd_media_ops2 |
| #error "Missing cl_amd_media_ops2 define" |
| #endif |
| #pragma OPENCL EXTENSION cl_amd_media_ops2: enable |
| |