Построение клонов одноэлементных логических операций легко параллелится. Вот и распараллелил. На графике - во сколько раз быстрее прога выполняется в зависимости от числа потоков:

Так как задача влезает в регистры (при правильной оптимизации), то каждый поток обрабатывается своим ядром, и ускорение пропорционально количеству потоков. У меня восьмиядерный проц, вот и ускорение соответствующее. Некоторая диспропорция к концу, я думаю, из-за неравномерности окончания потоков.
Это был ещё один судебный процесс, в этот раз, кажется, от интела к амд. Типа амд обманывает покупателя, т.к. кэши общие между ядрами - по два, - значит, ядер не восемь, а четыре как бы. Однако, бенчмарка показывает, что интелу надо соснуть хуйца: ускорение больше четырёх, значит, и ядер больше. Кэши общие, это да, а ядер - всё равно восемь (объединённых в модули по два).
P.S. А msvc, вообще, скомпилил хуйню какую-то. Во многопоточной версии вроде бы считает что-то, но на консоль не выводит ни хрена. Потому и нет говна этого на графике.