[RFC] [PowerPC] Patch to create new attribute type: popcnt

Michael Meissner meissner@linux.vnet.ibm.com
Wed Jun 6 16:36:00 GMT 2012


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
meissner@linux.vnet.ibm.com	fax +1 (978) 399-6899



More information about the Gcc-patches mailing list