Files
clang-p2996/libclc/generic/include/clc/relational/floatn.inc
Jan Vesely 70a270da5f Add initial support for half precision builtins
v2: fix fmax implementation
    use consistent checks for __CLC_FP_SIZE
    add missing TODOs
    fix whitespace in definitions.h
v3: undef ZERO in modf.inc

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
reviewer: Jeroen Ketema <j.ketema@xs4all.nl>
Reviewed-by: Aaron Watry <awatry@gmail.com>
Tested-by: Aaron Watry <awatry@gmail.com>
llvm-svn: 332677
2018-05-17 22:55:30 +00:00

123 lines
2.2 KiB
C++

#define __CLC_FLOATN float
#define __CLC_INTN int
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#define __CLC_FLOATN float2
#define __CLC_INTN int2
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#define __CLC_FLOATN float3
#define __CLC_INTN int3
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#define __CLC_FLOATN float4
#define __CLC_INTN int4
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#define __CLC_FLOATN float8
#define __CLC_INTN int8
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#define __CLC_FLOATN float16
#define __CLC_INTN int16
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#undef __CLC_FLOAT
#undef __CLC_INT
#ifdef cl_khr_fp64
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
#define __CLC_FLOATN double
#define __CLC_INTN int
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#define __CLC_FLOATN double2
#define __CLC_INTN long2
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#define __CLC_FLOATN double3
#define __CLC_INTN long3
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#define __CLC_FLOATN double4
#define __CLC_INTN long4
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#define __CLC_FLOATN double8
#define __CLC_INTN long8
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#define __CLC_FLOATN double16
#define __CLC_INTN long16
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#endif
#ifdef cl_khr_fp16
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
#define __CLC_FLOATN half
#define __CLC_INTN int
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#define __CLC_FLOATN half2
#define __CLC_INTN short2
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#define __CLC_FLOATN half3
#define __CLC_INTN short3
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#define __CLC_FLOATN half4
#define __CLC_INTN short4
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#define __CLC_FLOATN half8
#define __CLC_INTN short8
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#define __CLC_FLOATN half16
#define __CLC_INTN short16
#include __CLC_BODY
#undef __CLC_INTN
#undef __CLC_FLOATN
#endif
#undef __CLC_BODY