Инженеры из японской компании Cybozu Labs разработали новый эффективный метод деления на константу, ориентированный на 64-битные процессоры. В отличие от устаревших алгоритмов, оптимизированных под 32-битные системы, новый подход использует расширенную разрядность современных регистров, что позволяет избежать избыточных вычислений. Патч внедрен в популярный компилятор LLVM (версия 23.0.0), а обновления для GCC и MSVC проходят финальное тестирование.

Традиционный метод Гранлунда и Монтгомери (GM-метод), применяемый с 1994 года, заменяет деление на умножение на «магическую константу» и сдвиги, но сталкивается с ограничениями при работе с 33-битными делителями, что снижает производительность. Новый метод, предложенный Мицунари Шигео и Хошино Такаши, отказывается от такой имитации и использует 64-битные инструкции MULX и UMULH для быстрого умножения без дополнительных корректировок.

Бенчмарки на процессорах Intel Xeon w9-3495X и Apple M4 продемонстрировали ускорение вычислений до 1.67 и 1.98 раз соответственно. Новый алгоритм сокращает число инструкций с 9 до 3, что уменьшает задержки и повышает параллелизм. Это особенно важно для серверных и высокопроизводительных систем.

Внедрение метода в компиляторы обеспечит ускорение программ, работающих с большими объемами данных — от баз данных до криптографии и анализа сетевого трафика. Обновления позволят использовать возможности 64-битных процессоров на полную мощность, обеспечивая значительный прирост производительности без необходимости изменения исходного кода программ.