comparison i386/dsputil_mmx.c @ 2892:41315d0120b3 libavcodec

replace a few mov + psrlq with pshufw, there are more cases which could benefit from this but they would require us to duplicate some functions ... the trick is from various places (my own code in libpostproc, a patch on the x264 list, ...)
author michael
date Wed, 21 Sep 2005 21:17:09 +0000
parents f4afa3812818
children d3a726717baf
comparison
equal deleted inserted replaced
2891:4c6eb826e9cb 2892:41315d0120b3
1619 "movq (%1), %%mm1 \n\t" 1619 "movq (%1), %%mm1 \n\t"
1620 MMABS_SUM_MMX2(%%mm1, %%mm7, %%mm0) 1620 MMABS_SUM_MMX2(%%mm1, %%mm7, %%mm0)
1621 "movq 64(%1), %%mm1 \n\t" 1621 "movq 64(%1), %%mm1 \n\t"
1622 MMABS_SUM_MMX2(%%mm1, %%mm7, %%mm0) 1622 MMABS_SUM_MMX2(%%mm1, %%mm7, %%mm0)
1623 1623
1624 "movq %%mm0, %%mm1 \n\t" 1624 "pshufw $0x0E, %%mm0, %%mm1 \n\t"
1625 "psrlq $32, %%mm0 \n\t"
1626 "paddusw %%mm1, %%mm0 \n\t" 1625 "paddusw %%mm1, %%mm0 \n\t"
1627 "movq %%mm0, %%mm1 \n\t" 1626 "pshufw $0x01, %%mm0, %%mm1 \n\t"
1628 "psrlq $16, %%mm0 \n\t"
1629 "paddusw %%mm1, %%mm0 \n\t" 1627 "paddusw %%mm1, %%mm0 \n\t"
1630 "movd %%mm0, %0 \n\t" 1628 "movd %%mm0, %0 \n\t"
1631 1629
1632 : "=r" (sum) 1630 : "=r" (sum)
1633 : "r"(temp) 1631 : "r"(temp)