combine: Omit redundant AND in change_zero_ext.
authorDominik Vogt <vogt@linux.vnet.ibm.com>
Mon, 19 Dec 2016 09:51:11 +0000 (09:51 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Mon, 19 Dec 2016 09:51:11 +0000 (09:51 +0000)
commite01f223f28d94ececee29b8048434361de5cd40c
treebcc6a4b4ea47d1b3d32ba5e04c14b62d3133c06c
parent26b14bc192861450d7d4d20faa5e54f489af1b68
combine: Omit redundant AND in change_zero_ext.

This is another micro-optimisation in change_zero_ext.  If an

  (and (lshiftrt ... (N)) (M))

generated by change_zero_ext is equivalent to just

  (lshiftrt ... (N))

(because the AND constant selects the N rightmost bits of the
result), strip off the AND.

gcc/ChangeLog:

2016-12-19  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* combine.c (change_zero_ext): Skip generation of redundant AND.

From-SVN: r243792
gcc/ChangeLog
gcc/combine.c