190 lines · plain
1// REQUIRES: amdgpu-registered-target2// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple amdgcn-unknown-unknown3// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple amdgcn-unknown-unknown4// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple amdgcn-unknown-unknown5// RUN: %clang_cc1 -x cl -cl-std=CL2.0 %s -verify -triple amdgcn-unknown-unknown6// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple amdgcn-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES7// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple amdgcn-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES8// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple amdgcn-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES9// RUN: %clang_cc1 -x cl -cl-std=CL2.0 %s -verify -triple amdgcn-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES10 11// RUN: %clang_cc1 -x cl -cl-std=CL3.0 %s -verify -triple amdgcn-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES12// RUN: %clang_cc1 -x cl -cl-std=CL3.0 %s -verify -triple amdgcn-unknown-unknown -target-cpu gfx700 -Wpedantic-core-features -DTEST_CORE_FEATURES -DFLAT_SUPPORT13 14// Extensions in all versions15#ifndef cl_clang_storage_class_specifiers16#error "Missing cl_clang_storage_class_specifiers define"17#endif18#pragma OPENCL EXTENSION cl_clang_storage_class_specifiers : enable19 20#ifndef __cl_clang_function_pointers21#error "Missing __cl_clang_function_pointers define"22#endif23#pragma OPENCL EXTENSION __cl_clang_function_pointers : enable24 25#ifndef __cl_clang_variadic_functions26#error "Missing __cl_clang_variadic_functions define"27#endif28#pragma OPENCL EXTENSION __cl_clang_variadic_functions : enable29 30#ifndef __cl_clang_non_portable_kernel_param_types31#error "Missing __cl_clang_non_portable_kernel_param_types define"32#endif33#pragma OPENCL EXTENSION __cl_clang_non_portable_kernel_param_types : enable34 35#ifndef __cl_clang_bitfields36#error "Missing __cl_clang_bitfields define"37#endif38#pragma OPENCL EXTENSION __cl_clang_bitfields : enable39 40#ifndef cl_khr_fp1641#error "Missing cl_khr_fp16 define"42#endif43#pragma OPENCL EXTENSION cl_khr_fp16: enable44 45#ifndef cl_khr_int64_base_atomics46#error "Missing cl_khr_int64_base_atomics define"47#endif48#pragma OPENCL EXTENSION cl_khr_int64_base_atomics: enable49 50#ifndef cl_khr_int64_extended_atomics51#error "Missing cl_khr_int64_extended_atomics define"52#endif53#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics: enable54 55// Core features in CL 1.156 57#ifndef cl_khr_byte_addressable_store58#error "Missing cl_khr_byte_addressable_store define"59#endif60#pragma OPENCL EXTENSION cl_khr_byte_addressable_store: enable61#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES62// expected-warning@-2{{OpenCL extension 'cl_khr_byte_addressable_store' is core feature or supported optional core feature - ignoring}}63#endif64 65#ifndef cl_khr_global_int32_base_atomics66#error "Missing cl_khr_global_int32_base_atomics define"67#endif68#pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics: enable69#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES70// expected-warning@-2{{OpenCL extension 'cl_khr_global_int32_base_atomics' is core feature or supported optional core feature - ignoring}}71#endif72 73#ifndef cl_khr_global_int32_extended_atomics74#error "Missing cl_khr_global_int32_extended_atomics define"75#endif76#pragma OPENCL EXTENSION cl_khr_global_int32_extended_atomics: enable77#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES78// expected-warning@-2{{OpenCL extension 'cl_khr_global_int32_extended_atomics' is core feature or supported optional core feature - ignoring}}79#endif80 81#ifndef cl_khr_local_int32_base_atomics82#error "Missing cl_khr_local_int32_base_atomics define"83#endif84#pragma OPENCL EXTENSION cl_khr_local_int32_base_atomics: enable85#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES86// expected-warning@-2{{OpenCL extension 'cl_khr_local_int32_base_atomics' is core feature or supported optional core feature - ignoring}}87#endif88 89#ifndef cl_khr_local_int32_extended_atomics90#error "Missing cl_khr_local_int32_extended_atomics define"91#endif92#pragma OPENCL EXTENSION cl_khr_local_int32_extended_atomics: enable93#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES94// expected-warning@-2{{OpenCL extension 'cl_khr_local_int32_extended_atomics' is core feature or supported optional core feature - ignoring}}95#endif96 97// Core feature in CL 1.298#ifndef cl_khr_fp6499#error "Missing cl_khr_fp64 define"100#endif101#pragma OPENCL EXTENSION cl_khr_fp64: enable102#if (__OPENCL_C_VERSION__ >= 120) && defined TEST_CORE_FEATURES103// expected-warning@-2{{OpenCL extension 'cl_khr_fp64' is core feature or supported optional core feature - ignoring}}104#endif105 106//Core feature in CL 2.0107#ifndef cl_khr_3d_image_writes108#error "Missing cl_khr_3d_image_writes define"109#endif110#pragma OPENCL EXTENSION cl_khr_3d_image_writes: enable111#if (__OPENCL_C_VERSION__ >= 200) && defined TEST_CORE_FEATURES112// expected-warning@-2{{OpenCL extension 'cl_khr_3d_image_writes' is core feature or supported optional core feature - ignoring}}113#endif114 115#ifdef cl_khr_gl_msaa_sharing116#error "Incorrect cl_khr_gl_msaa_sharing define"117#endif118#pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing: enable119// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_gl_msaa_sharing' - ignoring}}120 121#if (__OPENCL_C_VERSION__ >= 200)122#ifndef cl_khr_mipmap_image123#error "Missing cl_khr_mipmap_image define"124#endif125#else126#ifdef cl_khr_mipmap_image127#error "Incorrect cl_khr_mipmap_image define"128#endif129// expected-warning@+2{{unsupported OpenCL extension 'cl_khr_mipmap_image' - ignoring}}130#endif131#pragma OPENCL EXTENSION cl_khr_mipmap_image: enable132 133#ifdef cl_khr_srgb_image_writes134#error "Incorrect cl_khr_srgb_image_writes define"135#endif136#pragma OPENCL EXTENSION cl_khr_srgb_image_writes: enable137// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_srgb_image_writes' - ignoring}}138 139#if (__OPENCL_C_VERSION__ >= 200)140#ifndef cl_khr_subgroups141#error "Missing cl_khr_subgroups define"142#endif143#else144#ifdef cl_khr_subgroups145#error "Incorrect cl_khr_subgroups define"146#endif147// expected-warning@+2{{unsupported OpenCL extension 'cl_khr_subgroups' - ignoring}}148#endif149#pragma OPENCL EXTENSION cl_khr_subgroups: enable150 151#ifndef cl_amd_media_ops152#error "Missing cl_amd_media_ops define"153#endif154#pragma OPENCL EXTENSION cl_amd_media_ops: enable155 156#ifndef cl_amd_media_ops2157#error "Missing cl_amd_media_ops2 define"158#endif159#pragma OPENCL EXTENSION cl_amd_media_ops2: enable160 161#if (__OPENCL_C_VERSION__ >= 300)162 #ifndef __opencl_c_program_scope_global_variables163 #error "Missing __opencl_c_program_scope_global_variables define"164 #endif165#endif166 167#if (__OPENCL_C_VERSION__ >= 300)168 #ifdef FLAT_SUPPORT169 #ifndef __opencl_c_generic_address_space170 #error "Missing __opencl_c_generic_address_space define"171 #endif172 #else173 #ifdef __opencl_c_generic_address_space174 #error "Incorrect __opencl_c_generic_address_space define"175 #endif176 #endif177#endif178 179#if (__OPENCL_C_VERSION__ >= 300)180 #ifdef FLAT_SUPPORT181 #ifndef __opencl_c_device_enqueue182 #error "Missing __opencl_c_device_enqueue define"183 #endif184 #else185 #ifdef __opencl_c_device_enqueue186 #error "Incorrect __opencl_c_device_enqueue define"187 #endif188 #endif189#endif190