#define as_char(x) __builtin_astype(x, char) #define as_uchar(x) __builtin_astype(x, uchar) #define as_short(x) __builtin_astype(x, short) #define as_ushort(x) __builtin_astype(x, ushort) #define as_int(x) __builtin_astype(x, int) #define as_uint(x) __builtin_astype(x, uint) #define as_long(x) __builtin_astype(x, long) #define as_ulong(x) __builtin_astype(x, ulong) #define as_float(x) __builtin_astype(x, float) #define as_char2(x) __builtin_astype(x, char2) #define as_uchar2(x) __builtin_astype(x, uchar2) #define as_short2(x) __builtin_astype(x, short2) #define as_ushort2(x) __builtin_astype(x, ushort2) #define as_int2(x) __builtin_astype(x, int2) #define as_uint2(x) __builtin_astype(x, uint2) #define as_long2(x) __builtin_astype(x, long2) #define as_ulong2(x) __builtin_astype(x, ulong2) #define as_float2(x) __builtin_astype(x, float2) #define as_char3(x) __builtin_astype(x, char3) #define as_uchar3(x) __builtin_astype(x, uchar3) #define as_short3(x) __builtin_astype(x, short3) #define as_ushort3(x) __builtin_astype(x, ushort3) #define as_int3(x) __builtin_astype(x, int3) #define as_uint3(x) __builtin_astype(x, uint3) #define as_long3(x) __builtin_astype(x, long3) #define as_ulong3(x) __builtin_astype(x, ulong3) #define as_float3(x) __builtin_astype(x, float3) #define as_char4(x) __builtin_astype(x, char4) #define as_uchar4(x) __builtin_astype(x, uchar4) #define as_short4(x) __builtin_astype(x, short4) #define as_ushort4(x) __builtin_astype(x, ushort4) #define as_int4(x) __builtin_astype(x, int4) #define as_uint4(x) __builtin_astype(x, uint4) #define as_long4(x) __builtin_astype(x, long4) #define as_ulong4(x) __builtin_astype(x, ulong4) #define as_float4(x) __builtin_astype(x, float4) #define as_char8(x) __builtin_astype(x, char8) #define as_uchar8(x) __builtin_astype(x, uchar8) #define as_short8(x) __builtin_astype(x, short8) #define as_ushort8(x) __builtin_astype(x, ushort8) #define as_int8(x) __builtin_astype(x, int8) #define as_uint8(x) __builtin_astype(x, uint8) #define as_long8(x) __builtin_astype(x, long8) #define as_ulong8(x) __builtin_astype(x, ulong8) #define as_float8(x) __builtin_astype(x, float8) #define as_char16(x) __builtin_astype(x, char16) #define as_uchar16(x) __builtin_astype(x, uchar16) #define as_short16(x) __builtin_astype(x, short16) #define as_ushort16(x) __builtin_astype(x, ushort16) #define as_int16(x) __builtin_astype(x, int16) #define as_uint16(x) __builtin_astype(x, uint16) #define as_long16(x) __builtin_astype(x, long16) #define as_ulong16(x) __builtin_astype(x, ulong16) #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 #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