31 lines · plain
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_modf(__CLC_GENTYPE x,9 private __CLC_GENTYPE *iptr) {10 *iptr = __clc_trunc(x);11 return __clc_copysign(__clc_isinf(x) ? __CLC_FP_LIT(0.0) : x - *iptr, x);12}13 14#define __CLC_MODF_DEF(addrspace) \15 _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_modf( \16 __CLC_GENTYPE x, addrspace __CLC_GENTYPE *iptr) { \17 __CLC_GENTYPE private_iptr; \18 __CLC_GENTYPE ret = __clc_modf(x, &private_iptr); \19 *iptr = private_iptr; \20 return ret; \21 }22 23__CLC_MODF_DEF(local);24__CLC_MODF_DEF(global);25 26#if _CLC_DISTINCT_GENERIC_AS_SUPPORTED27__CLC_MODF_DEF(generic);28#endif29 30#undef __CLC_MODF_DEF31