https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106484
--- Comment #2 from Richard Earnshaw <rearnsha at gcc dot gnu.org> --- 32-bit division by constant relies on a 32x32->64 bit multiply. So it seems reasonable that a 64-bit division would need a 64x64->128 bit multiply. We don't have an instruction for that on arm nor does gcc support 128-bit integer types on a 32-bit compiler.