[libclc] [libclc] Improve nextafter behaviour around zero (PR #127469)

Matt Arsenault via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 18 09:55:24 PST 2025


================
@@ -13,19 +13,25 @@
     const UINT_TYPE sign_bit = (UINT_TYPE)1                                    \
                                << (sizeof(INT_TYPE_SCALAR) * 8 - 1);           \
     const UINT_TYPE sign_bit_mask = sign_bit - (UINT_TYPE)1;                   \
-    INT_TYPE ix = CLC_AS_TYPE(INT_TYPE)(x);                                    \
-    UINT_TYPE ax = CLC_AS_TYPE(UINT_TYPE)(ix) & sign_bit_mask;                 \
-    INT_TYPE mx = CLC_AS_TYPE(INT_TYPE)(sign_bit) - ix;                        \
-    mx = CLC_AS_TYPE(INT_TYPE)(ix) < (INT_TYPE)0 ? mx : ix;                    \
-    INT_TYPE iy = CLC_AS_TYPE(INT_TYPE)(y);                                    \
-    UINT_TYPE ay = CLC_AS_TYPE(UINT_TYPE)(iy) & sign_bit_mask;                 \
-    INT_TYPE my = CLC_AS_TYPE(INT_TYPE)(sign_bit) - iy;                        \
-    my = iy < (INT_TYPE)0 ? my : iy;                                           \
+    UINT_TYPE ix = CLC_AS_TYPE(UINT_TYPE)(x);                                  \
+    UINT_TYPE ax = ix & sign_bit_mask;                                         \
----------------
arsenm wrote:

```suggestion
    FLOAT_TYPE ax = __builtin_elementwise_abs(x);                                         \
```

https://github.com/llvm/llvm-project/pull/127469


More information about the cfe-commits mailing list