Търся оптимизирана реализация на брояч, вероятно подобен на сивия код, който ще ми позволи бързо да преминавам през числа в нарязан на битове масив.
Ако приемем, че имам масива:
_m256 header[640];
Трябва да продължа да променям брояч в битове 608 - 639. Всеки от 256-те бита представлява отделен, паралелен брояч.
Операция „увеличаване“ отнема до 31 операции: И за изчисляване на пренасяне, XOR за изчисляване на стойност, повтарящи се за всяка позиция.
Сивият код трябва да се нуждае само от xor, но не знам за ефективен начин за изчисляване на индекса - изглежда, че изисква до 31 операции за определяне на битова позиция.
В идеалния случай бих искал брояч, който изисква малък брой ALU операции, за да определи кой бит да се промени. Някой знае ли нещо, което би било полезно?