Skip to content

Commit 694a42f

Browse files
authored
[libclc] Avoid casting NANs & literals to 'gentype' (#137824)
By having these already defined as type 'gentype' we can avoid unnecessary casting.
1 parent d637038 commit 694a42f

File tree

6 files changed

+16
-22
lines changed

6 files changed

+16
-22
lines changed

libclc/clc/include/clc/math/gentype.inc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@
7373
#if (!defined(__HALF_ONLY) && !defined(__DOUBLE_ONLY))
7474
#define __CLC_SCALAR_GENTYPE float
7575
#define __CLC_FPSIZE 32
76-
#define __CLC_FP_LIT(x) x##F
77-
#define __CLC_GENTYPE_NAN FLT_NAN
76+
#define __CLC_FP_LIT(x) (__CLC_GENTYPE) x##F
77+
#define __CLC_GENTYPE_NAN (__CLC_GENTYPE) FLT_NAN
7878

7979
#define __CLC_S_GENTYPE __CLC_XCONCAT(int, __CLC_VECSIZE)
8080
#define __CLC_U_GENTYPE __CLC_XCONCAT(uint, __CLC_VECSIZE)
@@ -149,8 +149,8 @@
149149

150150
#define __CLC_SCALAR_GENTYPE double
151151
#define __CLC_FPSIZE 64
152-
#define __CLC_FP_LIT(x) (x)
153-
#define __CLC_GENTYPE_NAN DBL_NAN
152+
#define __CLC_FP_LIT(x) (__CLC_GENTYPE)(x)
153+
#define __CLC_GENTYPE_NAN (__CLC_GENTYPE) DBL_NAN
154154

155155
#define __CLC_S_GENTYPE __CLC_XCONCAT(long, __CLC_VECSIZE)
156156
#define __CLC_U_GENTYPE __CLC_XCONCAT(ulong, __CLC_VECSIZE)
@@ -225,8 +225,8 @@
225225

226226
#define __CLC_SCALAR_GENTYPE half
227227
#define __CLC_FPSIZE 16
228-
#define __CLC_FP_LIT(x) x##H
229-
#define __CLC_GENTYPE_NAN HALF_NAN
228+
#define __CLC_FP_LIT(x) (__CLC_GENTYPE) x##H
229+
#define __CLC_GENTYPE_NAN (__CLC_GENTYPE) HALF_NAN
230230

231231
#define __CLC_S_GENTYPE __CLC_XCONCAT(short, __CLC_VECSIZE)
232232
#define __CLC_U_GENTYPE __CLC_XCONCAT(ushort, __CLC_VECSIZE)

libclc/clc/lib/generic/common/clc_sign.inc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
_CLC_DEF _CLC_OVERLOAD __CLC_GENTYPE __clc_sign(__CLC_GENTYPE x) {
1010
__CLC_BIT_INTN ret_zero = __clc_isnan(x) || x == __CLC_FP_LIT(0.0);
1111
__CLC_GENTYPE ret_val =
12-
__clc_select((__CLC_GENTYPE)__CLC_FP_LIT(1.0),
13-
(__CLC_GENTYPE)__CLC_FP_LIT(0.0), ret_zero);
12+
__clc_select(__CLC_FP_LIT(1.0), __CLC_FP_LIT(0.0), ret_zero);
1413
return __clc_copysign(ret_val, x);
1514
}

libclc/clc/lib/generic/math/clc_asinpi.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_asinpi(__CLC_GENTYPE x) {
3838
__CLC_UINTN aux = ux & EXSIGNBIT_SP32;
3939
__CLC_UINTN xs = ux ^ aux;
4040
__CLC_GENTYPE shalf =
41-
__CLC_AS_GENTYPE(xs | __CLC_AS_UINTN((__CLC_GENTYPE)__CLC_FP_LIT(0.5)));
41+
__CLC_AS_GENTYPE(xs | __CLC_AS_UINTN(__CLC_FP_LIT(0.5)));
4242

4343
__CLC_INTN xexp = __CLC_AS_INTN(aux >> EXPSHIFTBITS_SP32) - EXPBIAS_SP32;
4444

libclc/clc/lib/generic/math/clc_atanpi.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_atanpi(__CLC_GENTYPE x) {
1717

1818
__CLC_GENTYPE xbypi = MATH_DIVIDE(x, pi);
1919
__CLC_GENTYPE shalf =
20-
__CLC_AS_GENTYPE(sx | __CLC_AS_UINTN((__CLC_GENTYPE)__CLC_FP_LIT(0.5)));
20+
__CLC_AS_GENTYPE(sx | __CLC_AS_UINTN(__CLC_FP_LIT(0.5)));
2121

2222
__CLC_GENTYPE v = __CLC_AS_GENTYPE(aux);
2323

libclc/clc/lib/generic/math/clc_fdim.inc

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88

99
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __clc_fdim(__CLC_GENTYPE x,
1010
__CLC_GENTYPE y) {
11-
return __clc_select(
12-
__builtin_elementwise_max(x - y, (__CLC_GENTYPE)__CLC_FP_LIT(0.0)),
13-
__CLC_GENTYPE_NAN,
14-
__CLC_CONVERT_BIT_INTN(__clc_isnan(x) || __clc_isnan(y)));
11+
return __clc_select(__builtin_elementwise_max(x - y, __CLC_FP_LIT(0.0)),
12+
__CLC_GENTYPE_NAN,
13+
__CLC_CONVERT_BIT_INTN(__clc_isnan(x) || __clc_isnan(y)));
1514
}

libclc/clc/lib/generic/math/clc_rootn.inc

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -203,8 +203,7 @@ _CLC_DEF _CLC_OVERLOAD __CLC_GENTYPE __clc_rootn(__CLC_GENTYPE x,
203203
__CLC_BIT_INTN x_is_ninf = ix == (__CLC_INTN)NINFBITPATT_SP32;
204204
__CLC_BIT_INTN x_is_pinf = ix == (__CLC_INTN)PINFBITPATT_SP32;
205205

206-
ret = (!xpos & (inty == 2)) ? __CLC_AS_INTN((__CLC_GENTYPE)__CLC_GENTYPE_NAN)
207-
: ret;
206+
ret = (!xpos & (inty == 2)) ? __CLC_AS_INTN(__CLC_GENTYPE_NAN) : ret;
208207
__CLC_INTN xinf =
209208
xpos ? (__CLC_INTN)PINFBITPATT_SP32 : (__CLC_INTN)NINFBITPATT_SP32;
210209
ret = ((ax == 0) & !ypos & (inty == 1)) ? xinf : ret;
@@ -217,7 +216,7 @@ _CLC_DEF _CLC_OVERLOAD __CLC_GENTYPE __clc_rootn(__CLC_GENTYPE x,
217216
ret = (x_is_pinf & !ypos) ? 0 : ret;
218217
ret = (x_is_pinf & ypos) ? PINFBITPATT_SP32 : ret;
219218
ret = ax > PINFBITPATT_SP32 ? ix : ret;
220-
ret = ny == 0 ? __CLC_AS_INTN((__CLC_GENTYPE)__CLC_GENTYPE_NAN) : ret;
219+
ret = ny == 0 ? __CLC_AS_INTN(__CLC_GENTYPE_NAN) : ret;
221220

222221
return __CLC_AS_GENTYPE(ret);
223222
}
@@ -371,8 +370,7 @@ _CLC_DEF _CLC_OVERLOAD __CLC_GENTYPE __clc_rootn(__CLC_GENTYPE x,
371370
// Now all the edge cases
372371
__CLC_BIT_INTN x_is_ninf = ux == (__CLC_LONGN)NINFBITPATT_DP64;
373372
__CLC_BIT_INTN x_is_pinf = ux == (__CLC_LONGN)PINFBITPATT_DP64;
374-
ret = (!xpos & (inty == 2)) ? __CLC_AS_LONGN((__CLC_GENTYPE)__CLC_GENTYPE_NAN)
375-
: ret;
373+
ret = (!xpos & (inty == 2)) ? __CLC_AS_LONGN(__CLC_GENTYPE_NAN) : ret;
376374
__CLC_LONGN xinf =
377375
xpos ? (__CLC_LONGN)PINFBITPATT_DP64 : (__CLC_LONGN)NINFBITPATT_DP64;
378376
ret = ((ax == 0L) & !ypos & (inty == 1)) ? xinf : ret;
@@ -387,9 +385,7 @@ _CLC_DEF _CLC_OVERLOAD __CLC_GENTYPE __clc_rootn(__CLC_GENTYPE x,
387385
ret = (x_is_pinf & !ypos) ? 0L : ret;
388386
ret = (x_is_pinf & ypos) ? (__CLC_LONGN)PINFBITPATT_DP64 : ret;
389387
ret = ax > (__CLC_LONGN)PINFBITPATT_DP64 ? ux : ret;
390-
ret = __CLC_CONVERT_LONGN(ny == 0)
391-
? __CLC_AS_LONGN((__CLC_GENTYPE)__CLC_GENTYPE_NAN)
392-
: ret;
388+
ret = __CLC_CONVERT_LONGN(ny == 0) ? __CLC_AS_LONGN(__CLC_GENTYPE_NAN) : ret;
393389
return __CLC_AS_GENTYPE(ret);
394390
}
395391

0 commit comments

Comments
 (0)