1// REQUIRES: amdgpu-registered-target 2// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -target-cpu cayman 3// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -target-cpu cayman 4// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -target-cpu cayman 5// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cayman 6// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cayman 7// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cayman 8// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -target-cpu cypress 9// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -target-cpu cypress 10// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -target-cpu cypress 11// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cypress 12// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cypress 13// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cypress 14// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -target-cpu turks 15// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -target-cpu turks 16// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -target-cpu turks 17// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu turks 18// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu turks 19// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu turks 20 21// Extensions in all versions 22#ifndef cl_clang_storage_class_specifiers 23#error "Missing cl_clang_storage_class_specifiers define" 24#endif 25#pragma OPENCL EXTENSION cl_clang_storage_class_specifiers : enable 26 27#ifndef __cl_clang_function_pointers 28#error "Missing __cl_clang_function_pointers define" 29#endif 30#pragma OPENCL EXTENSION __cl_clang_function_pointers : enable 31 32#ifndef __cl_clang_variadic_functions 33#error "Missing __cl_clang_variadic_functions define" 34#endif 35#pragma OPENCL EXTENSION __cl_clang_variadic_functions : enable 36 37#ifndef __cl_clang_non_portable_kernel_param_types 38#error "Missing __cl_clang_non_portable_kernel_param_types define" 39#endif 40#pragma OPENCL EXTENSION __cl_clang_non_portable_kernel_param_types : enable 41 42#ifndef __cl_clang_bitfields 43#error "Missing __cl_clang_bitfields define" 44#endif 45#pragma OPENCL EXTENSION __cl_clang_bitfields : enable 46 47#ifdef cl_khr_fp16 48#error "Incorrect cl_khr_fp16 define" 49#endif 50#pragma OPENCL EXTENSION cl_khr_fp16: enable 51// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_fp16' - ignoring}} 52 53#ifdef cl_khr_int64_base_atomics 54#error "Incorrect cl_khr_int64_base_atomics define" 55#endif 56#pragma OPENCL EXTENSION cl_khr_int64_base_atomics: enable 57// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_int64_base_atomics' - ignoring}} 58 59#ifdef cl_khr_int64_extended_atomics 60#error "Incorrect cl_khr_int64_extended_atomics define" 61#endif 62#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics: enable 63// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_int64_extended_atomics' - ignoring}} 64 65// Core features in CL 1.1 66 67#ifndef cl_khr_byte_addressable_store 68#error "Missing cl_khr_byte_addressable_store define" 69#endif 70#pragma OPENCL EXTENSION cl_khr_byte_addressable_store: enable 71#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES 72// expected-warning@-2{{OpenCL extension 'cl_khr_byte_addressable_store' is core feature or supported optional core feature - ignoring}} 73#endif 74 75#ifndef cl_khr_global_int32_base_atomics 76#error "Missing cl_khr_global_int32_base_atomics define" 77#endif 78#pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics: enable 79#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES 80// expected-warning@-2{{OpenCL extension 'cl_khr_global_int32_base_atomics' is core feature or supported optional core feature - ignoring}} 81#endif 82 83#ifndef cl_khr_global_int32_extended_atomics 84#error "Missing cl_khr_global_int32_extended_atomics define" 85#endif 86#pragma OPENCL EXTENSION cl_khr_global_int32_extended_atomics: enable 87#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES 88// expected-warning@-2{{OpenCL extension 'cl_khr_global_int32_extended_atomics' is core feature or supported optional core feature - ignoring}} 89#endif 90 91#ifndef cl_khr_local_int32_base_atomics 92#error "Missing cl_khr_local_int32_base_atomics define" 93#endif 94#pragma OPENCL EXTENSION cl_khr_local_int32_base_atomics: enable 95#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES 96// expected-warning@-2{{OpenCL extension 'cl_khr_local_int32_base_atomics' is core feature or supported optional core feature - ignoring}} 97#endif 98 99#ifndef cl_khr_local_int32_extended_atomics 100#error "Missing cl_khr_local_int32_extended_atomics define" 101#endif 102#pragma OPENCL EXTENSION cl_khr_local_int32_extended_atomics: enable 103#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES 104// expected-warning@-2{{OpenCL extension 'cl_khr_local_int32_extended_atomics' is core feature or supported optional core feature - ignoring}} 105#endif 106 107// Core feature in CL 1.2 108#ifdef __HAS_FP64__ 109#ifndef cl_khr_fp64 110#error "Missing cl_khr_fp64 define" 111#endif 112#pragma OPENCL EXTENSION cl_khr_fp64: enable 113#if (__OPENCL_C_VERSION__ >= 120) && defined TEST_CORE_FEATURES 114// expected-warning@-2{{OpenCL extension 'cl_khr_fp64' is core feature or supported optional core feature - ignoring}} 115#endif 116#else 117#ifdef cl_khr_fp64 118#error "Incorrect cl_khr_fp64 define" 119#endif 120#pragma OPENCL EXTENSION cl_khr_fp64: enable 121// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_fp64' - ignoring}} 122#endif // __HAS_FP64__ 123 124//Core feature in CL 2.0 125#ifdef cl_khr_3d_image_writes 126#error "Incorrect cl_khr_3d_image_writes define" 127#endif 128#pragma OPENCL EXTENSION cl_khr_3d_image_writes: enable 129// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_3d_image_writes' - ignoring}} 130 131#ifdef cl_khr_gl_msaa_sharing 132#error "Incorrect cl_khr_gl_msaa_sharing define" 133#endif 134#pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing: enable 135// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_gl_msaa_sharing' - ignoring}} 136 137#ifdef cl_khr_srgb_image_writes 138#error "Incorrect cl_khr_srgb_image_writes define" 139#endif 140#pragma OPENCL EXTENSION cl_khr_srgb_image_writes: enable 141// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_srgb_image_writes' - ignoring}} 142 143#ifdef cl_khr_subgroups 144#error "Incorrect cl_khr_subgroups define" 145#endif 146#pragma OPENCL EXTENSION cl_khr_subgroups: enable 147// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_subgroups' - ignoring}} 148 149