forked from OSchip/llvm-project
[OpenCL] Move remaining defines to opencl-c-base.h
Move any remaining preprocessor defines from `opencl-c.h` to `opencl-c-base.h`, such that they are shared with `-fdeclare-opencl-builtins` too. In particular, move: - the `as_type` and `as_typen` definitions, and - the `kernel_exec` and `__kernel_exec` definitions. Also clang-format the changes. Differential Revision: https://reviews.llvm.org/D96948
This commit is contained in:
parent
03310c1e95
commit
612d0ef173
|
@ -460,6 +460,101 @@ typedef struct {
|
||||||
|
|
||||||
#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
|
#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* OpenCL v1.1/1.2/2.0 s6.2.4.2 - as_type operators
|
||||||
|
* Reinterprets a data type as another data type of the same size
|
||||||
|
*/
|
||||||
|
#define as_char(x) __builtin_astype((x), char)
|
||||||
|
#define as_char2(x) __builtin_astype((x), char2)
|
||||||
|
#define as_char3(x) __builtin_astype((x), char3)
|
||||||
|
#define as_char4(x) __builtin_astype((x), char4)
|
||||||
|
#define as_char8(x) __builtin_astype((x), char8)
|
||||||
|
#define as_char16(x) __builtin_astype((x), char16)
|
||||||
|
|
||||||
|
#define as_uchar(x) __builtin_astype((x), uchar)
|
||||||
|
#define as_uchar2(x) __builtin_astype((x), uchar2)
|
||||||
|
#define as_uchar3(x) __builtin_astype((x), uchar3)
|
||||||
|
#define as_uchar4(x) __builtin_astype((x), uchar4)
|
||||||
|
#define as_uchar8(x) __builtin_astype((x), uchar8)
|
||||||
|
#define as_uchar16(x) __builtin_astype((x), uchar16)
|
||||||
|
|
||||||
|
#define as_short(x) __builtin_astype((x), short)
|
||||||
|
#define as_short2(x) __builtin_astype((x), short2)
|
||||||
|
#define as_short3(x) __builtin_astype((x), short3)
|
||||||
|
#define as_short4(x) __builtin_astype((x), short4)
|
||||||
|
#define as_short8(x) __builtin_astype((x), short8)
|
||||||
|
#define as_short16(x) __builtin_astype((x), short16)
|
||||||
|
|
||||||
|
#define as_ushort(x) __builtin_astype((x), ushort)
|
||||||
|
#define as_ushort2(x) __builtin_astype((x), ushort2)
|
||||||
|
#define as_ushort3(x) __builtin_astype((x), ushort3)
|
||||||
|
#define as_ushort4(x) __builtin_astype((x), ushort4)
|
||||||
|
#define as_ushort8(x) __builtin_astype((x), ushort8)
|
||||||
|
#define as_ushort16(x) __builtin_astype((x), ushort16)
|
||||||
|
|
||||||
|
#define as_int(x) __builtin_astype((x), int)
|
||||||
|
#define as_int2(x) __builtin_astype((x), int2)
|
||||||
|
#define as_int3(x) __builtin_astype((x), int3)
|
||||||
|
#define as_int4(x) __builtin_astype((x), int4)
|
||||||
|
#define as_int8(x) __builtin_astype((x), int8)
|
||||||
|
#define as_int16(x) __builtin_astype((x), int16)
|
||||||
|
|
||||||
|
#define as_uint(x) __builtin_astype((x), uint)
|
||||||
|
#define as_uint2(x) __builtin_astype((x), uint2)
|
||||||
|
#define as_uint3(x) __builtin_astype((x), uint3)
|
||||||
|
#define as_uint4(x) __builtin_astype((x), uint4)
|
||||||
|
#define as_uint8(x) __builtin_astype((x), uint8)
|
||||||
|
#define as_uint16(x) __builtin_astype((x), uint16)
|
||||||
|
|
||||||
|
#define as_long(x) __builtin_astype((x), long)
|
||||||
|
#define as_long2(x) __builtin_astype((x), long2)
|
||||||
|
#define as_long3(x) __builtin_astype((x), long3)
|
||||||
|
#define as_long4(x) __builtin_astype((x), long4)
|
||||||
|
#define as_long8(x) __builtin_astype((x), long8)
|
||||||
|
#define as_long16(x) __builtin_astype((x), long16)
|
||||||
|
|
||||||
|
#define as_ulong(x) __builtin_astype((x), ulong)
|
||||||
|
#define as_ulong2(x) __builtin_astype((x), ulong2)
|
||||||
|
#define as_ulong3(x) __builtin_astype((x), ulong3)
|
||||||
|
#define as_ulong4(x) __builtin_astype((x), ulong4)
|
||||||
|
#define as_ulong8(x) __builtin_astype((x), ulong8)
|
||||||
|
#define as_ulong16(x) __builtin_astype((x), ulong16)
|
||||||
|
|
||||||
|
#define as_float(x) __builtin_astype((x), float)
|
||||||
|
#define as_float2(x) __builtin_astype((x), float2)
|
||||||
|
#define as_float3(x) __builtin_astype((x), float3)
|
||||||
|
#define as_float4(x) __builtin_astype((x), float4)
|
||||||
|
#define as_float8(x) __builtin_astype((x), float8)
|
||||||
|
#define as_float16(x) __builtin_astype((x), float16)
|
||||||
|
|
||||||
|
#ifdef cl_khr_fp64
|
||||||
|
#define as_double(x) __builtin_astype((x), double)
|
||||||
|
#define as_double2(x) __builtin_astype((x), double2)
|
||||||
|
#define as_double3(x) __builtin_astype((x), double3)
|
||||||
|
#define as_double4(x) __builtin_astype((x), double4)
|
||||||
|
#define as_double8(x) __builtin_astype((x), double8)
|
||||||
|
#define as_double16(x) __builtin_astype((x), double16)
|
||||||
|
#endif // cl_khr_fp64
|
||||||
|
|
||||||
|
#ifdef cl_khr_fp16
|
||||||
|
#define as_half(x) __builtin_astype((x), half)
|
||||||
|
#define as_half2(x) __builtin_astype((x), half2)
|
||||||
|
#define as_half3(x) __builtin_astype((x), half3)
|
||||||
|
#define as_half4(x) __builtin_astype((x), half4)
|
||||||
|
#define as_half8(x) __builtin_astype((x), half8)
|
||||||
|
#define as_half16(x) __builtin_astype((x), half16)
|
||||||
|
#endif // cl_khr_fp16
|
||||||
|
|
||||||
|
// OpenCL v1.1 s6.9, v1.2/2.0 s6.10 - Function qualifiers
|
||||||
|
|
||||||
|
#define __kernel_exec(X, typen) __kernel \
|
||||||
|
__attribute__((work_group_size_hint(X, 1, 1))) \
|
||||||
|
__attribute__((vec_type_hint(typen)))
|
||||||
|
|
||||||
|
#define kernel_exec(X, typen) __kernel \
|
||||||
|
__attribute__((work_group_size_hint(X, 1, 1))) \
|
||||||
|
__attribute__((vec_type_hint(typen)))
|
||||||
|
|
||||||
#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
|
#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
|
||||||
// OpenCL v1.2 s6.12.13, v2.0 s6.13.13 - printf
|
// OpenCL v1.2 s6.12.13, v2.0 s6.13.13 - printf
|
||||||
|
|
||||||
|
|
|
@ -6339,101 +6339,6 @@ half16 __ovld __cnfn convert_half16_rtz(double16);
|
||||||
|
|
||||||
#endif // cl_khr_fp16
|
#endif // cl_khr_fp16
|
||||||
|
|
||||||
/**
|
|
||||||
* OpenCL v1.1/1.2/2.0 s6.2.4.2 - as_type operators
|
|
||||||
* Reinterprets a data type as another data type of the same size
|
|
||||||
*/
|
|
||||||
#define as_char(x) __builtin_astype((x), char)
|
|
||||||
#define as_char2(x) __builtin_astype((x), char2)
|
|
||||||
#define as_char3(x) __builtin_astype((x), char3)
|
|
||||||
#define as_char4(x) __builtin_astype((x), char4)
|
|
||||||
#define as_char8(x) __builtin_astype((x), char8)
|
|
||||||
#define as_char16(x) __builtin_astype((x), char16)
|
|
||||||
|
|
||||||
#define as_uchar(x) __builtin_astype((x), uchar)
|
|
||||||
#define as_uchar2(x) __builtin_astype((x), uchar2)
|
|
||||||
#define as_uchar3(x) __builtin_astype((x), uchar3)
|
|
||||||
#define as_uchar4(x) __builtin_astype((x), uchar4)
|
|
||||||
#define as_uchar8(x) __builtin_astype((x), uchar8)
|
|
||||||
#define as_uchar16(x) __builtin_astype((x), uchar16)
|
|
||||||
|
|
||||||
#define as_short(x) __builtin_astype((x), short)
|
|
||||||
#define as_short2(x) __builtin_astype((x), short2)
|
|
||||||
#define as_short3(x) __builtin_astype((x), short3)
|
|
||||||
#define as_short4(x) __builtin_astype((x), short4)
|
|
||||||
#define as_short8(x) __builtin_astype((x), short8)
|
|
||||||
#define as_short16(x) __builtin_astype((x), short16)
|
|
||||||
|
|
||||||
#define as_ushort(x) __builtin_astype((x), ushort)
|
|
||||||
#define as_ushort2(x) __builtin_astype((x), ushort2)
|
|
||||||
#define as_ushort3(x) __builtin_astype((x), ushort3)
|
|
||||||
#define as_ushort4(x) __builtin_astype((x), ushort4)
|
|
||||||
#define as_ushort8(x) __builtin_astype((x), ushort8)
|
|
||||||
#define as_ushort16(x) __builtin_astype((x), ushort16)
|
|
||||||
|
|
||||||
#define as_int(x) __builtin_astype((x), int)
|
|
||||||
#define as_int2(x) __builtin_astype((x), int2)
|
|
||||||
#define as_int3(x) __builtin_astype((x), int3)
|
|
||||||
#define as_int4(x) __builtin_astype((x), int4)
|
|
||||||
#define as_int8(x) __builtin_astype((x), int8)
|
|
||||||
#define as_int16(x) __builtin_astype((x), int16)
|
|
||||||
|
|
||||||
#define as_uint(x) __builtin_astype((x), uint)
|
|
||||||
#define as_uint2(x) __builtin_astype((x), uint2)
|
|
||||||
#define as_uint3(x) __builtin_astype((x), uint3)
|
|
||||||
#define as_uint4(x) __builtin_astype((x), uint4)
|
|
||||||
#define as_uint8(x) __builtin_astype((x), uint8)
|
|
||||||
#define as_uint16(x) __builtin_astype((x), uint16)
|
|
||||||
|
|
||||||
#define as_long(x) __builtin_astype((x), long)
|
|
||||||
#define as_long2(x) __builtin_astype((x), long2)
|
|
||||||
#define as_long3(x) __builtin_astype((x), long3)
|
|
||||||
#define as_long4(x) __builtin_astype((x), long4)
|
|
||||||
#define as_long8(x) __builtin_astype((x), long8)
|
|
||||||
#define as_long16(x) __builtin_astype((x), long16)
|
|
||||||
|
|
||||||
#define as_ulong(x) __builtin_astype((x), ulong)
|
|
||||||
#define as_ulong2(x) __builtin_astype((x), ulong2)
|
|
||||||
#define as_ulong3(x) __builtin_astype((x), ulong3)
|
|
||||||
#define as_ulong4(x) __builtin_astype((x), ulong4)
|
|
||||||
#define as_ulong8(x) __builtin_astype((x), ulong8)
|
|
||||||
#define as_ulong16(x) __builtin_astype((x), ulong16)
|
|
||||||
|
|
||||||
#define as_float(x) __builtin_astype((x), float)
|
|
||||||
#define as_float2(x) __builtin_astype((x), float2)
|
|
||||||
#define as_float3(x) __builtin_astype((x), float3)
|
|
||||||
#define as_float4(x) __builtin_astype((x), float4)
|
|
||||||
#define as_float8(x) __builtin_astype((x), float8)
|
|
||||||
#define as_float16(x) __builtin_astype((x), float16)
|
|
||||||
|
|
||||||
#ifdef cl_khr_fp64
|
|
||||||
#define as_double(x) __builtin_astype((x), double)
|
|
||||||
#define as_double2(x) __builtin_astype((x), double2)
|
|
||||||
#define as_double3(x) __builtin_astype((x), double3)
|
|
||||||
#define as_double4(x) __builtin_astype((x), double4)
|
|
||||||
#define as_double8(x) __builtin_astype((x), double8)
|
|
||||||
#define as_double16(x) __builtin_astype((x), double16)
|
|
||||||
#endif //cl_khr_fp64
|
|
||||||
|
|
||||||
#ifdef cl_khr_fp16
|
|
||||||
#define as_half(x) __builtin_astype((x), half)
|
|
||||||
#define as_half2(x) __builtin_astype((x), half2)
|
|
||||||
#define as_half3(x) __builtin_astype((x), half3)
|
|
||||||
#define as_half4(x) __builtin_astype((x), half4)
|
|
||||||
#define as_half8(x) __builtin_astype((x), half8)
|
|
||||||
#define as_half16(x) __builtin_astype((x), half16)
|
|
||||||
#endif //cl_khr_fp16
|
|
||||||
|
|
||||||
// OpenCL v1.1 s6.9, v1.2/2.0 s6.10 - Function qualifiers
|
|
||||||
|
|
||||||
#define __kernel_exec(X, typen) __kernel \
|
|
||||||
__attribute__((work_group_size_hint(X, 1, 1))) \
|
|
||||||
__attribute__((vec_type_hint(typen)))
|
|
||||||
|
|
||||||
#define kernel_exec(X, typen) __kernel \
|
|
||||||
__attribute__((work_group_size_hint(X, 1, 1))) \
|
|
||||||
__attribute__((vec_type_hint(typen)))
|
|
||||||
|
|
||||||
// OpenCL v1.1 s6.11.1, v1.2 s6.12.1, v2.0 s6.13.1 - Work-item Functions
|
// OpenCL v1.1 s6.11.1, v1.2 s6.12.1, v2.0 s6.13.1 - Work-item Functions
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue