128-битные сдвиги с использованием языка ассемблера?

Что такое самый эффективный способ сдвига 128 бит на современном процессоре Intel (Core i7, Sandy Bridge).

Аналогичный код находится в моем самом внутреннем цикле:

u128 a[N];
void xor() {
  for (int i = 0; i < N; ++i) {
    a[i] = a[i] ^ (a[i] >> 1) ^ (a[i] >> 2);
  }
}

Данные в a [N] почти случайны.

8
задан jww 19 July 2015 в 02:49
поделиться