[libclc] libclc: Move FLT_MIN gentype macros (PR #187272)

Matt Arsenault via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 18 06:24:52 PDT 2026


https://github.com/arsenm created https://github.com/llvm/llvm-project/pull/187272

None

>From f4283a71d4f1e39f12df05fd3d3f8b235110b229 Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Wed, 18 Mar 2026 14:23:20 +0100
Subject: [PATCH] libclc: Move FLT_MIN gentype macros

---
 libclc/clc/include/clc/math/gentype.inc       |  6 +++
 .../clc/lib/generic/geometric/clc_length.inc  | 50 +++++++++----------
 2 files changed, 31 insertions(+), 25 deletions(-)

diff --git a/libclc/clc/include/clc/math/gentype.inc b/libclc/clc/include/clc/math/gentype.inc
index 302dbd2279d3f..c8d0c8a397fa2 100644
--- a/libclc/clc/include/clc/math/gentype.inc
+++ b/libclc/clc/include/clc/math/gentype.inc
@@ -75,6 +75,7 @@
 #define __CLC_FP_LIT(x) (__CLC_GENTYPE) x##F
 #define __CLC_GENTYPE_NAN (__CLC_GENTYPE) FLT_NAN
 #define __CLC_GENTYPE_INF (__CLC_GENTYPE) INFINITY
+#define __CLC_GENTYPE_MIN (__CLC_GENTYPE) FLT_MIN
 #define __CLC_GENTYPE_TRUE_MIN (__CLC_GENTYPE) FLT_TRUE_MIN
 
 #define __CLC_S_GENTYPE __CLC_XCONCAT(int, __CLC_VECSIZE)
@@ -140,6 +141,7 @@
 #undef __CLC_U_GENTYPE
 #undef __CLC_S_GENTYPE
 #undef __CLC_GENTYPE_NAN
+#undef __CLC_GENTYPE_MIN
 #undef __CLC_GENTYPE_TRUE_MIN
 #undef __CLC_FP_LIT
 #undef __CLC_FPSIZE
@@ -155,6 +157,7 @@
 #define __CLC_FPSIZE 64
 #define __CLC_FP_LIT(x) (__CLC_GENTYPE)(x)
 #define __CLC_GENTYPE_NAN (__CLC_GENTYPE) DBL_NAN
+#define __CLC_GENTYPE_MIN (__CLC_GENTYPE) DBL_MIN
 #define __CLC_GENTYPE_TRUE_MIN (__CLC_GENTYPE) DBL_TRUE_MIN
 
 #define __CLC_S_GENTYPE __CLC_XCONCAT(long, __CLC_VECSIZE)
@@ -220,6 +223,7 @@
 #undef __CLC_U_GENTYPE
 #undef __CLC_S_GENTYPE
 #undef __CLC_GENTYPE_NAN
+#undef __CLC_GENTYPE_MIN
 #undef __CLC_GENTYPE_TRUE_MIN
 #undef __CLC_FP_LIT
 #undef __CLC_FPSIZE
@@ -235,6 +239,7 @@
 #define __CLC_FPSIZE 16
 #define __CLC_FP_LIT(x) (__CLC_GENTYPE) x##H
 #define __CLC_GENTYPE_NAN (__CLC_GENTYPE) HALF_NAN
+#define __CLC_GENTYPE_MIN (__CLC_GENTYPE) HALF_MIN
 #define __CLC_GENTYPE_TRUE_MIN (__CLC_GENTYPE) HALF_TRUE_MIN
 
 #define __CLC_S_GENTYPE __CLC_XCONCAT(short, __CLC_VECSIZE)
@@ -300,6 +305,7 @@
 #undef __CLC_U_GENTYPE
 #undef __CLC_S_GENTYPE
 #undef __CLC_GENTYPE_NAN
+#undef __CLC_GENTYPE_MIN
 #undef __CLC_GENTYPE_TRUE_MIN
 #undef __CLC_FP_LIT
 #undef __CLC_FPSIZE
diff --git a/libclc/clc/lib/generic/geometric/clc_length.inc b/libclc/clc/lib/generic/geometric/clc_length.inc
index 760373547886f..fed128907d15c 100644
--- a/libclc/clc/lib/generic/geometric/clc_length.inc
+++ b/libclc/clc/lib/generic/geometric/clc_length.inc
@@ -16,23 +16,23 @@ _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_length(__CLC_GENTYPE p) {
        __CLC_VECSIZE_OR_1 == 4)
 
 #if __CLC_FPSIZE == 32
-#define __CLC_GENTYPE_MIN FLT_MIN
-#define __CLC_GENTYPE_MIN_SCALE_UP 0x1.0p+86F
-#define __CLC_GENTYPE_MIN_SCALE_DOWN 0x1.0p-86F
-#define __CLC_GENTYPE_INF_SCALE_UP 0x1.0p+65F
-#define __CLC_GENTYPE_INF_SCALE_DOWN 0x1.0p-65F
+#define __CLC_SCALAR_GENTYPE_MIN FLT_MIN
+#define __CLC_SCALAR_GENTYPE_MIN_SCALE_UP 0x1.0p+86F
+#define __CLC_SCALAR_GENTYPE_MIN_SCALE_DOWN 0x1.0p-86F
+#define __CLC_SCALAR_GENTYPE_INF_SCALE_UP 0x1.0p+65F
+#define __CLC_SCALAR_GENTYPE_INF_SCALE_DOWN 0x1.0p-65F
 #elif __CLC_FPSIZE == 64
-#define __CLC_GENTYPE_MIN DBL_MIN
-#define __CLC_GENTYPE_MIN_SCALE_UP 0x1.0p+563
-#define __CLC_GENTYPE_MIN_SCALE_DOWN 0x1.0p-563
-#define __CLC_GENTYPE_INF_SCALE_UP 0x1.0p+513
-#define __CLC_GENTYPE_INF_SCALE_DOWN 0x1.0p-513
+#define __CLC_SCALAR_GENTYPE_MIN DBL_MIN
+#define __CLC_SCALAR_GENTYPE_MIN_SCALE_UP 0x1.0p+563
+#define __CLC_SCALAR_GENTYPE_MIN_SCALE_DOWN 0x1.0p-563
+#define __CLC_SCALAR_GENTYPE_INF_SCALE_UP 0x1.0p+513
+#define __CLC_SCALAR_GENTYPE_INF_SCALE_DOWN 0x1.0p-513
 #elif __CLC_FPSIZE == 16
-#define __CLC_GENTYPE_MIN HALF_MIN
-#define __CLC_GENTYPE_MIN_SCALE_UP 0x1.0p+12H
-#define __CLC_GENTYPE_MIN_SCALE_DOWN 0x1.0p-12H
-#define __CLC_GENTYPE_INF_SCALE_UP 0x1.0p+7H
-#define __CLC_GENTYPE_INF_SCALE_DOWN 0x1.0p-7H
+#define __CLC_SCALAR_GENTYPE_MIN HALF_MIN
+#define __CLC_SCALAR_GENTYPE_MIN_SCALE_UP 0x1.0p+12H
+#define __CLC_SCALAR_GENTYPE_MIN_SCALE_DOWN 0x1.0p-12H
+#define __CLC_SCALAR_GENTYPE_INF_SCALE_UP 0x1.0p+7H
+#define __CLC_SCALAR_GENTYPE_INF_SCALE_DOWN 0x1.0p-7H
 #else
 #error "Unsupported FP size"
 #endif
@@ -40,23 +40,23 @@ _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_length(__CLC_GENTYPE p) {
 _CLC_OVERLOAD _CLC_DEF __CLC_SCALAR_GENTYPE __clc_length(__CLC_GENTYPE p) {
   __CLC_SCALAR_GENTYPE l2 = __clc_dot(p, p);
 
-  if (l2 < __CLC_GENTYPE_MIN) {
-    p *= __CLC_GENTYPE_MIN_SCALE_UP;
-    return __clc_sqrt(__clc_dot(p, p)) * __CLC_GENTYPE_MIN_SCALE_DOWN;
+  if (l2 < __CLC_SCALAR_GENTYPE_MIN) {
+    p *= __CLC_SCALAR_GENTYPE_MIN_SCALE_UP;
+    return __clc_sqrt(__clc_dot(p, p)) * __CLC_SCALAR_GENTYPE_MIN_SCALE_DOWN;
   }
 
   if (l2 == INFINITY) {
-    p *= __CLC_GENTYPE_INF_SCALE_DOWN;
-    return __clc_sqrt(__clc_dot(p, p)) * __CLC_GENTYPE_INF_SCALE_UP;
+    p *= __CLC_SCALAR_GENTYPE_INF_SCALE_DOWN;
+    return __clc_sqrt(__clc_dot(p, p)) * __CLC_SCALAR_GENTYPE_INF_SCALE_UP;
   }
 
   return __clc_sqrt(l2);
 }
 
-#undef __CLC_GENTYPE_INF_SCALE_DOWN
-#undef __CLC_GENTYPE_INF_SCALE_UP
-#undef __CLC_GENTYPE_MIN_SCALE_DOWN
-#undef __CLC_GENTYPE_MIN_SCALE_UP
-#undef __CLC_GENTYPE_MIN
+#undef __CLC_SCALAR_GENTYPE_INF_SCALE_DOWN
+#undef __CLC_SCALAR_GENTYPE_INF_SCALE_UP
+#undef __CLC_SCALAR_GENTYPE_MIN_SCALE_DOWN
+#undef __CLC_SCALAR_GENTYPE_MIN_SCALE_UP
+#undef __CLC_SCALAR_GENTYPE_MIN
 
 #endif



More information about the cfe-commits mailing list