Здравствуйте, netch80, Вы писали:
N>Подходящего ARM под рукой нет. Если есть — проверьте там
Нет, у меня под рукой только мой рабочий лэптоп. Впишу всё же:
i7 8750H: ~8% добавки.
N>Ну что тут сказать... почему-то у Intel очень долго была такая специфика: они всегда хуже делали арифметику, а деление у них вообще в загоне. Правильные методы работы с денормализованными (которые не тратят до 200 тактов на операцию) AMD начал внедрять на несколько лет раньше — пока Intel отделывался флажками типа "плевать на них, все меняем на ноль". Деление плавучих по Голдсмиту — тоже раньше (пока Intel сохранял SRT, знаменитый по FDIV bug). Может, для своих целей оно им и правильно... Но то, что на 10-м поколении Core разница ушла — показывает, что и они умеют учиться.
Плавучка вообще мало интересует, там, где таки да, воркэраунд с выключением денормализации устраивает.
В конкретно этой задаче, где делитель известен в рантайме, но при этом часто не меняется, присматривался к
https://libdivide.com/
И что интересно, она тоже любит беззнаковые.