On Thu, 16 Jun 2011, Georg-Johann Lay wrote: > The recent implementation of some asm function in libgcc added > __popcountqi2 and __parityqi2. This patch makes these functions > available as __builtin_avr_popcount8 resp. __builtin_avr_parity8. > > Moreover, just out of a mood, I wrote a builtin for 1<<n. > 1<<n is sometimes used to set a variable SFR bit. The builtin supplies > a fast, loop-free implementation.
I hope this whole patch is just intended as an example of how to add built-in functions and not as a serious proposal for an addition to GCC, since it doesn't make sense to add machine-specific built-in functions for things that can so readily be represented in generic GNU C; instead, you should make generic GNU C generate the right code (for example, by handling __builtin_parity and __builtin_popcount smartly on zero-extended values if QImode patterns are available - if it doesn't already do so). -- Joseph S. Myers jos...@codesourcery.com