Files
clang-p2996/libclc/generic/include/integer/unary_intrin.inc
Jan Vesely 17e8679493 popcount: Provide function implementation rather than intrinsic redirect
amdgcn will need to override this

Reviewer: Aaron Watry <awatry@gmail.com>
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
llvm-svn: 327042
2018-03-08 18:58:00 +00:00

21 lines
1002 B
C++

#define __CLC_INTRINSIC_DEF(SCALAR_TYPE, BIT_SIZE) \
_CLC_OVERLOAD SCALAR_TYPE __CLC_FUNCTION(SCALAR_TYPE x) __asm(__CLC_INTRINSIC ".i" BIT_SIZE); \
_CLC_OVERLOAD SCALAR_TYPE##2 __CLC_FUNCTION(SCALAR_TYPE##2 x) __asm(__CLC_INTRINSIC ".v2i" BIT_SIZE); \
_CLC_OVERLOAD SCALAR_TYPE##3 __CLC_FUNCTION(SCALAR_TYPE##3 x) __asm(__CLC_INTRINSIC ".v3i" BIT_SIZE); \
_CLC_OVERLOAD SCALAR_TYPE##4 __CLC_FUNCTION(SCALAR_TYPE##4 x) __asm(__CLC_INTRINSIC ".v4i" BIT_SIZE); \
_CLC_OVERLOAD SCALAR_TYPE##8 __CLC_FUNCTION(SCALAR_TYPE##8 x) __asm(__CLC_INTRINSIC ".v8i" BIT_SIZE); \
_CLC_OVERLOAD SCALAR_TYPE##16 __CLC_FUNCTION(SCALAR_TYPE##16 x) __asm(__CLC_INTRINSIC ".v16i" BIT_SIZE);
__CLC_INTRINSIC_DEF(char, "8")
__CLC_INTRINSIC_DEF(uchar, "8")
__CLC_INTRINSIC_DEF(short, "16")
__CLC_INTRINSIC_DEF(ushort, "16")
__CLC_INTRINSIC_DEF(int, "32")
__CLC_INTRINSIC_DEF(uint, "32")
__CLC_INTRINSIC_DEF(long, "64")
__CLC_INTRINSIC_DEF(ulong, "64")
#undef __CLC_FUNCTION
#undef __CLC_INTRINSIC
#undef __CLC_INTRINSIC_DEF