31 #define randomize_buffers(buf, size) \
34 uint8_t *tmp_buf = (uint8_t *)buf;\
35 for (j = 0; j < size; j++) \
36 tmp_buf[j] = rnd() & 0xFF; \
39 #define init_buffer(a0, a1, type, width)\
42 randomize_buffers(a0, width * sizeof(type));\
43 memcpy(a1, a0, width*sizeof(type));\
62 if (memcmp(dst0, dst1,
width))
83 int *left,
int *left_top);
94 if (
check_func(
c.add_median_pred,
"add_median_pred")) {
97 if (memcmp(dst0, dst1,
width) || (A0 !=
A1) || (
B0 !=
B1))
127 if ((res0 & 0xFF) != (res1 & 0xFF)||\
128 memcmp(dst0, dst1,
width))
156 if ((res0 &0xFFFF) != (res1 &0xFFFF)||\
157 memcmp(dst0, dst1,
width))
172 const ptrdiff_t
width);
175 src_size = (
stride + 32) * 2;
181 if (
check_func(
c.add_gradient_pred,
"add_gradient_pred")) {
199 int accRnd =
rnd() & 0xFF;
207 report(
"add_median_pred");
210 report(
"add_left_pred_zero");
213 report(
"add_left_pred_rnd_acc");
216 report(
"add_left_pred_int16");
219 report(
"add_gradient_pred");
#define declare_func_emms(cpu_flags, ret,...)
#define check_func(func,...)
common internal and external API header
#define AV_CPU_FLAG_MMX
standard MMX
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
void * av_mallocz_array(size_t nmemb, size_t size)
Allocate a memory block for an array with av_mallocz().
static void check_add_left_pred_16(LLVidDSPContext c, unsigned mask, int width, unsigned acc, const char *report)
static void check_add_median_pred(LLVidDSPContext c, int width)
#define init_buffer(a0, a1, type, width)
static void check_add_left_pred(LLVidDSPContext c, int width, int acc, const char *report)
void checkasm_check_llviddsp(void)
static void check_add_bytes(LLVidDSPContext c, int width)
static void check_add_gradient_pred(LLVidDSPContext c, int w)
void ff_llviddsp_init(LLVidDSPContext *c)
static const uint16_t mask[17]
Memory handling functions.
static av_always_inline int diff(const uint32_t a, const uint32_t b)