Correct errors in sparc SImode popcount/clz patterns when 64-bit.
[gcc.git] / gcc / ChangeLog
index a99d5efb5e6253ee160b94bd5f37810d4a3dddae..0649bbe5389e138aa5e4702679607f47c56b86cf 100644 (file)
@@ -1,3 +1,15 @@
+2011-10-06  David S. Miller  <davem@davemloft.net>
+
+       * 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.
+
 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
 
        * function.c (thread_prologue_and_epilogue_insns): Emit split