https://github.com/wenju-he updated https://github.com/llvm/llvm-project/pull/135301
>From 5992cc83e904ce047598a1987e2f8ce1926b9292 Mon Sep 17 00:00:00 2001 From: Wenju He <wenju...@intel.com> Date: Thu, 10 Apr 2025 19:34:50 -0700 Subject: [PATCH 1/2] [NFC][libclc] Refine clz to use __builtin_clzg It looks simpler to use __builtin_clzg for all unsigned types. --- libclc/clc/lib/generic/integer/clc_clz.cl | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libclc/clc/lib/generic/integer/clc_clz.cl b/libclc/clc/lib/generic/integer/clc_clz.cl index 74f662375af6b..a38c1d7ea0685 100644 --- a/libclc/clc/lib/generic/integer/clc_clz.cl +++ b/libclc/clc/lib/generic/integer/clc_clz.cl @@ -11,35 +11,35 @@ #include <clc/internal/clc.h> _CLC_OVERLOAD _CLC_DEF char __clc_clz(char x) { - return __clc_clz((ushort)(uchar)x) - 8; + return __clc_clz(__clc_as_uchar(x)); } _CLC_OVERLOAD _CLC_DEF uchar __clc_clz(uchar x) { - return __clc_clz((ushort)x) - 8; + return __builtin_clzg(x, 8); } _CLC_OVERLOAD _CLC_DEF short __clc_clz(short x) { - return x ? __builtin_clzs(x) : 16; + return __clc_clz(__clc_as_ushort(x)); } _CLC_OVERLOAD _CLC_DEF ushort __clc_clz(ushort x) { - return x ? __builtin_clzs(x) : 16; + return __builtin_clzg(x, 16); } _CLC_OVERLOAD _CLC_DEF int __clc_clz(int x) { - return x ? __builtin_clz(x) : 32; + return __clc_clz(__clc_as_uint(x)); } _CLC_OVERLOAD _CLC_DEF uint __clc_clz(uint x) { - return x ? __builtin_clz(x) : 32; + return __builtin_clzg(x, 32); } _CLC_OVERLOAD _CLC_DEF long __clc_clz(long x) { - return x ? __builtin_clzl(x) : 64; + return __clc_clz(__clc_as_ulong(x)); } _CLC_OVERLOAD _CLC_DEF ulong __clc_clz(ulong x) { - return x ? __builtin_clzl(x) : 64; + return __builtin_clzg(x, 64); } _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, char, __clc_clz, char) >From 2be72b2db81865f777cd45c3bd5b9fc15399eeb8 Mon Sep 17 00:00:00 2001 From: Wenju He <wenju...@intel.com> Date: Thu, 10 Apr 2025 20:26:44 -0700 Subject: [PATCH 2/2] clang-format --- libclc/clc/lib/generic/integer/clc_clz.cl | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/libclc/clc/lib/generic/integer/clc_clz.cl b/libclc/clc/lib/generic/integer/clc_clz.cl index a38c1d7ea0685..71582fca94172 100644 --- a/libclc/clc/lib/generic/integer/clc_clz.cl +++ b/libclc/clc/lib/generic/integer/clc_clz.cl @@ -14,9 +14,7 @@ _CLC_OVERLOAD _CLC_DEF char __clc_clz(char x) { return __clc_clz(__clc_as_uchar(x)); } -_CLC_OVERLOAD _CLC_DEF uchar __clc_clz(uchar x) { - return __builtin_clzg(x, 8); -} +_CLC_OVERLOAD _CLC_DEF uchar __clc_clz(uchar x) { return __builtin_clzg(x, 8); } _CLC_OVERLOAD _CLC_DEF short __clc_clz(short x) { return __clc_clz(__clc_as_ushort(x)); @@ -30,9 +28,7 @@ _CLC_OVERLOAD _CLC_DEF int __clc_clz(int x) { return __clc_clz(__clc_as_uint(x)); } -_CLC_OVERLOAD _CLC_DEF uint __clc_clz(uint x) { - return __builtin_clzg(x, 32); -} +_CLC_OVERLOAD _CLC_DEF uint __clc_clz(uint x) { return __builtin_clzg(x, 32); } _CLC_OVERLOAD _CLC_DEF long __clc_clz(long x) { return __clc_clz(__clc_as_ulong(x)); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits