re PR rtl-optimization/59461 (missed zero-extension elimination in the combiner)
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 11 Nov 2016 22:38:33 +0000 (22:38 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Fri, 11 Nov 2016 22:38:33 +0000 (22:38 +0000)
commit8b287aea3561278b4002864c0d1c29b769493448
treed0c42b5c68c9cac41892a474b5a2eeccd1791ba7
parent84971f1bade1acb6b721260fb02f3740642c643e
re PR rtl-optimization/59461 (missed zero-extension elimination in the combiner)

PR rtl-optimization/59461
* doc/rtl.texi (paradoxical subregs): Add missing word.
* combine.c (reg_nonzero_bits_for_combine): Do not discard results
in modes with precision larger than that of last_set_mode.
* rtlanal.c (nonzero_bits1) <SUBREG>: If WORD_REGISTER_OPERATIONS is
set and LOAD_EXTEND_OP is appropriate, propagate results from inner
REGs to paradoxical SUBREGs.
(num_sign_bit_copies1) <SUBREG>: Likewise.  Check that the mode is not
larger than a word before invoking LOAD_EXTEND_OP on it.

From-SVN: r242326
gcc/ChangeLog
gcc/combine.c
gcc/doc/rtl.texi
gcc/rtlanal.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sparc/20161111-1.c [new file with mode: 0644]