On Fri, Nov 3, 2017 at 2:06 AM, Marc Glisse <marc.gli...@inria.fr> wrote: > On Thu, 2 Nov 2017, Richard Biener wrote: > >> You can handle floats as followup but some testcases that shouldn't be >> optimized for the INT_MIN / unsigned case would be nice. > > > New version, that does a bit more.
- case NEGATE_EXPR: - if (!TYPE_OVERFLOW_SANITIZED (type)) - return TREE_OPERAND (t, 0); - break; - ... - return NULL_TREE; + return generic_simplify (loc, NEGATE_EXPR, type, t); } this will do redundant work when called from fold_unary for example. Please leave fold-const.c as-is for now. Ok with that change. Thanks, Richard. > Bootstrap+regtest on powerpc64le-unknown-linux-gnu. > > 2017-11-03 Marc Glisse <marc.gli...@inria.fr> > > gcc/ > * fold-const.c (fold_negate_expr_1): Call generic_simplify. Remove > NEGATE_EXPR handling. > * match.pd (-(-A)): Rewrite. > > gcc/testsuite/ > * gcc.dg/tree-ssa/negneg-1.c: New file. > * gcc.dg/tree-ssa/negneg-2.c: Likewise. > * gcc.dg/tree-ssa/negneg-3.c: Likewise. > * gcc.dg/tree-ssa/negneg-4.c: Likewise. > > > -- > Marc Glisse