[libclc] 9b8532d - libclc: Clean up sincos macro usage (#187260)

via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 18 05:57:04 PDT 2026


Author: Matt Arsenault
Date: 2026-03-18T13:56:58+01:00
New Revision: 9b8532dd2aaab5e7c2d4330c9b55293ccd8f68bf

URL: https://github.com/llvm/llvm-project/commit/9b8532dd2aaab5e7c2d4330c9b55293ccd8f68bf
DIFF: https://github.com/llvm/llvm-project/commit/9b8532dd2aaab5e7c2d4330c9b55293ccd8f68bf.diff

LOG: libclc: Clean up sincos macro usage (#187260)

Handle this more like fract, and implement other
address spaces on top of the private overload with
a temporary variable.

Added: 
    

Modified: 
    libclc/clc/lib/generic/math/clc_sincos.inc

Removed: 
    


################################################################################
diff  --git a/libclc/clc/lib/generic/math/clc_sincos.inc b/libclc/clc/lib/generic/math/clc_sincos.inc
index da5059bfe771c..d268c75674e98 100644
--- a/libclc/clc/lib/generic/math/clc_sincos.inc
+++ b/libclc/clc/lib/generic/math/clc_sincos.inc
@@ -6,17 +6,23 @@
 //
 //===----------------------------------------------------------------------===//
 
-#define __CLC_DECLARE_SINCOS(ADDRSPACE, TYPE)                                  \
-  _CLC_OVERLOAD _CLC_DEF TYPE __clc_sincos(TYPE x, ADDRSPACE TYPE *cosval) {   \
-    *cosval = __clc_cos(x);                                                    \
-    return __clc_sin(x);                                                       \
+_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE
+__clc_sincos(__CLC_GENTYPE x, private __CLC_GENTYPE *cosval) {
+  *cosval = __clc_cos(x);
+  return __clc_sin(x);
+}
+
+#define __CLC_SINCOS_DEF(addrspace)                                            \
+  _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_sincos(                           \
+      __CLC_GENTYPE x, addrspace __CLC_GENTYPE *cos_out) {                     \
+    __CLC_GENTYPE cos_result;                                                  \
+    __CLC_GENTYPE sin_result = __clc_sincos(x, &cos_result);                   \
+    *cos_out = cos_result;                                                     \
+    return sin_result;                                                         \
   }
 
-__CLC_DECLARE_SINCOS(global, __CLC_GENTYPE)
-__CLC_DECLARE_SINCOS(local, __CLC_GENTYPE)
-__CLC_DECLARE_SINCOS(private, __CLC_GENTYPE)
+__CLC_SINCOS_DEF(local)
+__CLC_SINCOS_DEF(global)
 #if _CLC_DISTINCT_GENERIC_AS_SUPPORTED
-__CLC_DECLARE_SINCOS(generic, __CLC_GENTYPE)
+__CLC_SINCOS_DEF(generic)
 #endif
-
-#undef __CLC_DECLARE_SINCOS


        


More information about the cfe-commits mailing list