Что насчет такого?
unsigned x = 0;
__m128i x0, x1, x2, x3, x4, x5, x6, x7;
__m128i *pshuffle128 = (__m128i *)shuffle;
__m128i *pMask = (__m128i *)mask;
if (cpu & CPU_CAPABILITY_SSSE3) {
for (; x < (width & ~31); x += 32) {
uint8_t *dst1 = dstv + x;
uint8_t *dst2 = dstu + x;
__m128i *pSrc = (__m128i *)(src + 2 * x);
// синтаксис AT&T: cmd source, destination
// asm volatile (
x7 = _mm_loadu_si128(pshuffle128);// "movdqu (%[shuffle]), %%xmm7\n"
x0 = _mm_load_si128(pSrc + 0); // "movdqa 0(%[src]), %%xmm0\n"
x1 = _mm_load_si128(pSrc + 1); // "movdqa 16(%[src]), %%xmm1\n"
x2 = _mm_load_si128(pSrc + 2); // "movdqa 32(%[src]), %%xmm2\n"
x3 = _mm_load_si128(pSrc + 3); // "movdqa 48(%[src]), %%xmm3\n"
x0 = _mm_shuffle_epi8(x0, x7); // "pshufb %%xmm7, %%xmm0\n"
x1 = _mm_shuffle_epi8(x1, x7); // "pshufb %%xmm7, %%xmm1\n"
....
// : : [dst1]"r"(&dstu[x]), [dst2]"r"(&dstv[x]), [src]"r"(&src[2*x]), [shuffle]"r"(shuffle) : "memory");
}
Справа в комментах - исходный код из VLC, там еще #define-ы были, я их подставил. Слева - эквивалентный, если верить MSDN, код для MSVC++. Результат работы, по крайней мере, тот же.