https://github.com/wenju-he updated 
https://github.com/llvm/llvm-project/pull/164957

>From 39fa5d234da4c1bdab76770a76636193ab25fbf6 Mon Sep 17 00:00:00 2001
From: Wenju He <[email protected]>
Date: Fri, 24 Oct 2025 13:05:01 +0200
Subject: [PATCH 1/3] [libclc] Simplify integer __clc_abs implementation

Previous implementation was cmp, select and @llvm.smax sequence in LLVM IR.
---
 libclc/clc/lib/generic/integer/clc_abs.inc | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/libclc/clc/lib/generic/integer/clc_abs.inc 
b/libclc/clc/lib/generic/integer/clc_abs.inc
index 26ec0b24ffb96..222b14fbe7b28 100644
--- a/libclc/clc/lib/generic/integer/clc_abs.inc
+++ b/libclc/clc/lib/generic/integer/clc_abs.inc
@@ -6,7 +6,16 @@
 //
 
//===----------------------------------------------------------------------===//
 
+#ifdef __CLC_GEN_S
+
+_CLC_OVERLOAD _CLC_DEF __CLC_U_GENTYPE __clc_abs(__CLC_GENTYPE x) {
+  return __builtin_astype(__builtin_elementwise_abs(x), __CLC_U_GENTYPE);
+}
+
+#else
+
 _CLC_OVERLOAD _CLC_DEF __CLC_U_GENTYPE __clc_abs(__CLC_GENTYPE x) {
-  return __builtin_astype((__CLC_GENTYPE)(x > (__CLC_GENTYPE)(0) ? x : -x),
-                          __CLC_U_GENTYPE);
+  return x;
 }
+
+#endif

>From 205433c8fe10c1cec1ee7b0872398785979af894 Mon Sep 17 00:00:00 2001
From: Wenju He <[email protected]>
Date: Fri, 24 Oct 2025 13:12:06 +0200
Subject: [PATCH 2/3] clang-format

---
 libclc/clc/lib/generic/integer/clc_abs.inc | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/libclc/clc/lib/generic/integer/clc_abs.inc 
b/libclc/clc/lib/generic/integer/clc_abs.inc
index 222b14fbe7b28..81e92461bab9e 100644
--- a/libclc/clc/lib/generic/integer/clc_abs.inc
+++ b/libclc/clc/lib/generic/integer/clc_abs.inc
@@ -14,8 +14,6 @@ _CLC_OVERLOAD _CLC_DEF __CLC_U_GENTYPE 
__clc_abs(__CLC_GENTYPE x) {
 
 #else
 
-_CLC_OVERLOAD _CLC_DEF __CLC_U_GENTYPE __clc_abs(__CLC_GENTYPE x) {
-  return x;
-}
+_CLC_OVERLOAD _CLC_DEF __CLC_U_GENTYPE __clc_abs(__CLC_GENTYPE x) { return x; }
 
 #endif

>From db999d450d1f3b6dafbdd548b5db49c314504797 Mon Sep 17 00:00:00 2001
From: Wenju He <[email protected]>
Date: Fri, 24 Oct 2025 13:45:22 +0200
Subject: [PATCH 3/3] define __CLC_GEN_U __CLC_GEN_S in clc/integer/gentype.inc

---
 libclc/clc/include/clc/integer/gentype.inc | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/libclc/clc/include/clc/integer/gentype.inc 
b/libclc/clc/include/clc/integer/gentype.inc
index b2b603e272573..acca8632de32a 100644
--- a/libclc/clc/include/clc/integer/gentype.inc
+++ b/libclc/clc/include/clc/integer/gentype.inc
@@ -23,6 +23,7 @@
 // to keep this file manageable.
 #define __CLC_GENSIZE 8
 #define __CLC_SCALAR_GENTYPE char
+#define __CLC_GEN_S
 
 #define __CLC_GENTYPE char
 #define __CLC_U_GENTYPE uchar
@@ -93,6 +94,8 @@
 
 #undef __CLC_SCALAR_GENTYPE
 #define __CLC_SCALAR_GENTYPE uchar
+#undef __CLC_GEN_S
+#define __CLC_GEN_U
 
 #define __CLC_GENTYPE uchar
 #define __CLC_U_GENTYPE uchar
@@ -165,6 +168,8 @@
 #define __CLC_GENSIZE 16
 #undef __CLC_SCALAR_GENTYPE
 #define __CLC_SCALAR_GENTYPE short
+#undef __CLC_GEN_U
+#define __CLC_GEN_S
 
 #define __CLC_GENTYPE short
 #define __CLC_U_GENTYPE ushort
@@ -235,6 +240,8 @@
 
 #undef __CLC_SCALAR_GENTYPE
 #define __CLC_SCALAR_GENTYPE ushort
+#undef __CLC_GEN_S
+#define __CLC_GEN_U
 
 #define __CLC_GENTYPE ushort
 #define __CLC_U_GENTYPE ushort
@@ -307,6 +314,8 @@
 #define __CLC_GENSIZE 32
 #undef __CLC_SCALAR_GENTYPE
 #define __CLC_SCALAR_GENTYPE int
+#undef __CLC_GEN_U
+#define __CLC_GEN_S
 
 #define __CLC_GENTYPE int
 #define __CLC_U_GENTYPE uint
@@ -377,6 +386,8 @@
 
 #undef __CLC_SCALAR_GENTYPE
 #define __CLC_SCALAR_GENTYPE uint
+#undef __CLC_GEN_S
+#define __CLC_GEN_U
 
 #define __CLC_GENTYPE uint
 #define __CLC_U_GENTYPE uint
@@ -449,6 +460,8 @@
 #define __CLC_GENSIZE 64
 #undef __CLC_SCALAR_GENTYPE
 #define __CLC_SCALAR_GENTYPE long
+#undef __CLC_GEN_U
+#define __CLC_GEN_S
 
 #define __CLC_GENTYPE long
 #define __CLC_U_GENTYPE ulong
@@ -519,6 +532,8 @@
 
 #undef __CLC_SCALAR_GENTYPE
 #define __CLC_SCALAR_GENTYPE ulong
+#undef __CLC_GEN_S
+#define __CLC_GEN_U
 
 #define __CLC_GENTYPE ulong
 #define __CLC_U_GENTYPE ulong
@@ -588,6 +603,8 @@
 #undef __CLC_S_GENTYPE
 #undef __CLC_VECSIZE_OR_1
 
+#undef __CLC_GEN_U
+
 #undef __CLC_GENSIZE
 #undef __CLC_SCALAR_GENTYPE
 #undef __CLC_BODY

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to