Я ищу оптимизированную реализацию счетчика, вероятно, похожую на код Грея, которая позволит мне быстро перемещаться по числам в массиве с битами.
Предполагая, что у меня есть массив:
_m256 header[640];
Мне нужно постоянно менять счетчик в битах 608–639. Каждый из 256 бит представляет собой отдельный параллельный счетчик.
Операция приращения занимает до 31 операции: И для вычисления переноса, XOR для вычисления значения, повторяется для каждой позиции.
Для кода Грея требуется только xor, но я не знаю эффективного способа вычисления индекса — похоже, для определения позиции бита требуется до 31 операции.
В идеале мне нужен счетчик, который требует небольшого количества операций ALU, чтобы определить, какой бит нужно изменить. Кто-нибудь знает что-нибудь полезное?