|
26 | 26 | // RUN: %clang_cc1 -triple spir-unknown-unknown %s -E -dM -o - -x cl -cl-std=clc++1.0 \
|
27 | 27 | // RUN: | FileCheck -match-full-lines %s --check-prefix=NO-FEATURES
|
28 | 28 |
|
| 29 | +// For OpenCL C 3.0, header-only features can be disabled using macros. |
| 30 | +// RUN: %clang_cc1 -triple spir-unknown-unknown %s -E -dM -o - -x cl -cl-std=CL3.0 -fdeclare-opencl-builtins -finclude-default-header \ |
| 31 | +// RUN: -D__undef___opencl_c_work_group_collective_functions=1 \ |
| 32 | +// RUN: -D__undef___opencl_c_atomic_order_seq_cst=1 \ |
| 33 | +// RUN: -D__undef___opencl_c_atomic_scope_device=1 \ |
| 34 | +// RUN: -D__undef___opencl_c_atomic_scope_all_devices=1 \ |
| 35 | +// RUN: -D__undef___opencl_c_read_write_images=1 \ |
| 36 | +// RUN: | FileCheck %s --check-prefix=NO-HEADERONLY-FEATURES |
| 37 | + |
29 | 38 | // Note that __opencl_c_int64 is always defined assuming
|
30 | 39 | // always compiling for FULL OpenCL profile
|
31 | 40 |
|
|
43 | 52 | // FEATURES: #define __opencl_c_subgroups 1
|
44 | 53 |
|
45 | 54 | // NO-FEATURES: #define __opencl_c_int64 1
|
46 |
| -// NO-FEATURES-NOT: __opencl_c_3d_image_writes |
47 |
| -// NO-FEATURES-NOT: __opencl_c_atomic_order_acq_rel |
48 |
| -// NO-FEATURES-NOT: __opencl_c_atomic_order_seq_cst |
49 |
| -// NO-FEATURES-NOT: __opencl_c_device_enqueue |
50 |
| -// NO-FEATURES-NOT: __opencl_c_fp64 |
51 |
| -// NO-FEATURES-NOT: __opencl_c_generic_address_space |
52 |
| -// NO-FEATURES-NOT: __opencl_c_images |
53 |
| -// NO-FEATURES-NOT: __opencl_c_pipes |
54 |
| -// NO-FEATURES-NOT: __opencl_c_program_scope_global_variables |
55 |
| -// NO-FEATURES-NOT: __opencl_c_read_write_images |
56 |
| -// NO-FEATURES-NOT: __opencl_c_subgroups |
| 55 | +// NO-FEATURES-NOT: #define __opencl_c_3d_image_writes |
| 56 | +// NO-FEATURES-NOT: #define __opencl_c_atomic_order_acq_rel |
| 57 | +// NO-FEATURES-NOT: #define __opencl_c_atomic_order_seq_cst |
| 58 | +// NO-FEATURES-NOT: #define __opencl_c_device_enqueue |
| 59 | +// NO-FEATURES-NOT: #define __opencl_c_fp64 |
| 60 | +// NO-FEATURES-NOT: #define __opencl_c_generic_address_space |
| 61 | +// NO-FEATURES-NOT: #define __opencl_c_images |
| 62 | +// NO-FEATURES-NOT: #define __opencl_c_pipes |
| 63 | +// NO-FEATURES-NOT: #define __opencl_c_program_scope_global_variables |
| 64 | +// NO-FEATURES-NOT: #define __opencl_c_read_write_images |
| 65 | +// NO-FEATURES-NOT: #define __opencl_c_subgroups |
| 66 | + |
| 67 | +// NO-HEADERONLY-FEATURES-NOT: #define __opencl_c_work_group_collective_functions |
| 68 | +// NO-HEADERONLY-FEATURES-NOT: #define __opencl_c_atomic_order_seq_cst |
| 69 | +// NO-HEADERONLY-FEATURES-NOT: #define __opencl_c_atomic_scope_device |
| 70 | +// NO-HEADERONLY-FEATURES-NOT: #define __opencl_c_atomic_scope_all_devices |
| 71 | +// NO-HEADERONLY-FEATURES-NOT: #define __opencl_c_read_write_images |
0 commit comments