Hacker's Delight 遗漏的 64 位除法优化
A new faster algorithm to compute 64-bit signed floor division
主流编译器如 C/C++ 和 Go 缺乏原生的 Signed Integer Floor Division 支持,而现有实现往往效率低下甚至存在溢出 Bug。本文揭示了在除数已知于编译期时,如何通过新算法显著提升 64 位有符号下取整除法的性能。在 ARM 平台上,新算法比现有方案快 10-20%;在 x86 上,针对 80% 的正除数也能提升 5-10% 的吞吐量。作者不仅修复了长期存在的实现缺陷,还提供了一个无需分支的极速方案,填补了 Hacker's Delight 在这方面的空白。
尽管这个函数非常有用,但有符号整数下取整除法的世界却是一片混乱。