OSDN Git Service

Correct errors in sparc SImode popcount/clz patterns when 64-bit.
authordavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 6 Oct 2011 19:15:39 +0000 (19:15 +0000)
committerdavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 6 Oct 2011 19:15:39 +0000 (19:15 +0000)
commit498af5fea6b9cfd3d66b5212cf0768ca9427185a
treec3e823b812cfdee24c34666e732f37a32eb6e84f
parent4db91b33e7cce3862116cfe108b91cfb329a6b98
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179628 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/sparc/sparc.md