Paper: dividing by seven

John R Levine <johnl@taugh.com>
Fri, 10 Apr 2026 12:04:13 -0400

          From comp.compilers

Related articles
Paper: dividing by seven johnl@taugh.com (John R Levine) (2026-04-10)
Re: Paper: dividing by seven anton@mips.complang.tuwien.ac.at (2026-04-13)
Re: Paper: dividing by seven robin51@dodo.com.au (2026-04-19)
Re: Paper: dividing by seven anton@mips.complang.tuwien.ac.at (2026-04-19)
| List of all articles for this month |
From: John R Levine <johnl@taugh.com>
Newsgroups: comp.compilers
Date: Fri, 10 Apr 2026 12:04:13 -0400
Organization: Compilers Central
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="59820"; mail-complaints-to="abuse@iecc.com"
Keywords: code, optimize, paper
Posted-Date: 10 Apr 2026 12:26:05 EDT

Optimization of 32-bit Unsigned Division by Constants on 64-bit Targets


Shigeo Mitsunari, Takashi Hoshino


Granlund and Montgomery proposed an optimization method for unsigned
integer division by constants [3]. Their method (called the GM method in
this paper) was further improved in part by works such as [1] and [7], and
is now adopted by major compilers including GCC, Clang, Microsoft
Compiler, and Apple Clang. However, for example, for x/7, the generated
code is designed for 32-bit CPUs and therefore does not fully exploit
64-bit capabilities. This paper proposes an optimization method for 32-bit
unsigned division by constants targeting 64-bit CPUs. We implemented
patches for LLVM/GCC and achieved speedups of 1.67x on Intel Xeon w9-3495X
(Sapphire Rapids) and 1.98x on Apple M4 (Apple M-series SoC) in the
microbenchmark described later. The LLVM patch has already been merged
into llvm:main [6], demonstrating the practical applicability of the
proposed method.


https://arxiv.org/abs/2604.07902


Regards,
John Levine, johnl@taugh.com, Taughannock Networks, Trumansburg NY
Please consider the environment before reading this e-mail. https://jl.ly


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.