Evgeny_CDАрхитектор (01.12.2011 19:33, просмотров: 125) ответил leon_ на С этого и надо было начинать.
Идея шикарная, респект! Думаю, ее можно совместить с идеей SIMD целочисленки. И сделать некое подобие регистра последовательного приближения. Берем 32 битное слово, клонируем его до 128 бит.
Далее у нас есть 8 или 16 128 битных регистров (если я правильно описания *SSE* выкурил).
Часть регистров заполянем некими масками, часть для результататов.
За один такт применяем последовательно 4 маски к одному и тому же значению. Результат в 128 битный регистр.
Потом выгружаем срань регистров в память. И начинается "процессорная итерация".
Сравнили результат маски с 32 битным числом - выставили флаг. И т.д. Пишем незаивисимо по данным, чтобы можно было много потоков пустить.
Потом точка объединения потоков - делаем финальную операцию над флагами, и получем 1 или несколько выходных битов.
Далее заходим на следующий слой для получения следующих битов.
Очень даже интересная задач получается! Есть где поразмяться мозгами.