Или я совсем тупой, или трюки с переходом в 64 битный режим из 32-х битной программы-оболочки не срабатывают - нашёл парочку трюков, проверил, dll системой не загружается. Нагло расставить REX префиксы командам даже не пробовал - должно быть и очевидно будет исключение неверной команды.
Перейти полностью на 64 бит мешает программа-оболочка, откуда вызываются функции работы с числами. Она не требовательная, но искать под неё 64-битный компилятор ... Ради непонятного выигрыша ... не. Выигрыш от перехода на 64 бит регистры не превысит двухкратного. Применение AVX2 вперемешку с SSE4 даёт почти трёхкратный выигрыш, т.е. гарантированно заметно обгоняет любой возможный выигрыш от х64. Потому x64 пока отказать. Решение под AVX2 идеологически более правильное, буду добивать его, ещё пара мыслей появилась в процессе обсуждения (но надо посчитать много таблиц и кода написать, потому проверить не успел пока).
Собственно я надеялся что вдруг просто не знаю какого хитрого трюка с AVX2 командами, который резко ускорит/упростит распространение переноса, бывает же замыливание мыслей, не видишь красивого простого решения, меня ткнут в него носом, я и обрадуюсь ...
(Цифры)
Я кажется немного запутался в относительных скоростях, сведу воедино:
1) не до конца оптимизированные 32 бит регистры (особо в них не упирался т.к. было желание использовать AVX, а эти делал для отработки алгоритма, сравнения и получения образцовых исходных данных) - примем за 1.0;
2) показанный выше AVX2 код с хорошо оптимизированными прочими вычислениями - 2.0х;
3) модификация с использованием для переносов только половин XMM регистров и команд AVX2 - 2.8х.