Sven van Haastregt | af1c230 | 2019-06-19 12:48:22 +0000 | [diff] [blame^] | 1 | // RUN: %clang_cc1 %s -triple spir -verify -pedantic -fsyntax-only -cl-std=CL2.0 -fdeclare-opencl-builtins -DNO_HEADER |
| 2 | // RUN: %clang_cc1 %s -triple spir -verify -pedantic -fsyntax-only -cl-std=CL2.0 -fdeclare-opencl-builtins -finclude-default-header |
Sven van Haastregt | 79a222f | 2019-06-03 09:39:11 +0000 | [diff] [blame] | 3 | |
| 4 | // Test the -fdeclare-opencl-builtins option. |
| 5 | |
Sven van Haastregt | af1c230 | 2019-06-19 12:48:22 +0000 | [diff] [blame^] | 6 | // Provide typedefs when invoking clang without -finclude-default-header. |
| 7 | #ifdef NO_HEADER |
Sven van Haastregt | 79a222f | 2019-06-03 09:39:11 +0000 | [diff] [blame] | 8 | typedef float float4 __attribute__((ext_vector_type(4))); |
| 9 | typedef int int4 __attribute__((ext_vector_type(4))); |
| 10 | typedef int int2 __attribute__((ext_vector_type(2))); |
| 11 | typedef unsigned int uint; |
| 12 | typedef __SIZE_TYPE__ size_t; |
Sven van Haastregt | af1c230 | 2019-06-19 12:48:22 +0000 | [diff] [blame^] | 13 | #endif |
Sven van Haastregt | 79a222f | 2019-06-03 09:39:11 +0000 | [diff] [blame] | 14 | |
| 15 | kernel void basic_conversion(global float4 *buf, global int4 *res) { |
| 16 | res[0] = convert_int4(buf[0]); |
| 17 | } |
| 18 | |
| 19 | kernel void basic_readonly_image_type(__read_only image2d_t img, int2 coord, global float4 *out) { |
| 20 | out[0] = read_imagef(img, coord); |
| 21 | } |
| 22 | |
| 23 | kernel void basic_subgroup(global uint *out) { |
| 24 | out[0] = get_sub_group_size(); |
| 25 | // expected-error@-1{{use of declaration 'get_sub_group_size' requires cl_khr_subgroups extension to be enabled}} |
| 26 | #pragma OPENCL EXTENSION cl_khr_subgroups : enable |
| 27 | out[1] = get_sub_group_size(); |
| 28 | } |