On Sat, 13 May 2023, Andrew Pinski via Gcc-patches wrote:
> +/* signbit(x) != 0 ? -x : x -> abs(x) > + signbit(x) == 0 ? -x : x -> -abs(x) */ > +(for sign (SIGNBIT) Surprised to see a dummy iterator here. Was this meant to include float and long double versions of the builtin too (SIGNBITF and SIGNBITL)? > + (for neeq (ne eq) > + (simplify > + (cond (neeq (sign @0) integer_zerop) (negate @0) @0) > + (if (neeq == NE_EXPR) > + (abs @0) > + (negate (abs @0)))))) > + > (simplify > /* signbit(x) -> 0 if x is nonnegative. */ > (SIGNBIT tree_expr_nonnegative_p@0) Thanks. Alexander