https://github.com/arsenm created https://github.com/llvm/llvm-project/pull/211260
None >From 87cdfe08072e98231b68374f7683d6aed9abbe22 Mon Sep 17 00:00:00 2001 From: Matt Arsenault <[email protected]> Date: Wed, 22 Jul 2026 15:24:33 +0200 Subject: [PATCH] libclc: Fix signed 0 handling in sincospi --- libclc/clc/lib/generic/math/clc_sincospi.cl | 1 + libclc/clc/lib/generic/math/clc_sincospi.inc | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libclc/clc/lib/generic/math/clc_sincospi.cl b/libclc/clc/lib/generic/math/clc_sincospi.cl index 53a26839aa800..f5e310628d364 100644 --- a/libclc/clc/lib/generic/math/clc_sincospi.cl +++ b/libclc/clc/lib/generic/math/clc_sincospi.cl @@ -9,6 +9,7 @@ #include "clc/clc_convert.h" #include "clc/float/definitions.h" #include "clc/internal/clc.h" +#include "clc/math/clc_copysign.h" #include "clc/math/clc_cos.h" #include "clc/math/clc_fabs.h" #include "clc/math/clc_sin.h" diff --git a/libclc/clc/lib/generic/math/clc_sincospi.inc b/libclc/clc/lib/generic/math/clc_sincospi.inc index b8b50a6dfb012..5d1ab7ca24e33 100644 --- a/libclc/clc/lib/generic/math/clc_sincospi.inc +++ b/libclc/clc/lib/generic/math/clc_sincospi.inc @@ -29,8 +29,12 @@ __clc_sincospi(__CLC_GENTYPE x, __private __CLC_GENTYPE *cos_out) { __CLC_GENTYPE c = odd ? -eval.sin : eval.cos; *cos_out = - __CLC_AS_GENTYPE(__CLC_CONVERT_S_GENTYPE(__CLC_AS_S_GENTYPE(c) ^ flip)); - return __CLC_AS_GENTYPE(sin_val); + __CLC_AS_GENTYPE(__CLC_CONVERT_S_GENTYPE(__CLC_AS_S_GENTYPE(c) ^ flip)) + + __CLC_FP_LIT(0.0); + + __CLC_GENTYPE sin_result = __CLC_AS_GENTYPE(sin_val); + return __clc_select(sin_result, __clc_copysign(__CLC_FP_LIT(0.0), x), + __CLC_CONVERT_S_GENTYPE(sin_result == __CLC_FP_LIT(0.0))); } #define __CLC_SINCOSPI_DEF(addrspace) \ _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
