Correct errors in sparc SImode popcount/clz patterns when 64-bit.
authorDavid S. Miller <davem@davemloft.net>
Thu, 6 Oct 2011 19:15:39 +0000 (19:15 +0000)
committerDavid S. Miller <davem@gcc.gnu.org>
Thu, 6 Oct 2011 19:15:39 +0000 (12:15 -0700)
commit908e19d0d0644e734cba0869184e15400222d6b7
treec3e823b812cfdee24c34666e732f37a32eb6e84f
parentf4b31a33a2ba7839164998916ec4215acdb162b9
Correct errors in sparc SImode popcount/clz patterns when 64-bit.

* config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
(popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
SI mode 64-bit code gen case explicitly zero-extend and truncate.
(*popcount<mode>_sp64): Split up into...
(*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
SImode case use truncate.
(*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
subtract so the compiler can optimize it.
(SIDI): Remove unused mode iterator.

From-SVN: r179628
gcc/ChangeLog
gcc/config/sparc/sparc.md