re PR rtl-optimization/78546 (wrong code at -O2 and above)
authorJakub Jelinek <jakub@redhat.com>
Mon, 28 Nov 2016 19:15:51 +0000 (20:15 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 28 Nov 2016 19:15:51 +0000 (20:15 +0100)
commitd057004733e8e4893cab758d51121b6750a9b438
treee5ee8b087a141ae20a31c9baa3a55ea3434bb42b
parent82979abd860fb54c2d0ab0a1001d86ec69f71ae2
re PR rtl-optimization/78546 (wrong code at -O2 and above)

PR rtl-optimization/78546
* simplify-rtx.c (neg_const_int): When negating most negative
number in mode wider than HOST_BITS_PER_WIDE_INT, use
simplify_const_unary_operation to produce CONST_DOUBLE or
CONST_WIDE_INT.
(simplify_plus_minus): Hanlde the case where neg_const_int
doesn't return a CONST_INT.

* gcc.dg/torture/pr78546-1.c: New test.
* gcc.dg/torture/pr78546-2.c: New test.

From-SVN: r242929
gcc/ChangeLog
gcc/simplify-rtx.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr78546-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/pr78546-2.c [new file with mode: 0644]