2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
commit7101c0cfd7936ef80866c5c3b0eb5ccdede11409
authorthopre01 <thopre01@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 11 Jun 2014 10:04:33 +0000 (11 10:04 +0000)
committerthopre01 <thopre01@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 11 Jun 2014 10:04:33 +0000 (11 10:04 +0000)
treee4a6086c454b66fc830408f29d3b4b15429e5b21
parentbc360af82144c2cea0b13617e04d9abcb3f61367
2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR tree-optimization/61306
    * tree-ssa-math-opts.c (struct symbolic_number): Store type of
    expression instead of its size.
    (do_shift_rotate): Adapt to change in struct symbolic_number. Return
    false to prevent optimization when the result is unpredictable due to
    arithmetic right shift of signed type with highest byte is set.
    (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
    (init_symbolic_number): Likewise.
    (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
    when the result is unpredictable due to sign extension.

    gcc/testsuite/
    * gcc.c-torture/execute/pr61306-1.c: New test.
    * gcc.c-torture/execute/pr61306-2.c: Likewise.
    * gcc.c-torture/execute/pr61306-3.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211444 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/pr61306-1.c [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/pr61306-2.c [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/pr61306-3.c [new file with mode: 0644]
gcc/tree-ssa-math-opts.c