Lisp and Erlang. The latter doesn't have a numeric tower but has automatic bigint conversion and handling. The former is eager to error upon signed/unsigned type violations once you specify them.
how can one implement this without a branch before literally any arithmetic operation?
In Erlang, you don't; the language was never made for that sort of speed.