rendered paste bodySECTION_RODATA
v210_mask: times 4 dd 0x3ff
SECTION .text
%macro v210_planar_unpack 1
; decode_words( const uint32_t *src, uint16_t *y, uint16_t *u, uint16_t *v )
cglobal v210_planar_unpack_%1, 4, 4
mova m3, [v210_mask]
movu m0, [r0]
psrld m1, m0, 10
psrld m2, m0, 20
pand m0, m3
pand m1, m3
pand m2, m3
pextrw [r1], m1, 0
pextrw [r1+2], m0, 2
pextrw [r1+4], m2, 2
pextrw [r1+6], m1, 4
pextrw [r1+8], m0, 6
pextrw [r1+10], m2, 6
pextrw [r2], m0, 0
pextrw [r2+2], m1, 2
pextrw [r2+4], m2, 4
pextrw [r3], m2, 0
pextrw [r3+2], m0, 4
pextrw [r3+4], m1, 6
RET
%endmacro
INIT_XMM
v210_planar_unpack sse2
INIT_AVX
v210_planar_unpack avx