On Monday 22 June 2009, Jörn Engel wrote:
> Four loops doing the same increment with different data types: long,
> u64, we32 (wrong-endian) and we64. Compile with no optimizations.
>
> Results on my i386 notebook:
> long: 453953 us
> we32: 880273 us
> u64: 504214 us
> we64: 2259953 us
> loops: 100000000
(couldn't resist)
The we64 number is artificially high because the glibc bswap_64
implementation forces the conversion to be done on the stack.
Using __builtin_bswap64 make this look more logical, and
makes your point even stronger (on core 2, using -m32):
long: 236792 us
we32: 500827 us
u64: 265990 us
we64: 757380 us
loops: 100000000
Arnd <><
--
To unsubscribe from this list: send the line "unsubscribe linux-embedded" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html