pshufb — перестановка байтов по маске

Shuffle (permute) — по мнению урока, важнейшая инструкция видеообработки. Каждый байт маски — это индекс: «какой байт источника положить сюда». Жми «Шаг» или кликай по ячейкам результата.

m0 — источник (до pshufb): байты-«буквы», чтобы было видно, кто куда переехал
m1 — маска: индексы источника, −1 = «обнулить»
m0 — результат (после pshufb) — кликай по ячейкам

    
Слева направо: pshufb m0, m1 идёт по всем 16 позициям результата разом — но мы разберём по одной. Нажми «Шаг».
источник заполненный результат индекс −1 → байт обнуляется текущая тройка «индекс → источник → результат»
То же самое на C — только в SIMD все 16 итераций происходят параллельно
uint8_t tmp[16];
memcpy(tmp, dst, 16);
for (int i = 0; i < 16; i++) {
    if (src[i] & 0x80)      /* старший бит индекса установлен (−1) */
        dst[i] = 0;
    else
        dst[i] = tmp[src[i]];
}