154 lines · plain
1// REQUIRES: amdgpu-registered-target2// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -target-cpu cayman3// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -target-cpu cayman4// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -target-cpu cayman5// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cayman6// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cayman7// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cayman8// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -target-cpu cypress9// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -target-cpu cypress10// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -target-cpu cypress11// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cypress12// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cypress13// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu cypress14// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -target-cpu turks15// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -target-cpu turks16// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -target-cpu turks17// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu turks18// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu turks19// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple r600-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES -target-cpu turks20 21// Extensions in all versions22#ifndef cl_clang_storage_class_specifiers23#error "Missing cl_clang_storage_class_specifiers define"24#endif25#pragma OPENCL EXTENSION cl_clang_storage_class_specifiers : enable26 27#ifndef __cl_clang_function_pointers28#error "Missing __cl_clang_function_pointers define"29#endif30#pragma OPENCL EXTENSION __cl_clang_function_pointers : enable31 32#ifndef __cl_clang_variadic_functions33#error "Missing __cl_clang_variadic_functions define"34#endif35#pragma OPENCL EXTENSION __cl_clang_variadic_functions : enable36 37#ifndef __cl_clang_non_portable_kernel_param_types38#error "Missing __cl_clang_non_portable_kernel_param_types define"39#endif40#pragma OPENCL EXTENSION __cl_clang_non_portable_kernel_param_types : enable41 42#ifndef __cl_clang_bitfields43#error "Missing __cl_clang_bitfields define"44#endif45#pragma OPENCL EXTENSION __cl_clang_bitfields : enable46 47#ifdef cl_khr_fp1648#error "Incorrect cl_khr_fp16 define"49#endif50#pragma OPENCL EXTENSION cl_khr_fp16: enable51// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_fp16' - ignoring}}52 53#ifdef cl_khr_int64_base_atomics54#error "Incorrect cl_khr_int64_base_atomics define"55#endif56#pragma OPENCL EXTENSION cl_khr_int64_base_atomics: enable57// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_int64_base_atomics' - ignoring}}58 59#ifdef cl_khr_int64_extended_atomics60#error "Incorrect cl_khr_int64_extended_atomics define"61#endif62#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics: enable63// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_int64_extended_atomics' - ignoring}}64 65// Core features in CL 1.166 67#ifndef cl_khr_byte_addressable_store68#error "Missing cl_khr_byte_addressable_store define"69#endif70#pragma OPENCL EXTENSION cl_khr_byte_addressable_store: enable71#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES72// expected-warning@-2{{OpenCL extension 'cl_khr_byte_addressable_store' is core feature or supported optional core feature - ignoring}}73#endif74 75#ifndef cl_khr_global_int32_base_atomics76#error "Missing cl_khr_global_int32_base_atomics define"77#endif78#pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics: enable79#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES80// expected-warning@-2{{OpenCL extension 'cl_khr_global_int32_base_atomics' is core feature or supported optional core feature - ignoring}}81#endif82 83#ifndef cl_khr_global_int32_extended_atomics84#error "Missing cl_khr_global_int32_extended_atomics define"85#endif86#pragma OPENCL EXTENSION cl_khr_global_int32_extended_atomics: enable87#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES88// expected-warning@-2{{OpenCL extension 'cl_khr_global_int32_extended_atomics' is core feature or supported optional core feature - ignoring}}89#endif90 91#ifndef cl_khr_local_int32_base_atomics92#error "Missing cl_khr_local_int32_base_atomics define"93#endif94#pragma OPENCL EXTENSION cl_khr_local_int32_base_atomics: enable95#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES96// expected-warning@-2{{OpenCL extension 'cl_khr_local_int32_base_atomics' is core feature or supported optional core feature - ignoring}}97#endif98 99#ifndef cl_khr_local_int32_extended_atomics100#error "Missing cl_khr_local_int32_extended_atomics define"101#endif102#pragma OPENCL EXTENSION cl_khr_local_int32_extended_atomics: enable103#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES104// expected-warning@-2{{OpenCL extension 'cl_khr_local_int32_extended_atomics' is core feature or supported optional core feature - ignoring}}105#endif106 107// Core feature in CL 1.2108#ifdef __HAS_FP64__109#ifndef cl_khr_fp64110#error "Missing cl_khr_fp64 define"111#endif112#pragma OPENCL EXTENSION cl_khr_fp64: enable113#if (__OPENCL_C_VERSION__ >= 120) && defined TEST_CORE_FEATURES114// expected-warning@-2{{OpenCL extension 'cl_khr_fp64' is core feature or supported optional core feature - ignoring}}115#endif116#else117#ifdef cl_khr_fp64118#error "Incorrect cl_khr_fp64 define"119#endif120#pragma OPENCL EXTENSION cl_khr_fp64: enable121// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_fp64' - ignoring}}122#endif // __HAS_FP64__123 124//Core feature in CL 2.0125#ifdef cl_khr_3d_image_writes126#error "Incorrect cl_khr_3d_image_writes define"127#endif128#pragma OPENCL EXTENSION cl_khr_3d_image_writes: enable129// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_3d_image_writes' - ignoring}}130 131#ifdef cl_khr_gl_msaa_sharing132#error "Incorrect cl_khr_gl_msaa_sharing define"133#endif134#pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing: enable135// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_gl_msaa_sharing' - ignoring}}136 137#ifdef cl_khr_srgb_image_writes138#error "Incorrect cl_khr_srgb_image_writes define"139#endif140#pragma OPENCL EXTENSION cl_khr_srgb_image_writes: enable141// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_srgb_image_writes' - ignoring}}142 143#ifdef cl_khr_subgroups144#error "Incorrect cl_khr_subgroups define"145#endif146#pragma OPENCL EXTENSION cl_khr_subgroups: enable147// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_subgroups' - ignoring}}148 149#ifdef __opencl_c_generic_address_space150#error "Incorrect __opencl_c_generic_address_space define"151#endif152#pragma OPENCL EXTENSION __opencl_c_generic_address_space: enable153// expected-warning@-1{{OpenCL extension '__opencl_c_generic_address_space' unknown or does not require pragma - ignoring}}154