On Tue, Jun 05, 2012 at 04:21:00PM -0400, Edmar wrote: > David, Michael, > > Here is the new type "popcnt" patch that I had separated from previous > E5500/E6500 submission, also added the changes suggested by Michael > Meissner (detailed bellow). > I am missing some details for power6. (Could not find any documentation) > > Bootstrapped with no regressions, all languages enabled, configured > for target powerpc64 and used "--with-cpu=<>" for each of power6, > power7, and 970. > All work performed on svn revison number 188200. > > NOTES: > - 403, and 440 manuals does not list popcnt* instructions. > Skipped. > - 750, 74xx Freescale parts does not have popcnt* instructions. > Skipped. > - 476 manual lists popcnt as requiring i-pipe. > Added to corresponding insn reservation. > - power4 (IBM 970) pre-dates ISA-2.02. It does not have popcnt* > instructions. > Skipped. > - power5, power7 groups simple integer and complex integer together. > Appended popcnt to insn reservation. > - power6.md has different style. Created a separate reservation. > I used instruction latency of 1. Please confirm. > I did not added a store bypass either. Let me know if I should.
I do think it would be useful to have a popcnt insn type. power6 is internally an in-order machine, while power4, power5 and power7 are out of order machines. Popcntb is a 1 cycle instruction, but it can cause stalls in some cases. -- Michael Meissner, IBM 5 Technology Place Drive, M/S 2757, Westford, MA 01886-3141, USA meiss...@linux.vnet.ibm.com fax +1 (978) 399-6899