From fbbaf6b0882f48879a56356c158d9a00d181c7b2 Mon Sep 17 00:00:00 2001 From: Michael Schellenberger Costa Date: Fri, 23 Jun 2023 13:56:51 +0000 Subject: [PATCH] Do not rely on builtins that are not host device for complex --- .../include/cuda/std/detail/libcxx/include/cmath | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/cmath b/libcudacxx/include/cuda/std/detail/libcxx/include/cmath index 43bddcd8163..c588bde44cb 100644 --- a/libcudacxx/include/cuda/std/detail/libcxx/include/cmath +++ b/libcudacxx/include/cuda/std/detail/libcxx/include/cmath @@ -613,7 +613,9 @@ _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR __enable_if_t::value, bool> __constexpr_isnan(_A1 __lcpp_x) _NOEXCEPT { -#if __has_builtin(__builtin_isnan) +#if defined(_LIBCUDACXX_COMPILER_NVCC) && _LIBCUDACXX_CUDACC_VER < 1108000 + return __isnan(__lcpp_x); +#elif __has_builtin(__builtin_isnan) return __builtin_isnan(__lcpp_x); #else return isnan(__lcpp_x); @@ -633,7 +635,9 @@ _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR __enable_if_t::value, bool> __constexpr_isinf(_A1 __lcpp_x) _NOEXCEPT { -#if __has_builtin(__builtin_isinf) +#if defined(_LIBCUDACXX_COMPILER_NVCC) && _LIBCUDACXX_CUDACC_VER < 1108000 + return __isinf(__lcpp_x); +#elif __has_builtin(__builtin_isinf) return __builtin_isinf(__lcpp_x); #else return isinf(__lcpp_x); @@ -653,7 +657,9 @@ _LIBCUDACXX_INLINE_VISIBILITY _LIBCUDACXX_CONSTEXPR __enable_if_t::value, bool> __constexpr_isfinite(_A1 __lcpp_x) _NOEXCEPT { -#if __has_builtin(__builtin_isfinite) +#if defined(_LIBCUDACXX_COMPILER_NVCC) && _LIBCUDACXX_CUDACC_VER < 1108000 + return !__isinf(__lcpp_x) && !__isnan(__lcpp_x); +#elif __has_builtin(__builtin_isfinite) return __builtin_isfinite(__lcpp_x); #else return isfinite(__lcpp_x);