#include "libavutil/x86_cpu.h"
#include "libavcodec/dsputil.h"
#include "dsputil_mmx.h"
#include "vp6dsp_sse2.h"
Go to the source code of this file.
Defines | |
#define | DIAG4_SSE2(in1, in2, in3, in4) |
Functions | |
void | ff_vp6_filter_diag4_sse2 (uint8_t *dst, uint8_t *src, int stride, const int16_t *h_weights, const int16_t *v_weights) |
#define DIAG4_SSE2 | ( | in1, | |||
in2, | |||||
in3, | |||||
in4 | ) |
Value:
"movq "#in1"(%0), %%xmm0 \n\t" \ "movq "#in2"(%0), %%xmm1 \n\t" \ "punpcklbw %%xmm7, %%xmm0 \n\t" \ "punpcklbw %%xmm7, %%xmm1 \n\t" \ "pmullw %%xmm4, %%xmm0 \n\t" /* src[x-8 ] * biweight [0] */ \ "pmullw %%xmm5, %%xmm1 \n\t" /* src[x ] * biweight [1] */ \ "paddw %%xmm1, %%xmm0 \n\t" \ "movq "#in3"(%0), %%xmm1 \n\t" \ "movq "#in4"(%0), %%xmm2 \n\t" \ "punpcklbw %%xmm7, %%xmm1 \n\t" \ "punpcklbw %%xmm7, %%xmm2 \n\t" \ "pmullw %%xmm6, %%xmm1 \n\t" /* src[x+8 ] * biweight [2] */ \ "pmullw %%xmm3, %%xmm2 \n\t" /* src[x+16] * biweight [3] */ \ "paddw %%xmm2, %%xmm1 \n\t" \ "paddsw %%xmm1, %%xmm0 \n\t" \ "paddsw "MANGLE(ff_pw_64)", %%xmm0 \n\t" /* Add 64 */ \ "psraw $7, %%xmm0 \n\t" \ "packuswb %%xmm0, %%xmm0 \n\t" \ "movq %%xmm0, (%1) \n\t" \
Definition at line 29 of file vp6dsp_sse2.c.
Referenced by ff_vp6_filter_diag4_sse2().
void ff_vp6_filter_diag4_sse2 | ( | uint8_t * | dst, | |
uint8_t * | src, | |||
int | stride, | |||
const int16_t * | h_weights, | |||
const int16_t * | v_weights | |||
) |