diff --git a/ockl/src/toas.cl b/ockl/src/toas.cl index ae6bfc1c..cffe3ed0 100644 --- a/ockl/src/toas.cl +++ b/ockl/src/toas.cl @@ -23,7 +23,7 @@ __attribute__((const)) __global void * OCKL_MANGLE_T(to,global)(void *a) { __global void *ga = (__global void *)((ulong)a); - return OCKL_MANGLE_T(is_local,addr)(a) | OCKL_MANGLE_T(is_private,addr)(a) ? (__global void *)0UL : ga; + return (OCKL_MANGLE_T(is_local,addr)(a) | OCKL_MANGLE_T(is_private,addr)(a)) ? (__global void *)0UL : ga; } __attribute__((const)) __local void * diff --git a/ocml/src/atan2D.cl b/ocml/src/atan2D.cl index 4bd4cf1e..e59bbade 100644 --- a/ocml/src/atan2D.cl +++ b/ocml/src/atan2D.cl @@ -38,9 +38,9 @@ MATH_MANGLE(atan2)(double y, double x) if (!FINITE_ONLY_OPT()) { t = xneg ? threepiby4 : piby4; t = BUILTIN_COPYSIGN_F64(t, y); - a = BUILTIN_ISINF_F64(x) & BUILTIN_ISINF_F64(y) ? t : a; + a = (BUILTIN_ISINF_F64(x) & BUILTIN_ISINF_F64(y)) ? t : a; - a = BUILTIN_ISNAN_F64(x) | BUILTIN_ISNAN_F64(y) ? + a = (BUILTIN_ISNAN_F64(x) | BUILTIN_ISNAN_F64(y)) ? AS_DOUBLE(QNANBITPATT_DP64) : a; } diff --git a/ocml/src/atan2F.cl b/ocml/src/atan2F.cl index 731393e3..e54f8ded 100644 --- a/ocml/src/atan2F.cl +++ b/ocml/src/atan2F.cl @@ -43,10 +43,10 @@ MATH_MANGLE(atan2)(float y, float x) if (!FINITE_ONLY_OPT()) { // x and y are +- Inf t = x < 0.0f ? threepiby4 : piby4; - a = BUILTIN_ISINF_F32(x) & BUILTIN_ISINF_F32(y) ? t : a; + a = (BUILTIN_ISINF_F32(x) & BUILTIN_ISINF_F32(y)) ? t : a; // x or y is NaN - a = BUILTIN_ISNAN_F32(x) | BUILTIN_ISNAN_F32(y) ? + a = (BUILTIN_ISNAN_F32(x) | BUILTIN_ISNAN_F32(y)) ? AS_FLOAT(QNANBITPATT_SP32) : a; } diff --git a/ocml/src/atan2H.cl b/ocml/src/atan2H.cl index 0d546b6b..73f15217 100644 --- a/ocml/src/atan2H.cl +++ b/ocml/src/atan2H.cl @@ -40,10 +40,10 @@ MATH_MANGLE(atan2)(half y, half x) if (!FINITE_ONLY_OPT()) { // x and y are +- Inf t = x < 0.0h ? threepiby4 : piby4; - a = BUILTIN_ISINF_F16(x) & BUILTIN_ISINF_F16(y) ? t : a; + a = (BUILTIN_ISINF_F16(x) & BUILTIN_ISINF_F16(y)) ? t : a; // x or y is NaN - a = BUILTIN_ISNAN_F16(x) | BUILTIN_ISNAN_F16(y) ? + a = (BUILTIN_ISNAN_F16(x) | BUILTIN_ISNAN_F16(y)) ? AS_HALF((short)QNANBITPATT_HP16) : a; } diff --git a/ocml/src/atan2piD.cl b/ocml/src/atan2piD.cl index 1d7347d5..76063d88 100644 --- a/ocml/src/atan2piD.cl +++ b/ocml/src/atan2piD.cl @@ -35,9 +35,9 @@ MATH_MANGLE(atan2pi)(double y, double x) if (!FINITE_ONLY_OPT()) { t = xneg ? 0.75 : 0.25; t = BUILTIN_COPYSIGN_F64(t, y); - a = BUILTIN_ISINF_F64(x) & BUILTIN_ISINF_F64(y) ? t : a; + a = (BUILTIN_ISINF_F64(x) & BUILTIN_ISINF_F64(y)) ? t : a; - a = BUILTIN_ISNAN_F64(x) | BUILTIN_ISNAN_F64(y) ? + a = (BUILTIN_ISNAN_F64(x) | BUILTIN_ISNAN_F64(y)) ? AS_DOUBLE(QNANBITPATT_DP64) : a; } diff --git a/ocml/src/atan2piF.cl b/ocml/src/atan2piF.cl index 674a140e..a03ab409 100644 --- a/ocml/src/atan2piF.cl +++ b/ocml/src/atan2piF.cl @@ -40,10 +40,10 @@ MATH_MANGLE(atan2pi)(float y, float x) if (!FINITE_ONLY_OPT()) { // x and y are +- Inf at = x < 0.0f ? 0.75f : 0.25f; - a = BUILTIN_ISINF_F32(x) & BUILTIN_ISINF_F32(y) ? at : a; + a = (BUILTIN_ISINF_F32(x) & BUILTIN_ISINF_F32(y)) ? at : a; // x or y is NaN - a = BUILTIN_ISNAN_F32(x) | BUILTIN_ISNAN_F32(y) ? + a = (BUILTIN_ISNAN_F32(x) | BUILTIN_ISNAN_F32(y)) ? AS_FLOAT(QNANBITPATT_SP32) : a; } diff --git a/ocml/src/atan2piH.cl b/ocml/src/atan2piH.cl index 499c0089..61742e69 100644 --- a/ocml/src/atan2piH.cl +++ b/ocml/src/atan2piH.cl @@ -36,12 +36,11 @@ MATH_MANGLE(atan2pi)(half y, half x) if (!FINITE_ONLY_OPT()) { // x and y are +- Inf at = x < 0.0h ? 0.75h : 0.25h; - a = BUILTIN_ISINF_F16(x) & - BUILTIN_ISINF_F16(y) ? + a = (BUILTIN_ISINF_F16(x) & BUILTIN_ISINF_F16(y)) ? at : a; // x or y is NaN - a = BUILTIN_ISNAN_F16(x) | BUILTIN_ISNAN_F16(y) ? + a = (BUILTIN_ISNAN_F16(x) | BUILTIN_ISNAN_F16(y)) ? AS_HALF((short)QNANBITPATT_HP16) : a; } diff --git a/ocml/src/erfcinvD.cl b/ocml/src/erfcinvD.cl index b1f54e76..f6b8c5b9 100644 --- a/ocml/src/erfcinvD.cl +++ b/ocml/src/erfcinvD.cl @@ -86,7 +86,7 @@ MATH_MANGLE(erfcinv)(double y) } if (!FINITE_ONLY_OPT()) { - ret = (y < 0.0) | (y > 2.0) ? AS_DOUBLE(QNANBITPATT_DP64) : ret; + ret = ((y < 0.0) | (y > 2.0)) ? AS_DOUBLE(QNANBITPATT_DP64) : ret; ret = y == 0.0 ? AS_DOUBLE(PINFBITPATT_DP64) : ret; ret = y == 2.0 ? AS_DOUBLE(NINFBITPATT_DP64) : ret; } diff --git a/ocml/src/erfcinvF.cl b/ocml/src/erfcinvF.cl index bdec2ce9..226dad7c 100644 --- a/ocml/src/erfcinvF.cl +++ b/ocml/src/erfcinvF.cl @@ -42,7 +42,7 @@ MATH_MANGLE(erfcinv)(float y) } if (!FINITE_ONLY_OPT()) { - ret = (y < 0.0f) | (y > 2.0f) ? AS_FLOAT(QNANBITPATT_SP32) : ret; + ret = ((y < 0.0f) | (y > 2.0f)) ? AS_FLOAT(QNANBITPATT_SP32) : ret; ret = y == 0.0f ? AS_FLOAT(PINFBITPATT_SP32) : ret; ret = y == 2.0f ? AS_FLOAT(NINFBITPATT_SP32) : ret; } diff --git a/ocml/src/hypotD.cl b/ocml/src/hypotD.cl index dffa6b70..e4c08054 100644 --- a/ocml/src/hypotD.cl +++ b/ocml/src/hypotD.cl @@ -19,11 +19,11 @@ MATH_MANGLE(hypot)(double x, double y) double ret = BUILTIN_FLDEXP_F64(MATH_FAST_SQRT(MATH_MAD(a, a, b*b)), e); if (!FINITE_ONLY_OPT()) { - ret = BUILTIN_ISNAN_F64(x) | - BUILTIN_ISNAN_F64(y) ? AS_DOUBLE(QNANBITPATT_DP64) : ret; + ret = (BUILTIN_ISNAN_F64(x) | BUILTIN_ISNAN_F64(y)) ? + AS_DOUBLE(QNANBITPATT_DP64) : ret; - ret = BUILTIN_ISINF_F64(x) | - BUILTIN_ISINF_F64(y) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = (BUILTIN_ISINF_F64(x) | BUILTIN_ISINF_F64(y)) ? + AS_DOUBLE(PINFBITPATT_DP64) : ret; } return ret; diff --git a/ocml/src/hypotH.cl b/ocml/src/hypotH.cl index 0a87e741..b7865ef5 100644 --- a/ocml/src/hypotH.cl +++ b/ocml/src/hypotH.cl @@ -25,7 +25,7 @@ MATH_MANGLE(hypot)(half x, half y) half ret = (half)BUILTIN_SQRT_F32(d2); if (!FINITE_ONLY_OPT()) { - ret = BUILTIN_ISINF_F16(x) | BUILTIN_ISINF_F16(y) ? + ret = (BUILTIN_ISINF_F16(x) | BUILTIN_ISINF_F16(y)) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; } diff --git a/ocml/src/lgamma_rD.cl b/ocml/src/lgamma_rD.cl index 6071cc12..868c0629 100644 --- a/ocml/src/lgamma_rD.cl +++ b/ocml/src/lgamma_rD.cl @@ -268,7 +268,7 @@ MATH_MANGLE(lgamma_r_impl)(double x) int s = 0; if (x >= 0.0) { - ret = x == 1.0 | x == 2.0 ? 0.0 : ret; + ret = (x == 1.0 | x == 2.0) ? 0.0 : ret; s = x == 0.0 ? 0 : 1; } else if (hax < 0x43300000) { // x > -0x1.0p+52 double t = MATH_MANGLE(sinpi)(x); diff --git a/ocml/src/lgamma_rF.cl b/ocml/src/lgamma_rF.cl index b511d3e3..455a1b14 100644 --- a/ocml/src/lgamma_rF.cl +++ b/ocml/src/lgamma_rF.cl @@ -262,7 +262,7 @@ MATH_MANGLE(lgamma_r_impl)(float x) int s = 0; if (x >= 0.0f) { - ret = (x == 1.0f) | (x == 2.0f) ? 0.0f : ret; + ret = ((x == 1.0f) | (x == 2.0f)) ? 0.0f : ret; s = x == 0.0f ? 0 : 1; } else if (uax < 0x4b000000) { // x > -0x1.0p+23 float t = MATH_MANGLE(sinpi)(x); diff --git a/ocml/src/nextafterD.cl b/ocml/src/nextafterD.cl index 801956c4..a840f4c8 100644 --- a/ocml/src/nextafterD.cl +++ b/ocml/src/nextafterD.cl @@ -25,7 +25,7 @@ MATH_MANGLE(nextafter)(double x, double y) r = BUILTIN_ISNAN_F64(x) ? ix : r; r = BUILTIN_ISNAN_F64(y) ? iy : r; } - r = (ax|ay) == 0L | ix == iy ? iy : r; + r = ((ax|ay) == 0L | ix == iy) ? iy : r; return AS_DOUBLE(r); } diff --git a/ocml/src/nextafterF.cl b/ocml/src/nextafterF.cl index 0c4180c5..42efdf37 100644 --- a/ocml/src/nextafterF.cl +++ b/ocml/src/nextafterF.cl @@ -25,7 +25,7 @@ MATH_MANGLE(nextafter)(float x, float y) r = ax > PINFBITPATT_SP32 ? ix : r; r = ay > PINFBITPATT_SP32 ? iy : r; } - r = (ax | ay) == 0 | ix == iy ? iy : r; + r = ((ax | ay) == 0 | ix == iy) ? iy : r; return AS_FLOAT(r); } diff --git a/ocml/src/nextafterH.cl b/ocml/src/nextafterH.cl index 517ce81a..67d8b596 100644 --- a/ocml/src/nextafterH.cl +++ b/ocml/src/nextafterH.cl @@ -27,7 +27,7 @@ MATH_MANGLE(nextafter)(half x, half y) r = ax > (short)PINFBITPATT_HP16 ? ix : r; r = ay > (short)PINFBITPATT_HP16 ? iy : r; } - r = (ax | ay) == (short)0 | ix == iy ? iy : r; + r = ((ax | ay) == (short)0 | ix == iy) ? iy : r; return AS_HALF(r); } diff --git a/ocml/src/powD_base.h b/ocml/src/powD_base.h index afd91b1b..3b9014c9 100644 --- a/ocml/src/powD_base.h +++ b/ocml/src/powD_base.h @@ -46,7 +46,7 @@ MATH_MANGLE(pow)(double x, double y) } #endif - double ret = BUILTIN_COPYSIGN_F64(expylnx, (inty == 1) & (x < 0.0) ? -0.0 : 0.0); + double ret = BUILTIN_COPYSIGN_F64(expylnx, ((inty == 1) & (x < 0.0)) ? -0.0 : 0.0); // Now all the edge cases #if defined COMPILING_POWR @@ -68,27 +68,27 @@ MATH_MANGLE(pow)(double x, double y) bool y_pos = BUILTIN_CLASS_F64(y, CLASS_PZER|CLASS_PSUB|CLASS_PNOR|CLASS_PINF); if (!FINITE_ONLY_OPT()) { - ret = ax_lt_1 & y_eq_ninf ? AS_DOUBLE(PINFBITPATT_DP64) : ret; - ret = ax_lt_1 & y_eq_pinf ? 0.0 : ret; - ret = ax_eq_1 & ay_lt_inf ? 1.0 : ret; - ret = ax_eq_1 & ay_eq_pinf ? AS_DOUBLE(QNANBITPATT_DP64) : ret; - ret = ax_gt_1 & y_eq_ninf ? 0.0 : ret; - ret = ax_gt_1 & y_eq_pinf ? AS_DOUBLE(PINFBITPATT_DP64) : ret; - ret = ax_lt_pinf & ay_eq_0 ? 1.0 : ret; - ret = ax_eq_pinf & !y_pos ? 0.0 : ret; - ret = ax_eq_pinf & y_pos ? AS_DOUBLE(PINFBITPATT_DP64) : ret; - ret = ax_eq_pinf & y_eq_pinf ? AS_DOUBLE(PINFBITPATT_DP64) : ret; - ret = ax_eq_pinf & ay_eq_0 ? AS_DOUBLE(QNANBITPATT_DP64) : ret; - ret = ax_eq_0 & !y_pos ? AS_DOUBLE(PINFBITPATT_DP64) : ret; - ret = ax_eq_0 & y_pos ? 0.0 : ret; - ret = ax_eq_0 & ay_eq_0 ? AS_DOUBLE(QNANBITPATT_DP64) : ret; - ret = ax_ne_0 & !x_pos ? AS_DOUBLE(QNANBITPATT_DP64) : ret; + ret = (ax_lt_1 & y_eq_ninf) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = (ax_lt_1 & y_eq_pinf) ? 0.0 : ret; + ret = (ax_eq_1 & ay_lt_inf) ? 1.0 : ret; + ret = (ax_eq_1 & ay_eq_pinf) ? AS_DOUBLE(QNANBITPATT_DP64) : ret; + ret = (ax_gt_1 & y_eq_ninf) ? 0.0 : ret; + ret = (ax_gt_1 & y_eq_pinf) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = (ax_lt_pinf & ay_eq_0) ? 1.0 : ret; + ret = (ax_eq_pinf & !y_pos) ? 0.0 : ret; + ret = (ax_eq_pinf & y_pos) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = (ax_eq_pinf & y_eq_pinf) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = (ax_eq_pinf & ay_eq_0) ? AS_DOUBLE(QNANBITPATT_DP64) : ret; + ret = (ax_eq_0 & !y_pos) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = (ax_eq_0 & y_pos) ? 0.0 : ret; + ret = (ax_eq_0 & ay_eq_0) ? AS_DOUBLE(QNANBITPATT_DP64) : ret; + ret = (ax_ne_0 & !x_pos) ? AS_DOUBLE(QNANBITPATT_DP64) : ret; ret = ax_eq_nan ? x : ret; ret = ay_eq_nan ? y : ret; } else { - ret = ax_eq_1 ? 1.0 : ret; - ret = ay_eq_0 ? 1.0 : ret; - ret = ax_eq_0 & y_pos ? 0.0 : ret; + ret = ax_eq_1 ? 1.0 : ret; + ret = ay_eq_0 ? 1.0 : ret; + ret = (ax_eq_0 & y_pos) ? 0.0 : ret; } #elif defined COMPILING_POWN bool ax_eq_0 = ax == 0.0; @@ -102,22 +102,22 @@ MATH_MANGLE(pow)(double x, double y) if (!FINITE_ONLY_OPT()) { double xinf = BUILTIN_COPYSIGN_F64(AS_DOUBLE(PINFBITPATT_DP64), x); - ret = ax_eq_0 & !y_pos & (inty == 1) ? xinf : ret; - ret = ax_eq_0 & !y_pos & (inty == 2) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; - ret = ax_eq_0 & y_pos & (inty == 2) ? 0.0 : ret; + ret = (ax_eq_0 & !y_pos & (inty == 1)) ? xinf : ret; + ret = (ax_eq_0 & !y_pos & (inty == 2)) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = (ax_eq_0 & y_pos & (inty == 2)) ? 0.0 : ret; double xzero = BUILTIN_COPYSIGN_F64(0.0, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = x_eq_ninf & !y_pos & (inty == 1) ? -0.0 : ret; - ret = x_eq_ninf & !y_pos & (inty != 1) ? 0.0 : ret; - ret = x_eq_ninf & y_pos & (inty == 1) ? AS_DOUBLE(NINFBITPATT_DP64) : ret; - ret = x_eq_ninf & y_pos & (inty != 1) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; - ret = x_eq_pinf & !y_pos ? 0.0 : ret; - ret = x_eq_pinf & y_pos ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (x_eq_ninf & !y_pos & (inty == 1)) ? -0.0 : ret; + ret = (x_eq_ninf & !y_pos & (inty != 1)) ? 0.0 : ret; + ret = (x_eq_ninf & y_pos & (inty == 1)) ? AS_DOUBLE(NINFBITPATT_DP64) : ret; + ret = (x_eq_ninf & y_pos & (inty != 1)) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = (x_eq_pinf & !y_pos) ? 0.0 : ret; + ret = (x_eq_pinf & y_pos) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; ret = ax_eq_nan ? x : ret; } else { double xzero = BUILTIN_COPYSIGN_F64(0.0, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = ax_eq_0 & y_pos & (inty == 2) ? 0.0 : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (ax_eq_0 & y_pos & (inty == 2)) ? 0.0 : ret; } ret = ny == 0 ? 1.0 : ret; #elif defined COMPILING_ROOTN @@ -131,23 +131,23 @@ MATH_MANGLE(pow)(double x, double y) bool y_pos = ny >= 0; if (!FINITE_ONLY_OPT()) { - ret = !x_pos & (inty == 2) ? AS_DOUBLE(QNANBITPATT_DP64) : ret; + ret = (!x_pos & (inty == 2)) ? AS_DOUBLE(QNANBITPATT_DP64) : ret; double xinf = BUILTIN_COPYSIGN_F64(AS_DOUBLE(PINFBITPATT_DP64), x); - ret = ax_eq_0 & !y_pos & (inty == 1) ? xinf : ret; - ret = ax_eq_0 & !y_pos & (inty == 2) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; - ret = ax_eq_0 & y_pos & (inty == 2) ? 0.0 : ret; + ret = (ax_eq_0 & !y_pos & (inty == 1)) ? xinf : ret; + ret = (ax_eq_0 & !y_pos & (inty == 2)) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = (ax_eq_0 & y_pos & (inty == 2)) ? 0.0 : ret; double xzero = BUILTIN_COPYSIGN_F64(0.0, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = x_eq_ninf & y_pos & (inty == 1) ? AS_DOUBLE(NINFBITPATT_DP64) : ret; - ret = x_eq_ninf & !y_pos & (inty == 1) ? -0.0 : ret; - ret = x_eq_pinf & !y_pos ? 0.0 : ret; - ret = x_eq_pinf & y_pos ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (x_eq_ninf & y_pos & (inty == 1)) ? AS_DOUBLE(NINFBITPATT_DP64) : ret; + ret = (x_eq_ninf & !y_pos & (inty == 1)) ? -0.0 : ret; + ret = (x_eq_pinf & !y_pos) ? 0.0 : ret; + ret = (x_eq_pinf & y_pos) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; ret = ax_eq_nan ? x : ret; ret = ny == 0 ? AS_DOUBLE(QNANBITPATT_DP64) : ret; } else { double xzero = BUILTIN_COPYSIGN_F64(0.0, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = ax_eq_0 & y_pos & (inty == 2) ? 0.0 : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (ax_eq_0 & y_pos & (inty == 2)) ? 0.0 : ret; } #else bool ax_eq_0 = ax == 0.0; @@ -170,31 +170,31 @@ MATH_MANGLE(pow)(double x, double y) bool y_pos = BUILTIN_CLASS_F64(y, CLASS_PZER|CLASS_PSUB|CLASS_PNOR|CLASS_PINF); if (!FINITE_ONLY_OPT()) { - ret = !x_pos & (inty == 0) ? AS_DOUBLE(QNANBITPATT_DP64) : ret; - ret = ax_lt_1 & y_eq_ninf ? AS_DOUBLE(PINFBITPATT_DP64) : ret; - ret = ax_gt_1 & y_eq_ninf ? 0.0 : ret; - ret = ax_lt_1 & y_eq_pinf ? 0.0 : ret; - ret = ax_gt_1 & y_eq_pinf ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = (!x_pos & (inty == 0)) ? AS_DOUBLE(QNANBITPATT_DP64) : ret; + ret = (ax_lt_1 & y_eq_ninf) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = (ax_gt_1 & y_eq_ninf) ? 0.0 : ret; + ret = (ax_lt_1 & y_eq_pinf) ? 0.0 : ret; + ret = (ax_gt_1 & y_eq_pinf) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; double xinf = BUILTIN_COPYSIGN_F64(AS_DOUBLE(PINFBITPATT_DP64), x); - ret = ax_eq_0 & !y_pos & (inty == 1) ? xinf : ret; - ret = ax_eq_0 & !y_pos & (inty != 1) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = (ax_eq_0 & !y_pos & (inty == 1)) ? xinf : ret; + ret = (ax_eq_0 & !y_pos & (inty != 1)) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; double xzero = BUILTIN_COPYSIGN_F64(0.0, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = ax_eq_0 & y_pos & (inty != 1) ? 0.0 : ret; - ret = ax_eq_0 & y_eq_ninf ? AS_DOUBLE(PINFBITPATT_DP64) : ret; - ret = (x == -1.0) & ay_eq_pinf ? 1.0 : ret; - ret = x_eq_ninf & !y_pos & (inty == 1) ? -0.0 : ret; - ret = x_eq_ninf & !y_pos & (inty != 1) ? 0.0 : ret; - ret = x_eq_ninf & y_pos & (inty == 1) ? AS_DOUBLE(NINFBITPATT_DP64) : ret; - ret = x_eq_ninf & y_pos & (inty != 1) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; - ret = x_eq_pinf & !y_pos ? 0.0 : ret; - ret = x_eq_pinf & y_pos ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (ax_eq_0 & y_pos & (inty != 1)) ? 0.0 : ret; + ret = (ax_eq_0 & y_eq_ninf) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = ((x == -1.0) & ay_eq_pinf) ? 1.0 : ret; + ret = (x_eq_ninf & !y_pos & (inty == 1)) ? -0.0 : ret; + ret = (x_eq_ninf & !y_pos & (inty != 1)) ? 0.0 : ret; + ret = (x_eq_ninf & y_pos & (inty == 1)) ? AS_DOUBLE(NINFBITPATT_DP64) : ret; + ret = (x_eq_ninf & y_pos & (inty != 1)) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; + ret = (x_eq_pinf & !y_pos) ? 0.0 : ret; + ret = (x_eq_pinf & y_pos) ? AS_DOUBLE(PINFBITPATT_DP64) : ret; ret = ax_eq_nan ? x : ret; ret = ay_eq_nan ? y : ret; } else { double xzero = BUILTIN_COPYSIGN_F64(0.0, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = ax_eq_0 & y_pos & (inty != 1) ? 0.0 : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (ax_eq_0 & y_pos & (inty != 1)) ? 0.0 : ret; } ret = ay_eq_0 ? 1.0 : ret; ret = x == 1.0 ? 1.0 : ret; diff --git a/ocml/src/powF_base.h b/ocml/src/powF_base.h index 34709942..2d4664c7 100644 --- a/ocml/src/powF_base.h +++ b/ocml/src/powF_base.h @@ -66,7 +66,7 @@ MATH_MANGLE(pow)(float x, float y) } #endif - float ret = BUILTIN_COPYSIGN_F32(expylnx, (inty == 1) & (x < 0.0f) ? -0.0f : 0.0f); + float ret = BUILTIN_COPYSIGN_F32(expylnx, ((inty == 1) & (x < 0.0f)) ? -0.0f : 0.0f); // Now all the edge cases #if defined COMPILING_POWR @@ -88,27 +88,27 @@ MATH_MANGLE(pow)(float x, float y) bool y_pos = BUILTIN_CLASS_F32(y, CLASS_PZER|CLASS_PSUB|CLASS_PNOR|CLASS_PINF); if (!FINITE_ONLY_OPT()) { - ret = ax_lt_1 & y_eq_ninf ? AS_FLOAT(PINFBITPATT_SP32) : ret; - ret = ax_lt_1 & y_eq_pinf ? 0.0f : ret; - ret = ax_eq_1 & ay_lt_inf ? 1.0f : ret; - ret = ax_eq_1 & ay_eq_pinf ? AS_FLOAT(QNANBITPATT_SP32) : ret; - ret = ax_gt_1 & y_eq_ninf ? 0.0f : ret; - ret = ax_gt_1 & y_eq_pinf ? AS_FLOAT(PINFBITPATT_SP32) : ret; - ret = ax_lt_pinf & ay_eq_0 ? 1.0f : ret; - ret = ax_eq_pinf & !y_pos ? 0.0f : ret; - ret = ax_eq_pinf & y_pos ? AS_FLOAT(PINFBITPATT_SP32) : ret; - ret = ax_eq_pinf & y_eq_pinf ? AS_FLOAT(PINFBITPATT_SP32) : ret; - ret = ax_eq_pinf & ay_eq_0 ? AS_FLOAT(QNANBITPATT_SP32) : ret; - ret = ax_eq_0 & !y_pos ? AS_FLOAT(PINFBITPATT_SP32) : ret; - ret = ax_eq_0 & y_pos ? 0.0f : ret; - ret = ax_eq_0 & ay_eq_0 ? AS_FLOAT(QNANBITPATT_SP32) : ret; - ret = ax_ne_0 & !x_pos ? AS_FLOAT(QNANBITPATT_SP32) : ret; + ret = (ax_lt_1 & y_eq_ninf) ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = (ax_lt_1 & y_eq_pinf) ? 0.0f : ret; + ret = (ax_eq_1 & ay_lt_inf) ? 1.0f : ret; + ret = (ax_eq_1 & ay_eq_pinf) ? AS_FLOAT(QNANBITPATT_SP32) : ret; + ret = (ax_gt_1 & y_eq_ninf) ? 0.0f : ret; + ret = (ax_gt_1 & y_eq_pinf) ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = (ax_lt_pinf & ay_eq_0) ? 1.0f : ret; + ret = (ax_eq_pinf & !y_pos) ? 0.0f : ret; + ret = (ax_eq_pinf & y_pos) ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = (ax_eq_pinf & y_eq_pinf) ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = (ax_eq_pinf & ay_eq_0) ? AS_FLOAT(QNANBITPATT_SP32) : ret; + ret = (ax_eq_0 & !y_pos) ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = (ax_eq_0 & y_pos) ? 0.0f : ret; + ret = (ax_eq_0 & ay_eq_0) ? AS_FLOAT(QNANBITPATT_SP32) : ret; + ret = (ax_ne_0 & !x_pos) ? AS_FLOAT(QNANBITPATT_SP32) : ret; ret = ax_eq_nan ? x : ret; ret = ay_eq_nan ? y : ret; } else { - ret = ax_eq_1 ? 1.0f : ret; - ret = ay_eq_0 ? 1.0f : ret; - ret = ax_eq_0 & y_pos ? 0.0f : ret; + ret = ax_eq_1 ? 1.0f : ret; + ret = ay_eq_0 ? 1.0f : ret; + ret = (ax_eq_0 & y_pos) ? 0.0f : ret; } #elif defined COMPILING_POWN bool ax_eq_0 = ax == 0.0f; @@ -122,22 +122,22 @@ MATH_MANGLE(pow)(float x, float y) if (!FINITE_ONLY_OPT()) { float xinf = BUILTIN_COPYSIGN_F32(AS_FLOAT(PINFBITPATT_SP32), x); - ret = ax_eq_0 & !y_pos & (inty == 1) ? xinf : ret; - ret = ax_eq_0 & !y_pos & (inty == 2) ? AS_FLOAT(PINFBITPATT_SP32) : ret; - ret = ax_eq_0 & y_pos & (inty == 2) ? 0.0f : ret; + ret = (ax_eq_0 & !y_pos & (inty == 1)) ? xinf : ret; + ret = (ax_eq_0 & !y_pos & (inty == 2)) ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = (ax_eq_0 & y_pos & (inty == 2)) ? 0.0f : ret; float xzero = BUILTIN_COPYSIGN_F32(0.0f, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = x_eq_ninf & !y_pos & (inty == 1) ? -0.0f : ret; - ret = x_eq_ninf & !y_pos & (inty != 1) ? 0.0f : ret; - ret = x_eq_ninf & y_pos & (inty == 1) ? AS_FLOAT(NINFBITPATT_SP32) : ret; - ret = x_eq_ninf & y_pos & (inty != 1) ? AS_FLOAT(PINFBITPATT_SP32) : ret; - ret = x_eq_pinf & !y_pos ? 0.0f : ret; - ret = x_eq_pinf & y_pos ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (x_eq_ninf & !y_pos & (inty == 1)) ? -0.0f : ret; + ret = (x_eq_ninf & !y_pos & (inty != 1)) ? 0.0f : ret; + ret = (x_eq_ninf & y_pos & (inty == 1)) ? AS_FLOAT(NINFBITPATT_SP32) : ret; + ret = (x_eq_ninf & y_pos & (inty != 1)) ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = (x_eq_pinf & !y_pos) ? 0.0f : ret; + ret = (x_eq_pinf & y_pos) ? AS_FLOAT(PINFBITPATT_SP32) : ret; ret = ax_eq_nan ? x : ret; } else { float xzero = BUILTIN_COPYSIGN_F32(0.0f, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = ax_eq_0 & y_pos & (inty == 2) ? 0.0f : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (ax_eq_0 & y_pos & (inty == 2)) ? 0.0f : ret; } ret = ny == 0 ? 1.0f : ret; #elif defined COMPILING_ROOTN @@ -151,23 +151,23 @@ MATH_MANGLE(pow)(float x, float y) bool y_pos = ny >= 0; if (!FINITE_ONLY_OPT()) { - ret = !x_pos & (inty == 2) ? AS_FLOAT(QNANBITPATT_SP32) : ret; + ret = (!x_pos & (inty == 2)) ? AS_FLOAT(QNANBITPATT_SP32) : ret; float xinf = BUILTIN_COPYSIGN_F32(AS_FLOAT(PINFBITPATT_SP32), x); - ret = ax_eq_0 & !y_pos & (inty == 1) ? xinf : ret; - ret = ax_eq_0 & !y_pos & (inty == 2) ? AS_FLOAT(PINFBITPATT_SP32) : ret; - ret = ax_eq_0 & y_pos & (inty == 2) ? 0.0f : ret; + ret = (ax_eq_0 & !y_pos & (inty == 1)) ? xinf : ret; + ret = (ax_eq_0 & !y_pos & (inty == 2)) ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = (ax_eq_0 & y_pos & (inty == 2)) ? 0.0f : ret; float xzero = BUILTIN_COPYSIGN_F32(0.0f, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = x_eq_ninf & y_pos & (inty == 1) ? AS_FLOAT(NINFBITPATT_SP32) : ret; - ret = x_eq_ninf & !y_pos & (inty == 1) ? -0.0f : ret; - ret = x_eq_pinf & !y_pos ? 0.0f : ret; - ret = x_eq_pinf & y_pos ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (x_eq_ninf & y_pos & (inty == 1)) ? AS_FLOAT(NINFBITPATT_SP32) : ret; + ret = (x_eq_ninf & !y_pos & (inty == 1)) ? -0.0f : ret; + ret = (x_eq_pinf & !y_pos) ? 0.0f : ret; + ret = (x_eq_pinf & y_pos) ? AS_FLOAT(PINFBITPATT_SP32) : ret; ret = ax_eq_nan ? x : ret; ret = ny == 0 ? AS_FLOAT(QNANBITPATT_SP32) : ret; } else { float xzero = BUILTIN_COPYSIGN_F32(0.0f, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = ax_eq_0 & y_pos & (inty == 2) ? 0.0f : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (ax_eq_0 & y_pos & (inty == 2)) ? 0.0f : ret; } #else bool ax_eq_0 = ax == 0.0f; @@ -190,36 +190,36 @@ MATH_MANGLE(pow)(float x, float y) bool y_pos = BUILTIN_CLASS_F32(y, CLASS_PZER|CLASS_PSUB|CLASS_PNOR|CLASS_PINF); if (!FINITE_ONLY_OPT()) { - ret = !x_pos & (inty == 0) ? AS_FLOAT(QNANBITPATT_SP32) : ret; - ret = ax_lt_1 & y_eq_ninf ? AS_FLOAT(PINFBITPATT_SP32) : ret; - ret = ax_gt_1 & y_eq_ninf ? 0.0f : ret; - ret = ax_lt_1 & y_eq_pinf ? 0.0f : ret; - ret = ax_gt_1 & y_eq_pinf ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = (!x_pos & (inty == 0)) ? AS_FLOAT(QNANBITPATT_SP32) : ret; + ret = (ax_lt_1 & y_eq_ninf) ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = (ax_gt_1 & y_eq_ninf) ? 0.0f : ret; + ret = (ax_lt_1 & y_eq_pinf) ? 0.0f : ret; + ret = (ax_gt_1 & y_eq_pinf) ? AS_FLOAT(PINFBITPATT_SP32) : ret; float xinf = BUILTIN_COPYSIGN_F32(AS_FLOAT(PINFBITPATT_SP32), x); - ret = ax_eq_0 & !y_pos & (inty == 1) ? xinf : ret; - ret = ax_eq_0 & !y_pos & (inty != 1) ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = (ax_eq_0 & !y_pos & (inty == 1)) ? xinf : ret; + ret = (ax_eq_0 & !y_pos & (inty != 1)) ? AS_FLOAT(PINFBITPATT_SP32) : ret; float xzero = BUILTIN_COPYSIGN_F32(0.0f, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = ax_eq_0 & y_pos & (inty != 1) ? 0.0f : ret; - ret = ax_eq_0 & y_eq_ninf ? AS_FLOAT(PINFBITPATT_SP32) : ret; - ret = (x == -1.0f) & ay_eq_pinf ? 1.0f : ret; - ret = x_eq_ninf & !y_pos & (inty == 1) ? -0.0f : ret; - ret = x_eq_ninf & !y_pos & (inty != 1) ? 0.0f : ret; - ret = x_eq_ninf & y_pos & (inty == 1) ? AS_FLOAT(NINFBITPATT_SP32) : ret; - ret = x_eq_ninf & y_pos & (inty != 1) ? AS_FLOAT(PINFBITPATT_SP32) : ret; - ret = x_eq_pinf & !y_pos ? 0.0f : ret; - ret = x_eq_pinf & y_pos ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (ax_eq_0 & y_pos & (inty != 1)) ? 0.0f : ret; + ret = (ax_eq_0 & y_eq_ninf) ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = ((x == -1.0f) & ay_eq_pinf) ? 1.0f : ret; + ret = (x_eq_ninf & !y_pos & (inty == 1)) ? -0.0f : ret; + ret = (x_eq_ninf & !y_pos & (inty != 1)) ? 0.0f : ret; + ret = (x_eq_ninf & y_pos & (inty == 1)) ? AS_FLOAT(NINFBITPATT_SP32) : ret; + ret = (x_eq_ninf & y_pos & (inty != 1)) ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = (x_eq_pinf & !y_pos) ? 0.0f : ret; + ret = (x_eq_pinf & y_pos) ? AS_FLOAT(PINFBITPATT_SP32) : ret; ret = ax_eq_nan ? x : ret; ret = ay_eq_nan ? y : ret; } else { // XXX work around conformance test incorrectly checking these cases float xinf = BUILTIN_COPYSIGN_F32(AS_FLOAT(PINFBITPATT_SP32), x); - ret = ax_eq_0 & !y_pos & (inty == 1) ? xinf : ret; - ret = ax_eq_0 & !y_pos & (inty != 1) ? AS_FLOAT(PINFBITPATT_SP32) : ret; + ret = (ax_eq_0 & !y_pos & (inty == 1)) ? xinf : ret; + ret = (ax_eq_0 & !y_pos & (inty != 1)) ? AS_FLOAT(PINFBITPATT_SP32) : ret; float xzero = BUILTIN_COPYSIGN_F32(0.0f, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = ax_eq_0 & y_pos & (inty != 1) ? 0.0f : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (ax_eq_0 & y_pos & (inty != 1)) ? 0.0f : ret; } ret = ay == 0.0f ? 1.0f : ret; ret = x == 1.0f ? 1.0f : ret; diff --git a/ocml/src/powH_base.h b/ocml/src/powH_base.h index 08127dc4..0d07ca15 100644 --- a/ocml/src/powH_base.h +++ b/ocml/src/powH_base.h @@ -45,7 +45,7 @@ MATH_MANGLE(pow)(half x, half y) } #endif - half ret = BUILTIN_COPYSIGN_F16((half)p, (inty == 1) & (x < 0.0h) ? -0.0f : 0.0f); + half ret = BUILTIN_COPYSIGN_F16((half)p, ((inty == 1) & (x < 0.0h)) ? -0.0f : 0.0f); // Now all the edge cases #if defined COMPILING_POWR @@ -67,27 +67,27 @@ MATH_MANGLE(pow)(half x, half y) bool y_pos = BUILTIN_CLASS_F16(y, CLASS_PZER|CLASS_PSUB|CLASS_PNOR|CLASS_PINF); if (!FINITE_ONLY_OPT()) { - ret = ax_lt_1 & y_eq_ninf ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; - ret = ax_lt_1 & y_eq_pinf ? 0.0h : ret; - ret = ax_eq_1 & ay_lt_inf ? 1.0h : ret; - ret = ax_eq_1 & ay_eq_pinf ? AS_HALF((ushort)QNANBITPATT_HP16) : ret; - ret = ax_gt_1 & y_eq_ninf ? 0.0h : ret; - ret = ax_gt_1 & y_eq_pinf ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; - ret = ax_lt_pinf & ay_eq_0 ? 1.0h : ret; - ret = ax_eq_pinf & !y_pos ? 0.0h : ret; - ret = ax_eq_pinf & y_pos ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; - ret = ax_eq_pinf & y_eq_pinf ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; - ret = ax_eq_pinf & ay_eq_0 ? AS_HALF((ushort)QNANBITPATT_HP16) : ret; - ret = ax_eq_0 & !y_pos ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; - ret = ax_eq_0 & y_pos ? 0.0h : ret; - ret = ax_eq_0 & ay_eq_0 ? AS_HALF((ushort)QNANBITPATT_HP16) : ret; - ret = ax_ne_0 & !x_pos ? AS_HALF((ushort)QNANBITPATT_HP16) : ret; + ret = (ax_lt_1 & y_eq_ninf) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = (ax_lt_1 & y_eq_pinf) ? 0.0h : ret; + ret = (ax_eq_1 & ay_lt_inf) ? 1.0h : ret; + ret = (ax_eq_1 & ay_eq_pinf) ? AS_HALF((ushort)QNANBITPATT_HP16) : ret; + ret = (ax_gt_1 & y_eq_ninf) ? 0.0h : ret; + ret = (ax_gt_1 & y_eq_pinf) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = (ax_lt_pinf & ay_eq_0) ? 1.0h : ret; + ret = (ax_eq_pinf & !y_pos) ? 0.0h : ret; + ret = (ax_eq_pinf & y_pos) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = (ax_eq_pinf & y_eq_pinf) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = (ax_eq_pinf & ay_eq_0) ? AS_HALF((ushort)QNANBITPATT_HP16) : ret; + ret = (ax_eq_0 & !y_pos) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = (ax_eq_0 & y_pos) ? 0.0h : ret; + ret = (ax_eq_0 & ay_eq_0) ? AS_HALF((ushort)QNANBITPATT_HP16) : ret; + ret = (ax_ne_0 & !x_pos) ? AS_HALF((ushort)QNANBITPATT_HP16) : ret; ret = ax_eq_nan ? x : ret; ret = ay_eq_nan ? y : ret; } else { - ret = ax_eq_1 ? 1.0h : ret; - ret = ay_eq_0 ? 1.0h : ret; - ret = ax_eq_0 & y_pos ? 0.0h : ret; + ret = ax_eq_1 ? 1.0h : ret; + ret = ay_eq_0 ? 1.0h : ret; + ret = (ax_eq_0 & y_pos) ? 0.0h : ret; } #elif defined COMPILING_POWN bool ax_eq_0 = ax == 0.0h; @@ -101,22 +101,22 @@ MATH_MANGLE(pow)(half x, half y) if (!FINITE_ONLY_OPT()) { half xinf = BUILTIN_COPYSIGN_F16(AS_HALF((ushort)PINFBITPATT_HP16), x); - ret = ax_eq_0 & !y_pos & (inty == 1) ? xinf : ret; - ret = ax_eq_0 & !y_pos & (inty == 2) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; - ret = ax_eq_0 & y_pos & (inty == 2) ? 0.0h : ret; + ret = (ax_eq_0 & !y_pos & (inty == 1)) ? xinf : ret; + ret = (ax_eq_0 & !y_pos & (inty == 2)) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = (ax_eq_0 & y_pos & (inty == 2)) ? 0.0h : ret; half xzero = BUILTIN_COPYSIGN_F16(0.0h, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = x_eq_ninf & !y_pos & (inty == 1) ? -0.0h : ret; - ret = x_eq_ninf & !y_pos & (inty != 1) ? 0.0h : ret; - ret = x_eq_ninf & y_pos & (inty == 1) ? AS_HALF((ushort)NINFBITPATT_HP16) : ret; - ret = x_eq_ninf & y_pos & (inty != 1) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; - ret = x_eq_pinf & !y_pos ? 0.0h : ret; - ret = x_eq_pinf & y_pos ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (x_eq_ninf & !y_pos & (inty == 1)) ? -0.0h : ret; + ret = (x_eq_ninf & !y_pos & (inty != 1)) ? 0.0h : ret; + ret = (x_eq_ninf & y_pos & (inty == 1)) ? AS_HALF((ushort)NINFBITPATT_HP16) : ret; + ret = (x_eq_ninf & y_pos & (inty != 1)) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = (x_eq_pinf & !y_pos) ? 0.0h : ret; + ret = (x_eq_pinf & y_pos) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; ret = ax_eq_nan ? x : ret; } else { half xzero = BUILTIN_COPYSIGN_F16(0.0h, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = ax_eq_0 & y_pos & (inty == 2) ? 0.0h : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (ax_eq_0 & y_pos & (inty == 2)) ? 0.0h : ret; } ret = ny == 0 ? 1.0h : ret; #elif defined COMPILING_ROOTN @@ -130,23 +130,23 @@ MATH_MANGLE(pow)(half x, half y) bool y_pos = ny >= 0; if (!FINITE_ONLY_OPT()) { - ret = !x_pos & (inty == 2) ? AS_HALF((ushort)QNANBITPATT_HP16) : ret; + ret = (!x_pos & (inty == 2)) ? AS_HALF((ushort)QNANBITPATT_HP16) : ret; half xinf = BUILTIN_COPYSIGN_F16(AS_HALF((ushort)PINFBITPATT_HP16), x); - ret = ax_eq_0 & !y_pos & (inty == 1) ? xinf : ret; - ret = ax_eq_0 & !y_pos & (inty == 2) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; - ret = ax_eq_0 & y_pos & (inty == 2) ? 0.0h : ret; + ret = (ax_eq_0 & !y_pos & (inty == 1)) ? xinf : ret; + ret = (ax_eq_0 & !y_pos & (inty == 2)) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = (ax_eq_0 & y_pos & (inty == 2)) ? 0.0h : ret; half xzero = BUILTIN_COPYSIGN_F16(0.0h, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = x_eq_ninf & y_pos & (inty == 1) ? AS_HALF((ushort)NINFBITPATT_HP16) : ret; - ret = x_eq_ninf & !y_pos & (inty == 1) ? -0.0h : ret; - ret = x_eq_pinf & !y_pos ? 0.0h : ret; - ret = x_eq_pinf & y_pos ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (x_eq_ninf & y_pos & (inty == 1)) ? AS_HALF((ushort)NINFBITPATT_HP16) : ret; + ret = (x_eq_ninf & !y_pos & (inty == 1)) ? -0.0h : ret; + ret = (x_eq_pinf & !y_pos) ? 0.0h : ret; + ret = (x_eq_pinf & y_pos) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; ret = ax_eq_nan ? x : ret; ret = ny == 0 ? AS_HALF((ushort)QNANBITPATT_HP16) : ret; } else { half xzero = BUILTIN_COPYSIGN_F16(0.0h, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = ax_eq_0 & y_pos & (inty == 2) ? 0.0h : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (ax_eq_0 & y_pos & (inty == 2)) ? 0.0h : ret; } #else bool ax_eq_0 = ax == 0.0h; @@ -169,36 +169,36 @@ MATH_MANGLE(pow)(half x, half y) bool y_pos = BUILTIN_CLASS_F16(y, CLASS_PZER|CLASS_PSUB|CLASS_PNOR|CLASS_PINF); if (!FINITE_ONLY_OPT()) { - ret = !x_pos & (inty == 0) ? AS_HALF((ushort)QNANBITPATT_HP16) : ret; - ret = ax_lt_1 & y_eq_ninf ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; - ret = ax_gt_1 & y_eq_ninf ? 0.0h : ret; - ret = ax_lt_1 & y_eq_pinf ? 0.0h : ret; - ret = ax_gt_1 & y_eq_pinf ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = (!x_pos & (inty == 0)) ? AS_HALF((ushort)QNANBITPATT_HP16) : ret; + ret = (ax_lt_1 & y_eq_ninf) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = (ax_gt_1 & y_eq_ninf) ? 0.0h : ret; + ret = (ax_lt_1 & y_eq_pinf) ? 0.0h : ret; + ret = (ax_gt_1 & y_eq_pinf) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; half xinf = BUILTIN_COPYSIGN_F16(AS_HALF((ushort)PINFBITPATT_HP16), x); - ret = ax_eq_0 & !y_pos & (inty == 1) ? xinf : ret; - ret = ax_eq_0 & !y_pos & (inty != 1) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = (ax_eq_0 & !y_pos & (inty == 1)) ? xinf : ret; + ret = (ax_eq_0 & !y_pos & (inty != 1)) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; half xzero = BUILTIN_COPYSIGN_F16(0.0h, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = ax_eq_0 & y_pos & (inty != 1) ? 0.0h : ret; - ret = ax_eq_0 & y_eq_ninf ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; - ret = (x == -1.0h) & ay_eq_pinf ? 1.0h : ret; - ret = x_eq_ninf & !y_pos & (inty == 1) ? -0.0h : ret; - ret = x_eq_ninf & !y_pos & (inty != 1) ? 0.0h : ret; - ret = x_eq_ninf & y_pos & (inty == 1) ? AS_HALF((ushort)NINFBITPATT_HP16) : ret; - ret = x_eq_ninf & y_pos & (inty != 1) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; - ret = x_eq_pinf & !y_pos ? 0.0h : ret; - ret = x_eq_pinf & y_pos ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (ax_eq_0 & y_pos & (inty != 1)) ? 0.0h : ret; + ret = (ax_eq_0 & y_eq_ninf) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = ((x == -1.0h) & ay_eq_pinf) ? 1.0h : ret; + ret = (x_eq_ninf & !y_pos & (inty == 1)) ? -0.0h : ret; + ret = (x_eq_ninf & !y_pos & (inty != 1)) ? 0.0h : ret; + ret = (x_eq_ninf & y_pos & (inty == 1)) ? AS_HALF((ushort)NINFBITPATT_HP16) : ret; + ret = (x_eq_ninf & y_pos & (inty != 1)) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = (x_eq_pinf & !y_pos) ? 0.0h : ret; + ret = (x_eq_pinf & y_pos) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; ret = ax_eq_nan ? x : ret; ret = ay_eq_nan ? y : ret; } else { // XXX work around conformance test incorrectly checking these cases half xinf = BUILTIN_COPYSIGN_F16(AS_HALF((ushort)PINFBITPATT_HP16), x); - ret = ax_eq_0 & !y_pos & (inty == 1) ? xinf : ret; - ret = ax_eq_0 & !y_pos & (inty != 1) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; + ret = (ax_eq_0 & !y_pos & (inty == 1)) ? xinf : ret; + ret = (ax_eq_0 & !y_pos & (inty != 1)) ? AS_HALF((ushort)PINFBITPATT_HP16) : ret; half xzero = BUILTIN_COPYSIGN_F16(0.0h, x); - ret = ax_eq_0 & y_pos & (inty == 1) ? xzero : ret; - ret = ax_eq_0 & y_pos & (inty != 1) ? 0.0h : ret; + ret = (ax_eq_0 & y_pos & (inty == 1)) ? xzero : ret; + ret = (ax_eq_0 & y_pos & (inty != 1)) ? 0.0h : ret; } ret = ay == 0.0h ? 1.0h : ret; ret = x == 1.0h ? 1.0h : ret; diff --git a/ocml/src/privD.h b/ocml/src/privD.h index d73bfc10..befcba9f 100644 --- a/ocml/src/privD.h +++ b/ocml/src/privD.h @@ -76,7 +76,7 @@ double _sqrt_d1 = BUILTIN_FMA_F64(-_sqrt_s2, _sqrt_s2, _sqrt_x); \ double _sqrt_ret = BUILTIN_FMA_F64(_sqrt_d1, _sqrt_h1, _sqrt_s2); \ _sqrt_ret *= _sqrt_b ? 0x1.0p-128 : 1.0; \ - _sqrt_ret = (_sqrt_x == 0.0) | (_sqrt_x == (double)INFINITY) ? _sqrt_x : _sqrt_ret; \ + _sqrt_ret = ((_sqrt_x == 0.0) | (_sqrt_x == (double)INFINITY)) ? _sqrt_x : _sqrt_ret; \ _sqrt_ret; \ }) diff --git a/ocml/src/rhypotD.cl b/ocml/src/rhypotD.cl index ac28f8f5..8fb40242 100644 --- a/ocml/src/rhypotD.cl +++ b/ocml/src/rhypotD.cl @@ -25,10 +25,10 @@ MATH_MANGLE(rhypot)(double x, double y) if (!FINITE_ONLY_OPT()) { ret = t == 0.0 ? AS_DOUBLE(PINFBITPATT_DP64) : ret; - ret = BUILTIN_ISNAN_F64(x) | - BUILTIN_ISNAN_F64(y) ? AS_DOUBLE(QNANBITPATT_DP64) : ret; + ret = (BUILTIN_ISNAN_F64(x) | BUILTIN_ISNAN_F64(y)) ? + AS_DOUBLE(QNANBITPATT_DP64) : ret; - ret = BUILTIN_ISINF_F64(x) | BUILTIN_ISINF_F64(y) ? 0.0 : ret; + ret = (BUILTIN_ISINF_F64(x) | BUILTIN_ISINF_F64(y)) ? 0.0 : ret; } return ret; diff --git a/ocml/src/rhypotH.cl b/ocml/src/rhypotH.cl index 477e6f74..8345d14a 100644 --- a/ocml/src/rhypotH.cl +++ b/ocml/src/rhypotH.cl @@ -25,8 +25,7 @@ MATH_MANGLE(rhypot)(half x, half y) half ret = (half)BUILTIN_RSQRT_F32(d2); if (!FINITE_ONLY_OPT()) { - ret = BUILTIN_ISINF_F16(x) | - BUILTIN_ISINF_F16(y) ? + ret = (BUILTIN_ISINF_F16(x) | BUILTIN_ISINF_F16(y)) ? 0.0h : ret; } diff --git a/opencl/src/common/sign.cl b/opencl/src/common/sign.cl index edca00fd..d3254df6 100644 --- a/opencl/src/common/sign.cl +++ b/opencl/src/common/sign.cl @@ -13,7 +13,7 @@ ATTR T##N \ sign(T##N x) \ { \ - return copysign(isnan(x) | (x == (T##N)0) ? (T##N)0 : (T##N)1, x); \ + return copysign((isnan(x) | (x == (T##N)0)) ? (T##N)0 : (T##N)1, x); \ } #define GEN(T) \ diff --git a/opencl/src/misc/cdhx.cl b/opencl/src/misc/cdhx.cl index 01ae9721..822792ea 100644 --- a/opencl/src/misc/cdhx.cl +++ b/opencl/src/misc/cdhx.cl @@ -108,7 +108,7 @@ __cvt_f16_rtn_f64(double a) v = (v >> 1) + (v & 1 & (s >> 15)); v = e > 30 ? vp : v; v = e == 1039 ? i : v; - v = e == -1008 & m == 0 ? 0 : v; + v = (e == -1008 & m == 0) ? 0 : v; return s | v; } @@ -130,7 +130,7 @@ __cvt_f16_rtp_f64(double a) v = (v >> 1) + (v & 1 & ((s >> 15) ^ 1)); v = e > 30 ? vp : v; v = e == 1039 ? i : v; - v = e == -1008 & m == 0 ? 0 : v; + v = (e == -1008 & m == 0) ? 0 : v; return s | v; }