Developers don’t usually divide numbers all the time, but hashmaps often need to compute remainders modulo a prime. Hashmaps are really common, so fast division is useful. For instance, rolling hashes might compute u128 % u64 with a fixed divisor. Compilers just drop the ball here: fn modulo(n: u128) -> u64 { (n % 0xffffffffffffffc5) as u64 } modulo: push rax mov rdx, -59 xor ecx, ecx call qword ptr [rip + __umodti3@GOTPCREL] pop rcx ret __umodti3 is a generic long division implementation, ...