[analyzer][NFC] Factor out SymbolManager::get<*> (#121781)
[llvm-project.git] / libclc / generic / lib / math / nan.inc
blobf6508c3ab521c2e47e1cd463d4492a49defef13c
1 #ifdef __CLC_SCALAR
2 #define __CLC_VECSIZE
3 #endif
5 #if __CLC_FPSIZE == 64
6 _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE nan(__CLC_XCONCAT(ulong, __CLC_VECSIZE) code)
8         return __CLC_AS_GENTYPE(code | 0x7ff0000000000000ul);
10 #elif __CLC_FPSIZE == 32
11 _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE nan(__CLC_XCONCAT(uint, __CLC_VECSIZE) code)
13         return __CLC_AS_GENTYPE(code | 0x7fc00000);
15 #elif __CLC_FPSIZE == 16
16 _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE nan(__CLC_XCONCAT(ushort, __CLC_VECSIZE) code)
18         const ushort mask = 0x7e00;
19         const __CLC_XCONCAT(ushort, __CLC_VECSIZE) res = code | mask;
20         return __CLC_AS_GENTYPE(res);
22 #endif
25 #ifdef __CLC_SCALAR
26 #undef __CLC_VECSIZE
27 #endif