https://github.com/wenju-he updated https://github.com/llvm/llvm-project/pull/163522
>From 9a49cb5e37f308fd889dfc5ee96981139c3221d2 Mon Sep 17 00:00:00 2001 From: Wenju He <[email protected]> Date: Wed, 15 Oct 2025 10:29:34 +0200 Subject: [PATCH 1/3] [libclc] Fix double NAN_MASK 0x7ff0000000000000 is +inf. Change it to quiet nan 0x7ff8000000000000. --- libclc/clc/lib/generic/math/clc_nan.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libclc/clc/lib/generic/math/clc_nan.inc b/libclc/clc/lib/generic/math/clc_nan.inc index 46e828ba48c7e..47527088960da 100644 --- a/libclc/clc/lib/generic/math/clc_nan.inc +++ b/libclc/clc/lib/generic/math/clc_nan.inc @@ -7,7 +7,7 @@ //===----------------------------------------------------------------------===// #if __CLC_FPSIZE == 64 -#define NAN_MASK 0x7ff0000000000000ul +#define NAN_MASK 0x7ff8000000000000ul #elif __CLC_FPSIZE == 32 #define NAN_MASK 0x7fc00000 #elif __CLC_FPSIZE == 16 >From de867d4ef5b0c33bc48473d9b32703d7b5c4fd72 Mon Sep 17 00:00:00 2001 From: Wenju He <[email protected]> Date: Thu, 16 Oct 2025 03:05:01 +0200 Subject: [PATCH 2/3] use __builtin_nan --- libclc/clc/lib/generic/math/clc_nan.cl | 14 +++++++++++++- libclc/clc/lib/generic/math/clc_nan.inc | 18 ++++++++++-------- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/libclc/clc/lib/generic/math/clc_nan.cl b/libclc/clc/lib/generic/math/clc_nan.cl index 0d480175b9c5e..0019ce28739be 100644 --- a/libclc/clc/lib/generic/math/clc_nan.cl +++ b/libclc/clc/lib/generic/math/clc_nan.cl @@ -7,7 +7,19 @@ //===----------------------------------------------------------------------===// #include <clc/internal/clc.h> -#include <clc/utils.h> +#include <clc/math/clc_nan.h> #define __CLC_BODY <clc_nan.inc> #include <clc/math/gentype.inc> + +#define __CLC_FUNCTION __clc_nan + +#define __CLC_ARG1_TYPE __CLC_S_GENTYPE +#define __CLC_BODY <clc/shared/unary_def_scalarize.inc> +#include <clc/math/gentype.inc> +#undef __CLC_ARG1_TYPE + +#define __CLC_ARG1_TYPE __CLC_U_GENTYPE +#define __CLC_BODY <clc/shared/unary_def_scalarize.inc> +#include <clc/math/gentype.inc> +#undef __CLC_ARG1_TYPE diff --git a/libclc/clc/lib/generic/math/clc_nan.inc b/libclc/clc/lib/generic/math/clc_nan.inc index 47527088960da..a8c01955e2784 100644 --- a/libclc/clc/lib/generic/math/clc_nan.inc +++ b/libclc/clc/lib/generic/math/clc_nan.inc @@ -6,22 +6,24 @@ // //===----------------------------------------------------------------------===// +#if __CLC_VECSIZE_OR_1 == 1 + #if __CLC_FPSIZE == 64 -#define NAN_MASK 0x7ff8000000000000ul +#define __CLC_IMPL_FUNCTION __builtin_nan #elif __CLC_FPSIZE == 32 -#define NAN_MASK 0x7fc00000 +#define __CLC_IMPL_FUNCTION __builtin_nanf #elif __CLC_FPSIZE == 16 -#define NAN_MASK 0x7e00 +#define __CLC_IMPL_FUNCTION __builtin_nanf16 #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); + return __CLC_IMPL_FUNCTION(""); } _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_nan(__CLC_S_GENTYPE code) { - return __clc_nan(__CLC_AS_U_GENTYPE(code)); + return __CLC_IMPL_FUNCTION(""); } -#undef NAN_MASK +#undef __CLC_IMPL_FUNCTION + +#endif // __CLC_VECSIZE_OR_1 == 1 >From a5c8d7a19e2491e1926bf96119bec5ffe79be04e Mon Sep 17 00:00:00 2001 From: Wenju He <[email protected]> Date: Mon, 20 Oct 2025 03:45:27 +0200 Subject: [PATCH 3/3] Revert "use __builtin_nan" This reverts commit de867d4ef5b0c33bc48473d9b32703d7b5c4fd72. --- libclc/clc/lib/generic/math/clc_nan.cl | 14 +------------- libclc/clc/lib/generic/math/clc_nan.inc | 18 ++++++++---------- 2 files changed, 9 insertions(+), 23 deletions(-) diff --git a/libclc/clc/lib/generic/math/clc_nan.cl b/libclc/clc/lib/generic/math/clc_nan.cl index 0019ce28739be..0d480175b9c5e 100644 --- a/libclc/clc/lib/generic/math/clc_nan.cl +++ b/libclc/clc/lib/generic/math/clc_nan.cl @@ -7,19 +7,7 @@ //===----------------------------------------------------------------------===// #include <clc/internal/clc.h> -#include <clc/math/clc_nan.h> +#include <clc/utils.h> #define __CLC_BODY <clc_nan.inc> #include <clc/math/gentype.inc> - -#define __CLC_FUNCTION __clc_nan - -#define __CLC_ARG1_TYPE __CLC_S_GENTYPE -#define __CLC_BODY <clc/shared/unary_def_scalarize.inc> -#include <clc/math/gentype.inc> -#undef __CLC_ARG1_TYPE - -#define __CLC_ARG1_TYPE __CLC_U_GENTYPE -#define __CLC_BODY <clc/shared/unary_def_scalarize.inc> -#include <clc/math/gentype.inc> -#undef __CLC_ARG1_TYPE diff --git a/libclc/clc/lib/generic/math/clc_nan.inc b/libclc/clc/lib/generic/math/clc_nan.inc index a8c01955e2784..47527088960da 100644 --- a/libclc/clc/lib/generic/math/clc_nan.inc +++ b/libclc/clc/lib/generic/math/clc_nan.inc @@ -6,24 +6,22 @@ // //===----------------------------------------------------------------------===// -#if __CLC_VECSIZE_OR_1 == 1 - #if __CLC_FPSIZE == 64 -#define __CLC_IMPL_FUNCTION __builtin_nan +#define NAN_MASK 0x7ff8000000000000ul #elif __CLC_FPSIZE == 32 -#define __CLC_IMPL_FUNCTION __builtin_nanf +#define NAN_MASK 0x7fc00000 #elif __CLC_FPSIZE == 16 -#define __CLC_IMPL_FUNCTION __builtin_nanf16 +#define NAN_MASK 0x7e00 #endif _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_nan(__CLC_U_GENTYPE code) { - return __CLC_IMPL_FUNCTION(""); + 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_IMPL_FUNCTION(""); + return __clc_nan(__CLC_AS_U_GENTYPE(code)); } -#undef __CLC_IMPL_FUNCTION - -#endif // __CLC_VECSIZE_OR_1 == 1 +#undef NAN_MASK _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
