x86/dsputilenc: implement XOP version of pix_sum16
SSE2: 137 cycles XOP: 87 cycles Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
committed by
Michael Niedermayer
parent
232959f184
commit
05de4d3011
@@ -39,6 +39,7 @@ void ff_diff_pixels_sse2(int16_t *block, const uint8_t *s1, const uint8_t *s2,
|
||||
int stride);
|
||||
int ff_pix_sum16_mmx(uint8_t *pix, int line_size);
|
||||
int ff_pix_sum16_sse2(uint8_t *pix, int line_size);
|
||||
int ff_pix_sum16_xop(uint8_t *pix, int line_size);
|
||||
int ff_pix_norm1_mmx(uint8_t *pix, int line_size);
|
||||
int ff_pix_norm1_sse2(uint8_t *pix, int line_size);
|
||||
int ff_sum_abs_dctelem_mmx(int16_t *block);
|
||||
@@ -925,5 +926,9 @@ av_cold void ff_dsputilenc_init_mmx(DSPContext *c, AVCodecContext *avctx,
|
||||
#endif
|
||||
}
|
||||
|
||||
if (EXTERNAL_XOP(cpu_flags)) {
|
||||
c->pix_sum = ff_pix_sum16_xop;
|
||||
}
|
||||
|
||||
ff_dsputil_init_pix_mmx(c, avctx);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user