artagnon wrote: @nikic For a follow-up, I think we can template over signed/unsigned and different bitwidths. Then there won't be a separate unsigned/signed version, and we don't have to worry about each usage instance. https://github.com/llvm/llvm-project/pull/95087