1#define __CLC_INTRINSIC_DEF(SCALAR_TYPE, BIT_SIZE) \ 2_CLC_OVERLOAD SCALAR_TYPE __CLC_FUNCTION(SCALAR_TYPE x) __asm(__CLC_INTRINSIC ".i" BIT_SIZE); \ 3_CLC_OVERLOAD SCALAR_TYPE##2 __CLC_FUNCTION(SCALAR_TYPE##2 x) __asm(__CLC_INTRINSIC ".v2i" BIT_SIZE); \ 4_CLC_OVERLOAD SCALAR_TYPE##3 __CLC_FUNCTION(SCALAR_TYPE##3 x) __asm(__CLC_INTRINSIC ".v3i" BIT_SIZE); \ 5_CLC_OVERLOAD SCALAR_TYPE##4 __CLC_FUNCTION(SCALAR_TYPE##4 x) __asm(__CLC_INTRINSIC ".v4i" BIT_SIZE); \ 6_CLC_OVERLOAD SCALAR_TYPE##8 __CLC_FUNCTION(SCALAR_TYPE##8 x) __asm(__CLC_INTRINSIC ".v8i" BIT_SIZE); \ 7_CLC_OVERLOAD SCALAR_TYPE##16 __CLC_FUNCTION(SCALAR_TYPE##16 x) __asm(__CLC_INTRINSIC ".v16i" BIT_SIZE); 8 9__CLC_INTRINSIC_DEF(char, "8") 10__CLC_INTRINSIC_DEF(uchar, "8") 11__CLC_INTRINSIC_DEF(short, "16") 12__CLC_INTRINSIC_DEF(ushort, "16") 13__CLC_INTRINSIC_DEF(int, "32") 14__CLC_INTRINSIC_DEF(uint, "32") 15__CLC_INTRINSIC_DEF(long, "64") 16__CLC_INTRINSIC_DEF(ulong, "64") 17 18#undef __CLC_FUNCTION 19#undef __CLC_INTRINSIC 20#undef __CLC_INTRINSIC_DEF 21