28 lines
		
	
	
		
			664 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			664 B
		
	
	
	
		
			C++
		
	
	
	
#ifdef __CLC_SCALAR
 | 
						|
#define __CLC_VECSIZE
 | 
						|
#endif
 | 
						|
 | 
						|
#if __CLC_FPSIZE == 64
 | 
						|
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE nan(__CLC_XCONCAT(ulong, __CLC_VECSIZE) code)
 | 
						|
{
 | 
						|
	return __CLC_AS_GENTYPE(code | 0x7ff0000000000000ul);
 | 
						|
}
 | 
						|
#elif __CLC_FPSIZE == 32
 | 
						|
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE nan(__CLC_XCONCAT(uint, __CLC_VECSIZE) code)
 | 
						|
{
 | 
						|
	return __CLC_AS_GENTYPE(code | 0x7fc00000);
 | 
						|
}
 | 
						|
#elif __CLC_FPSIZE == 16
 | 
						|
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE nan(__CLC_XCONCAT(ushort, __CLC_VECSIZE) code)
 | 
						|
{
 | 
						|
	const ushort mask = 0x7e00;
 | 
						|
	const __CLC_XCONCAT(ushort, __CLC_VECSIZE) res = code | mask;
 | 
						|
	return __CLC_AS_GENTYPE(res);
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
#ifdef __CLC_SCALAR
 | 
						|
#undef __CLC_VECSIZE
 | 
						|
#endif
 |