After more investigation, Clang uses the large form of `jmp` when `-mrelax-all` is passed. Currently this is used at `-O0` (with the intention of speeding compile times), but not at higher optimization levels. This is changing in Clang 19, which [will not](https://maskray.me/blog/2024-04-27-clang-o0-output-branch-displacement-and-s...) use `-mrelax-all` at `-O0`.