#include "src/dsp/dsp.h"
#if defined(WEBP_USE_SSE2) && !defined(WEBP_REDUCE_SIZE)
#include <emmintrin.h>
#include <assert.h>
#include "src/utils/rescaler_utils.h"
#include "src/utils/utils.h"
#define ROUNDER …
#define MULT_FIX …
#define MULT_FIX_FLOOR …
static void LoadTwoPixels_SSE2(const uint8_t* const src, __m128i* out) { … }
static void LoadEightPixels_SSE2(const uint8_t* const src, __m128i* out) { … }
static void RescalerImportRowExpand_SSE2(WebPRescaler* const wrk,
const uint8_t* src) { … }
static void RescalerImportRowShrink_SSE2(WebPRescaler* const wrk,
const uint8_t* src) { … }
static WEBP_INLINE void LoadDispatchAndMult_SSE2(const rescaler_t* const src,
const __m128i* const mult,
__m128i* const out0,
__m128i* const out1,
__m128i* const out2,
__m128i* const out3) { … }
static WEBP_INLINE void ProcessRow_SSE2(const __m128i* const A0,
const __m128i* const A1,
const __m128i* const A2,
const __m128i* const A3,
const __m128i* const mult,
uint8_t* const dst) { … }
static void RescalerExportRowExpand_SSE2(WebPRescaler* const wrk) { … }
static void RescalerExportRowShrink_SSE2(WebPRescaler* const wrk) { … }
#undef MULT_FIX_FLOOR
#undef MULT_FIX
#undef ROUNDER
extern void WebPRescalerDspInitSSE2(void);
WEBP_TSAN_IGNORE_FUNCTION void WebPRescalerDspInitSSE2(void) { … }
#else
WEBP_DSP_INIT_STUB(WebPRescalerDspInitSSE2)
#endif