On 07/17/2012 07:02 AM, Loren Merritt wrote:
> 25% faster on penryn (even though I didn't predict that by counting uops).
> 25% faster on sandybridge.
> No change on bulldozer.
> 
> But even though I successfully predicted that this is an improvement, I don't 
> understand its performance.
> 6x load, 12x punpckldq, 6x store, 4x scalar:
> Should take 12 cycles on penryn, 7 on sandybridge, 12 on bulldozer.
> Instead, I measure 25 cycles per iteration on penryn, 19 on sandybridge, 96 
> on bulldozer.
> 
> SBUTTERFLYPS works for a sse version. I would expect that to be slower on 
> sandybridge, because even though they have identical semantics and each 
> cost 1 uop, unpcklps only gets 1 execution unit whereas punpckldq can 
> chose among 2. But instead I measure SBUTTERFLYPS as the same speed as 
> this patch.

I can confirm that this is about 25% faster on sandybridge. For
SBUTTERFLYPS I'm getting the same speed as SBUTTERFLY for AVX, but
slower for SSE2. So maybe it has something to do with 3-op?

I'm getting basically no change on athlon64.

Thanks!
Justin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to