blob: 4344c65a12bedd12d244f7061350c06efbe6fbc1 [file] [log] [blame]
//===----------------------------------------------------------------------===//
//
// 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
//
//===----------------------------------------------------------------------===//
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_modf(__CLC_GENTYPE x,
private __CLC_GENTYPE *iptr) {
*iptr = __clc_trunc(x);
return __clc_copysign(__clc_isinf(x) ? __CLC_FP_LIT(0.0) : x - *iptr, x);
}
#define __CLC_MODF_DEF(addrspace) \
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_modf( \
__CLC_GENTYPE x, addrspace __CLC_GENTYPE *iptr) { \
__CLC_GENTYPE private_iptr; \
__CLC_GENTYPE ret = __clc_modf(x, &private_iptr); \
*iptr = private_iptr; \
return ret; \
}
__CLC_MODF_DEF(local);
__CLC_MODF_DEF(global);
#if _CLC_DISTINCT_GENERIC_AS_SUPPORTED
__CLC_MODF_DEF(generic);
#endif
#undef __CLC_MODF_DEF