static inline void MC_avg2_8 (int height, uint8_t * dest, uint8_t * ref, int stride, int offset, int cpu) { do { movq_m2r (*ref, mm0); pavg_m2r (*(ref+offset), mm0); pavg_m2r (*dest, mm0); ref += stride; movq_r2m (mm0, *dest); dest += stride; } while (--height); }
static inline void MC_avg1_16 (int height, uint8_t * dest, const uint8_t * ref, const int stride, const int cpu) { do { movq_m2r (*ref, mm0); movq_m2r (*(ref+8), mm1); pavg_m2r (*dest, mm0); pavg_m2r (*(dest+8), mm1); movq_r2m (mm0, *dest); ref += stride; movq_r2m (mm1, *(dest+8)); dest += stride; } while (--height); }
static inline void MC_put2_16 (int height, uint8_t * dest, uint8_t * ref, int stride, int offset, int cpu) { do { movq_m2r (*ref, mm0); movq_m2r (*(ref+8), mm1); pavg_m2r (*(ref+offset), mm0); pavg_m2r (*(ref+offset+8), mm1); movq_r2m (mm0, *dest); ref += stride; movq_r2m (mm1, *(dest+8)); dest += stride; } while (--height); }