143 lines · plain
1// REQUIRES: nvptx-registered-target2// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple nvptx-unknown-unknown3// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple nvptx-unknown-unknown4// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple nvptx-unknown-unknown5// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple nvptx-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES6// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple nvptx-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES7// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple nvptx-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES8// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple nvptx64-unknown-unknown9// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple nvptx64-unknown-unknown10// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple nvptx64-unknown-unknown11// RUN: %clang_cc1 -x cl -cl-std=CL %s -verify -triple nvptx64-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES12// RUN: %clang_cc1 -x cl -cl-std=CL1.1 %s -verify -triple nvptx64-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES13// RUN: %clang_cc1 -x cl -cl-std=CL1.2 %s -verify -triple nvptx64-unknown-unknown -Wpedantic-core-features -DTEST_CORE_FEATURES14 15// Extensions in all versions16#ifndef cl_clang_storage_class_specifiers17#error "Missing cl_clang_storage_class_specifiers define"18#endif19#pragma OPENCL EXTENSION cl_clang_storage_class_specifiers : enable20 21#ifndef __cl_clang_function_pointers22#error "Missing __cl_clang_function_pointers define"23#endif24#pragma OPENCL EXTENSION __cl_clang_function_pointers : enable25 26#ifndef __cl_clang_variadic_functions27#error "Missing __cl_clang_variadic_functions define"28#endif29#pragma OPENCL EXTENSION __cl_clang_variadic_functions : enable30 31#ifndef __cl_clang_non_portable_kernel_param_types32#error "Missing __cl_clang_non_portable_kernel_param_types define"33#endif34#pragma OPENCL EXTENSION __cl_clang_non_portable_kernel_param_types : enable35 36#ifndef __cl_clang_bitfields37#error "Missing __cl_clang_bitfields define"38#endif39#pragma OPENCL EXTENSION __cl_clang_bitfields : enable40 41#ifdef cl_khr_fp1642#error "Incorrect cl_khr_fp16 define"43#endif44#pragma OPENCL EXTENSION cl_khr_fp16: enable45// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_fp16' - ignoring}}46 47#ifdef cl_khr_int64_base_atomics48#error "Incorrect cl_khr_int64_base_atomics define"49#endif50#pragma OPENCL EXTENSION cl_khr_int64_base_atomics: enable51// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_int64_base_atomics' - ignoring}}52 53#ifdef cl_khr_int64_extended_atomics54#error "Incorrect cl_khr_int64_extended_atomics define"55#endif56#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics: enable57// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_int64_extended_atomics' - ignoring}}58 59// Core features in CL 1.160 61#ifndef cl_khr_byte_addressable_store62#error "Missing cl_khr_byte_addressable_store define"63#endif64#pragma OPENCL EXTENSION cl_khr_byte_addressable_store: enable65#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES66// expected-warning@-2{{OpenCL extension 'cl_khr_byte_addressable_store' is core feature or supported optional core feature - ignoring}}67#endif68 69#ifndef cl_khr_global_int32_base_atomics70#error "Missing cl_khr_global_int32_base_atomics define"71#endif72#pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics: enable73#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES74// expected-warning@-2{{OpenCL extension 'cl_khr_global_int32_base_atomics' is core feature or supported optional core feature - ignoring}}75#endif76 77#ifndef cl_khr_global_int32_extended_atomics78#error "Missing cl_khr_global_int32_extended_atomics define"79#endif80#pragma OPENCL EXTENSION cl_khr_global_int32_extended_atomics: enable81#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES82// expected-warning@-2{{OpenCL extension 'cl_khr_global_int32_extended_atomics' is core feature or supported optional core feature - ignoring}}83#endif84 85#ifndef cl_khr_local_int32_base_atomics86#error "Missing cl_khr_local_int32_base_atomics define"87#endif88#pragma OPENCL EXTENSION cl_khr_local_int32_base_atomics: enable89#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES90// expected-warning@-2{{OpenCL extension 'cl_khr_local_int32_base_atomics' is core feature or supported optional core feature - ignoring}}91#endif92 93#ifndef cl_khr_local_int32_extended_atomics94#error "Missing cl_khr_local_int32_extended_atomics define"95#endif96#pragma OPENCL EXTENSION cl_khr_local_int32_extended_atomics: enable97#if (__OPENCL_C_VERSION__ >= 110) && defined TEST_CORE_FEATURES98// expected-warning@-2{{OpenCL extension 'cl_khr_local_int32_extended_atomics' is core feature or supported optional core feature - ignoring}}99#endif100 101// Core feature in CL 1.2102#ifndef cl_khr_fp64103#error "Missing cl_khr_fp64 define"104#endif105#pragma OPENCL EXTENSION cl_khr_fp64: enable106#if (__OPENCL_C_VERSION__ >= 120) && defined TEST_CORE_FEATURES107// expected-warning@-2{{OpenCL extension 'cl_khr_fp64' is core feature or supported optional core feature - ignoring}}108#endif109 110// Core feature in CL 2.0, but not supported on nvptx111#ifdef cl_khr_3d_image_writes112#error "Incorrect cl_khr_3d_image_writes define"113#endif114#pragma OPENCL EXTENSION cl_khr_3d_image_writes: enable115// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_3d_image_writes' - ignoring}}116 117#ifdef cl_khr_gl_msaa_sharing118#error "Incorrect cl_khr_gl_msaa_sharing define"119#endif120#pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing: enable121// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_gl_msaa_sharing' - ignoring}}122 123#ifdef cl_khr_srgb_image_writes124#error "Incorrect cl_khr_srgb_image_writes define"125#endif126#pragma OPENCL EXTENSION cl_khr_srgb_image_writes: enable127// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_srgb_image_writes' - ignoring}}128 129#ifdef cl_khr_subgroups130#error "Incorrect cl_khr_subgroups define"131#endif132#pragma OPENCL EXTENSION cl_khr_subgroups: enable133// expected-warning@-1{{unsupported OpenCL extension 'cl_khr_subgroups' - ignoring}}134 135#if (__OPENCL_C_VERSION__ >= 300)136#ifndef __opencl_c_generic_address_space137#error "Missing __opencl_c_generic_address_space define"138#else139#error "Incorrect __opencl_c_generic_address_space define"140#endif141#pragma OPENCL EXTENSION __opencl_c_generic_address_space: enable142#endif143