Files
clang-p2996/libclc/generic/include/clc/relational/floatn.inc
Aaron Watry 13116cf01a relational: create re-usable macros for relational declarations
relational.h includes relational macros for defining functions which need to
return 1 for scalar true and -1 for vector true.

I believe that this is the only place that this behavior is required, so the
macro is placed at its lowest useful level (same directory as it is used in).

This also creates re-usable unary/binary declaration and floatn includes which
should simplify relational builtin declarations.

Mostly patterned off of include/math/[binary_decl|unary_decl|floatn].inc
but with required changes for relational functions.

Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 213315
2014-07-17 22:05:16 +00:00

82 lines
1.4 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
#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
#undef __CLC_BODY