| //===----------------------------------------------------------------------===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #if __CLC_FPSIZE == 64 |
| #define NAN_MASK 0x7ff8000000000000ul |
| #elif __CLC_FPSIZE == 32 |
| #define NAN_MASK 0x7fc00000 |
| #elif __CLC_FPSIZE == 16 |
| #define NAN_MASK 0x7e00 |
| #endif |
| |
| _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_nan(__CLC_U_GENTYPE code) { |
| const __CLC_U_GENTYPE mask = NAN_MASK; |
| const __CLC_U_GENTYPE res = code | mask; |
| return __CLC_AS_GENTYPE(res); |
| } |
| |
| _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_nan(__CLC_S_GENTYPE code) { |
| return __clc_nan(__CLC_AS_U_GENTYPE(code)); |
| } |
| |
| #undef NAN_MASK |